-- -- content_folder__is_sub_folder/2 -- create or replace function content_folder__is_sub_folder( is_sub_folder__folder_id integer, is_sub_folder__target_folder_id integer ) returns bool as $$ WITH RECURSIVE parents AS ( select item_id, parent_id from cr_items where item_id = is_sub_folder__target_folder_id UNION ALL select cr_items.item_id, cr_items.parent_id from cr_items, parents where cr_items.item_id = parents.parent_id ) SELECT EXISTS ( SELECT 1 FROM parents WHERE parent_id = is_sub_folder__folder_id ); $$ language plpgsql;