insert into layout_elements (element_id, includelet_name, name, title, page_id, page_column, theme, state, sort_key, required_privilege, package_id) select :element_id, :includelet_name, :name, :title, :page_id, :page_column, :theme, :state, coalesce((select max(layout_elements.sort_key) + 1 from layout_elements where page_id = :page_id and page_column = :page_column), 1), layout_includelets.required_privilege, :package_id from layout_includelets where layout_includelets.name = :includelet_name insert into layout_elements (element_id, includelet_name, name, title, page_id, page_column, theme, state, sort_key, required_privilege, package_id) select :new_element_id, le.includelet_name, coalesce(:name, le.name), coalesce(:title, le.title), coalesce(:page_id, le.page_id), coalesce(:page_column, le.page_column), coalesce(:theme, le.theme), coalesce(:state, le.state), coalesce(:sort_key, sort_key), coalesce(:required_privilege, required_privilege), package_id from layout_elements le where le.element_id = :element_id insert into layout_element_parameters (element_id, key, value) select :new_element_id, key, value from layout_element_parameters where element_id = :element_id select count(*) as element_count from layout_elements where package_id = :package_id and includelet_name = :includelet_name delete from layout_elements where element_id = :element_id select * from layout_elements where element_id = :element_id update layout_elements set includelet_name = :includelet_name, name = :name, title = :title, page_id = :page_id, page_column = :page_column, sort_key = :sort_key, theme = :theme, state = :state where element_id = :element_id select count(*) as count from layout_elements pe, layout_pages pp where pp.page_id = :page_id and pe.page_column = :page_column and pp.page_id = pe.page_id select layout_elements.element_id from layout_elements, layout_pages where layout_pages.pageset_id = :pageset_id and layout_elements.includelet_name = :includelet_name and layout_elements.page_id = layout_pages.page_id and layout_elements.name like :name and layout_elements.title like :title select layout_elements.element_id from layout_elements, layout_element_parameters where layout_elements.page_id in (select page_id from layout_pages where layout_id = :layout_id) and layout_element_parameters.element_id = layout_elements.element_id and layout_element_parameters.key = :key and layout_element_parameters.value = :value update layout_elements set sort_key = :dummy_sort_key where element_id = :element_id update layout_elements set sort_key = :sort_key where element_id = :other_element_id update layout_elements set sort_key = :other_sort_key where element_id = :element_id select pe.element_id from layout_elements pe, layout_includelets pd where pe.page_id = :page_id and pe.includelet_name= pd.includelet_name and pd.name = :includelet_name select pe.element_id from layout_elements pe, layout_pages pp where pe.page_id = pp.page_id and pe.name = :name and pp.layout_id = :layout_id