-- -- bookmark__toggle_open_close/2 -- create or replace function bookmark__toggle_open_close( p_bookmark_id integer, p_browsing_user_id bigint ) returns int4 as $$ DECLARE BEGIN -- Toggle the closed_p flag UPDATE bm_in_closed_p SET closed_p = ( SELECT CASE WHEN closed_p = TRUE THEN FALSE ELSE TRUE END FROM bm_in_closed_p WHERE bookmark_id = p_bookmark_id AND in_closed_p_id = p_browsing_user_id ) WHERE bookmark_id = p_bookmark_id AND in_closed_p_id = p_browsing_user_id; -- Now update the in_closed_p status for this user for all bookmarks under -- the toggled folder perform bookmark__update_in_closed_p_one_user (p_bookmark_id, p_browsing_user_id); RETURN 0; END; $$ language plpgsql;