Index: openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.1d18-5.9.1d19.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.1d18-5.9.1d19.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.1d18-5.9.1d19.sql 7 Aug 2017 23:47:47 -0000 1.2 @@ -0,0 +1,33 @@ +-- +-- Changes induced by the type discrepancy cleanup in 5.9.1d8-5.9.1d9: +-- Using consistently varchar(1000) for object types. +-- + +ALTER TABLE cr_content_mime_type_map ALTER COLUMN content_type TYPE varchar(1000); +ALTER TABLE cr_folder_type_map ALTER COLUMN content_type TYPE varchar(1000); +-- ALTER TABLE cr_items ALTER COLUMN content_type TYPE varchar(1000); +ALTER TABLE cr_type_children ALTER COLUMN child_type TYPE varchar(1000); +ALTER TABLE cr_type_children ALTER COLUMN parent_type TYPE varchar(1000); +ALTER TABLE cr_type_relations ALTER COLUMN target_type TYPE varchar(1000); +ALTER TABLE cr_type_relations ALTER COLUMN content_type TYPE varchar(1000); +ALTER TABLE cr_type_template_map ALTER COLUMN content_type TYPE varchar(1000); + +-- +-- ALTER TABLE cr_items ALTER COLUMN content_type TYPE varchar(1000); --deps +-- +WITH RECURSIVE dependent_views AS ( + SELECT c.oid::REGCLASS AS view_name + FROM pg_class c + WHERE c.relname = 'cr_items' + UNION ALL + SELECT DISTINCT r.ev_class::REGCLASS AS view_name + FROM pg_depend d + JOIN pg_rewrite r ON (r.oid = d.objid) + JOIN dependent_views ON (dependent_views.view_name = d.refobjid) + WHERE d.refobjsubid != 0 +) +UPDATE pg_attribute + SET atttypmod = 1000 + 4 + FROM dependent_views +WHERE pg_attribute.attrelid = dependent_views.view_name +AND pg_attribute.attname = 'content_type';