]> granicus.if.org Git - postgis/commitdiff
Provide a script to opt out of extensions
authorSandro Santilli <strk@keybit.net>
Sat, 29 Sep 2012 16:14:05 +0000 (16:14 +0000)
committerSandro Santilli <strk@keybit.net>
Sat, 29 Sep 2012 16:14:05 +0000 (16:14 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@10345 b70326c6-7e19-0410-871a-916f4a2858ee

extensions/opt_out.sh [new file with mode: 0755]

diff --git a/extensions/opt_out.sh b/extensions/opt_out.sh
new file mode 100755 (executable)
index 0000000..7e9cbf8
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+test -n "$1" || {
+  echo "Usage: $0 <dbname>"
+  exit 1
+}
+
+db="$1"
+
+psql -XtA ${db} <<'EOF' | psql -XtA ${db}
+
+-- for topology
+SELECT 'ALTER EXTENSION ' || extname || ' DROP ' || regexp_replace(
+    regexp_replace(pg_catalog.pg_describe_object(d.classid, d.objid, 0), E'cast from (.*) to (.*)', E'cast\(\\1 as \\2\)'),
+    E'(.*) for access method (.*)', E'\\1 using \\2') || ';' AS sqladd
+FROM pg_catalog.pg_depend AS d
+INNER JOIN pg_extension AS e ON (d.refobjid = e.oid)
+WHERE d.refclassid = 'pg_catalog.pg_extension'::pg_catalog.regclass
+AND deptype = 'e' AND e.extname = 'postgis_topology'
+ORDER BY sqladd;
+
+SELECT 'DROP EXTENSION postgis_topology;';
+
+-- for postgis
+SELECT 'ALTER EXTENSION ' || extname || ' DROP ' || regexp_replace(
+    regexp_replace(pg_catalog.pg_describe_object(d.classid, d.objid, 0), E'cast from (.*) to (.*)', E'cast\(\\1 as \\2\)'),
+    E'(.*) for access method (.*)', E'\\1 using \\2') || ';' AS sqladd
+FROM pg_catalog.pg_depend AS d
+INNER JOIN pg_extension AS e ON (d.refobjid = e.oid)
+WHERE d.refclassid = 'pg_catalog.pg_extension'::pg_catalog.regclass
+AND deptype = 'e' AND e.extname = 'postgis'
+ORDER BY sqladd;
+
+SELECT 'DROP EXTENSION postgis;';
+
+EOF