File: extensions_unpackage.sh

package info (click to toggle)
postgis 3.3.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 87,748 kB
  • sloc: ansic: 158,671; sql: 91,546; xml: 54,004; cpp: 12,339; sh: 5,187; perl: 5,100; makefile: 3,085; python: 1,205; yacc: 447; lex: 151; javascript: 6
file content (35 lines) | stat: -rwxr-xr-x 787 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh

test -n "$1" || {
  echo "Usage: $0 <dbname>"
  exit 1
}

db="$1"

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 = '${ext}' ORDER BY sqladd;

SELECT 'DROP EXTENSION IF EXISTS ${ext};';

EOF
  done
) | psql -XtA ${db}