-- -- file-storage/sql/postgresql/file-storage-views-create.sql -- -- @author Kevin Scaldeferri (kevin@arsdigita.com) -- @creation-date 6 Nov 2000 -- @cvs-id $Id: file-storage-views-create.sql,v 1.12 2006/08/08 21:26:48 donb Exp $ -- create view fs_urls_full as select cr_extlinks.extlink_id as url_id, cr_extlinks.url, cr_items.parent_id as folder_id, cr_extlinks.label as name, cr_extlinks.description, acs_objects.* from cr_extlinks, cr_items, acs_objects where cr_extlinks.extlink_id = cr_items.item_id and cr_items.item_id = acs_objects.object_id; create view fs_folders as select cr_folders.folder_id, cr_folders.label as name, acs_objects.last_modified, -- JCD needs to walk tree as oracle ver (select count(*) -- DRB: needs to walk tree and won't scale worth shit from cr_items ci2 where ci2.content_type <> 'content_folder' and ci2.tree_sortkey between ci.tree_sortkey and tree_right(ci.tree_sortkey)) as content_size, ci.parent_id, ci.name as key from cr_folders, cr_items ci, acs_objects where cr_folders.folder_id = ci.item_id and cr_folders.folder_id = acs_objects.object_id; create view fs_files as select cr_revisions.item_id as file_id, cr_revisions.revision_id as live_revision, cr_revisions.mime_type as type, cr_revisions.title as file_upload_name, cr_revisions.content_length as content_size, cr_items.name, acs_objects.last_modified, cr_items.parent_id, cr_items.name as key from cr_revisions, cr_items, acs_objects where cr_revisions.revision_id = cr_items.live_revision and cr_revisions.item_id = cr_items.item_id and cr_items.content_type = 'file_storage_object' and cr_revisions.revision_id = acs_objects.object_id; create view fs_objects as select cr_items.item_id as object_id, cr_items.live_revision, case when cr_items.content_type = 'content_folder' then 'folder' when cr_items.content_type = 'content_extlink' then 'url' when cr_items.content_type = 'content_symlink' then 'symlink' else cr_revisions.mime_type end as type, case when cr_items.content_type = 'content_folder' then (select count(*) from cr_items ci2 where ci2.content_type <> 'content_folder' and ci2.tree_sortkey between cr_items.tree_sortkey and tree_right(cr_items.tree_sortkey)) else cr_revisions.content_length end as content_size, case when cr_items.content_type = 'content_folder' then cr_folders.label when cr_items.content_type = 'content_extlink' then cr_extlinks.label else cr_items.name end as name, cr_items.name as file_upload_name, cr_revisions.title, cr_revisions.mime_type, acs_objects.last_modified, cr_extlinks.url, cr_items.parent_id, cr_items.name as key, case when cr_items.content_type = 'content_folder' then 0 else 1 end as sort_key, cr_mime_types.label as pretty_type from cr_items left join cr_extlinks on (cr_items.item_id = cr_extlinks.extlink_id) left join cr_folders on (cr_items.item_id = cr_folders.folder_id) left join cr_revisions on (cr_items.live_revision = cr_revisions.revision_id) left join cr_mime_types on (cr_revisions.mime_type = cr_mime_types.mime_type) join acs_objects on (cr_items.item_id = acs_objects.object_id);