diff --git a/Makefile b/Makefile index 4a81f31..4c9012d 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # cartodb/Makefile EXTENSION = cartodb -EXTVERSION = 0.2.0 +EXTVERSION = 0.2.1dev SED = sed @@ -17,7 +17,7 @@ UPGRADABLE = \ unpackaged \ 0.1.0 \ 0.1.1 \ - 0.2.0dev \ + 0.2.0 \ $(EXTVERSION)next \ $(END) diff --git a/NEWS b/NEWS index cab3f59..2b20877 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +0.2.1dev - 2014-MM-DD +------------------ + +Enhancements: + + - Do not force re-cartodbfication on CREATE FROM unpackaged + 0.2.0 - 2014-06-09 ------------------ diff --git a/util/create_from_unpackaged.sh b/util/create_from_unpackaged.sh index 7b3cf69..109c9ae 100755 --- a/util/create_from_unpackaged.sh +++ b/util/create_from_unpackaged.sh @@ -4,7 +4,22 @@ ver=$1 input=cartodb--${ver}.sql output=cartodb--unpackaged--${ver}.sql -cat ${input} | grep -v 'duplicated extension$' > ${output} +echo "-- Script generated by $0 on `date`" > ${output} + +# Migrate CDB functions from public schema to cartodb schema +cat ${input} | + grep '^ *CREATE OR REPLACE FUNCTION' | + grep -v ' cartodb\.' | # should only match DDL hooks + sed 's/).*$/)/' | + sed 's/DEFAULT [^ ,)]*//g' | + sed 's/CREATE OR REPLACE FUNCTION /ALTER FUNCTION public./' | + sed 's/$/ SET SCHEMA cartodb;/' | + sed 's/^/DO LANGUAGE plpgsql \$\$ BEGIN /' | + sed "s/$/ EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Got % (%)', SQLERRM, SQLSTATE; END; \$\$;/" | + cat >> ${output} + +# Upgrade all functions +cat ${input} | grep -v 'duplicated extension$' >> ${output} # Migrate CDB_TableMetadata cat >> ${output} <<'EOF' @@ -29,32 +44,34 @@ BEGIN DROP FUNCTION public._CDB_UserQuotaInBytes(); END; $$ LANGUAGE 'plpgsql'; - --- Cartodbfy tables with a trigger using 'CDB_CheckQuota' or --- 'CDB_TableMetadata_Trigger' from the 'public' schema -select cartodb.CDB_CartodbfyTable(relname::regclass) from ( - -- names of tables using public.CDB_CheckQuota or - -- public.CDB_TableMetadata_Trigger in their triggers - SELECT distinct c.relname - FROM - pg_trigger t, - pg_class c, - pg_proc p, - pg_namespace n - WHERE - n.nspname = 'public' AND - p.pronamespace = n.oid AND - p.proname IN ( 'cdb_checkquota', 'cdb_tablemetadata_trigger' ) AND - t.tgrelid = c.oid AND - p.oid = t.tgfoid -) as foo; EOF -# Drop functions from public schema -cat ${input} | - grep '^ *CREATE OR REPLACE FUNCTION' | - grep -v ' cartodb\.' | # should only match DDL hooks - sed 's/).*$/);/' | - sed 's/DEFAULT [^ ,)]*//g' | - sed 's/CREATE OR REPLACE FUNCTION /DROP FUNCTION public./' | - cat >> ${output} +## Cartodbfy tables with a trigger using 'CDB_CheckQuota' or +## 'CDB_TableMetadata_Trigger' from the 'public' schema +#cat >> ${output} <<'EOF' +#select cartodb.CDB_CartodbfyTable(relname::regclass) from ( +# -- names of tables using public.CDB_CheckQuota or +# -- public.CDB_TableMetadata_Trigger in their triggers +# SELECT distinct c.relname +# FROM +# pg_trigger t, +# pg_class c, +# pg_proc p, +# pg_namespace n +# WHERE +# n.nspname = 'public' AND +# p.pronamespace = n.oid AND +# p.proname IN ( 'cdb_checkquota', 'cdb_tablemetadata_trigger' ) AND +# t.tgrelid = c.oid AND +# p.oid = t.tgfoid +#) as foo; +#EOF + +## Drop any leftover function from public schema (there should be none) +#cat ${input} | +# grep '^ *CREATE OR REPLACE FUNCTION' | +# grep -v ' cartodb\.' | # should only match DDL hooks +# sed 's/).*$/);/' | +# sed 's/DEFAULT [^ ,)]*//g' | +# sed 's/CREATE OR REPLACE FUNCTION /DROP FUNCTION IF EXISTS public./' | +# cat >> ${output}