Index: openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.1d20-5.9.1d21.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.1d20-5.9.1d21.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.1d20-5.9.1d21.sql 9 Aug 2016 16:31:26 -0000 1.1.2.1 @@ -0,0 +1,89 @@ +-- +-- Update mime_types. +-- The changes have to be performed in a transaction, therefore the inline function. +-- +create or replace function inline_0 ( + p_label varchar, + p_extension varchar, + p_old_mime_type varchar, + p_new_mime_type varchar +) +returns integer as $$ +begin + SET CONSTRAINTS ALL DEFERRED; + delete from cr_extension_mime_type_map where mime_type = p_old_mime_type; + + insert into cr_mime_types(label, mime_type, file_extension) + select p_label, p_new_mime_type, p_extension from dual + where not exists (select 1 from cr_mime_types where mime_type = p_new_mime_type); + + update cr_content_mime_type_map set mime_type = p_new_mime_type where mime_type = p_old_mime_type; + update cr_revisions set mime_type = p_new_mime_type where mime_type = p_old_mime_type; + + insert into cr_extension_mime_type_map (extension, mime_type) + select p_extension, p_new_mime_type from dual + where not exists (select 1 from cr_extension_mime_type_map where mime_type = p_new_mime_type); + + delete from cr_mime_types where mime_type = p_old_mime_type; + return 0; +end; +$$ language 'plpgsql'; + +-- +-- Insert new mime types +-- + +create or replace function inline_0 ( + p_label varchar, + p_extension varchar, + p_new_mime_type varchar +) +returns integer as $$ +begin + SET CONSTRAINTS ALL DEFERRED; + insert into cr_mime_types(label, mime_type, file_extension) + select p_label, p_new_mime_type, p_extension from dual + where not exists (select 1 from cr_mime_types where mime_type = p_new_mime_type); + + if exists (select 1 from cr_extension_mime_type_map where extension = p_extension) then + update cr_extension_mime_type_map set mime_type = p_new_mime_type where extension = p_extension; + else + insert into cr_extension_mime_type_map (extension, mime_type) + select p_extension, p_new_mime_type from dual; + end if; + return 0; +end; +$$ language 'plpgsql'; + + +select inline_0('Microsoft Office Excel Template' ,'xltx' ,'application/vnd.openxmlformats-officedocument.spreadsheetml.template' ,'application/vnd.openxmlformats-officedocument.spreadsheetml-template'); +select inline_0('Microsoft Office PowerPoint Template' ,'potx' ,'application/vnd.openxmlformats-officedocument.presentationml.template' ,'application/vnd.openxmlformats-officedocument.presentationml-template'); +select inline_0('Microsoft Office Word Template' ,'dotx' ,'application/vnd.openxmlformats-officedocument.wordprocessingml.template' ,'application/vnd.openxmlformats-officedocument.wordprocessingml-template'); + +select inline_0('Video FLASH' ,'flv' ,'video/x-flv'); +select inline_0('Virtue MTS' ,'mts' ,'model/vnd.mts'); +select inline_0('Microsoft Document Imaging Format' ,'mdi' ,'image/vnd.ms-modi'); +select inline_0('WSDL - Web Services Description Language' ,'wsdl' ,'application/wsdl+xml'); +select inline_0('VPIM voice message' ,'vpm' ,'multipart/voice-message'); +select inline_0('Mathematica Notebook Player' ,'nbp' ,'application/vnd.wolfram.player'); +select inline_0('SMART Notebook' ,'notebook' ,'application/vnd.smart.notebook'); +select inline_0('Novadigm RADIA and EDM products' ,'ext' ,'application/vnd.novadigm.ext'); +select inline_0('Novadigm RADIA and EDM products' ,'edx' ,'application/vnd.novadigm.edx'); +select inline_0('Microsoft XML Paper Specification' ,'xps' ,'application/vnd.ms-xpsdocument'); +select inline_0('Microsoft Windows Media Player Playlist' ,'wpl' ,'application/vnd.ms-wpl'); +select inline_0('Microsoft Office System Release Theme' ,'thmx' ,'application/vnd.ms-officetheme'); +select inline_0('Microsoft Portable Executable' ,'exe' ,'application/vnd.microsoft.portable-executable'); +select inline_0('Lotus Wordpro' ,'lwp' ,'application/vnd.lotus-wordpro'); +select inline_0('GeoGebra' ,'ggb' ,'application/vnd.geogebra.file'); +select inline_0('Forms Data Format' ,'fdf' ,'application/vnd.fdf'); +select inline_0('Solids' ,'sol' ,'application/solids'); +select inline_0('Synchronized Multimedia Integration Language' ,'smi' ,'application/smil+xml'); +select inline_0('PKCS #10 - Certification Request Standard' ,'p' ,'application/pkcs10'); +select inline_0('OpenXPS' ,'oxps' ,'application/oxps'); +select inline_0('Mathematica Notebooks' ,'nb' ,'application/mathematica'); +select inline_0('' ,'mm' ,'application/base64'); +select inline_0('BioPAX OWL' ,'owl' ,'application/vnd.biopax.rdf+xml'); +select inline_0('Tcpdump Packet Capture' ,'pcap' ,'application/vnd.tcpdump.pcap'); + +drop function inline_0(varchar,varchar,varchar,varchar); +drop function inline_0(varchar,varchar,varchar);