Commit ce3dd19f authored by Sandro Santilli's avatar Sandro Santilli

Simplify opt_out.sh code, allow writing to stdout

git-svn-id: http://svn.osgeo.org/postgis/trunk@17294 b70326c6-7e19-0410-871a-916f4a2858ee
parent 795cf2ac
Pipeline #50585172 passed with stage
in 21 minutes and 4 seconds
#!/bin/sh
test -n "$1" || {
echo "Usage: $0 <dbname>"
echo "Usage: $0 { <dbname> | - }"
exit 1
}
db="$1"
psql -XtA ${db} <<'EOF' | psql -XtA ${db}
-----------------
-- for sfcgal
-----------------
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_sfcgal'
ORDER BY sqladd;
SELECT 'DROP EXTENSION postgis_sfcgal;';
-----------------
-- for raster
-----------------
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_raster'
ORDER BY sqladd;
SELECT 'DROP EXTENSION postgis_raster;';
-----------------
-- 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 core
--------------------
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
EXTENSIONS="postgis_sfcgal postgis_raster postgis_topology postgis"
(
for ext in $EXTENSIONS; do
cat <<EOF
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;
AND deptype = 'e' AND e.extname = '${ext}' ORDER BY sqladd;
SELECT 'DROP EXTENSION postgis;';
SELECT 'DROP EXTENSION ${ext};';
EOF
done
) |
if test ${db} = '-'; then
cat
else
psql -XtA ${db}
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment