Support for PostgreSQL 9.1 CREATE EXTENSION syntax

git-svn-id: http://svn.osgeo.org/postgis/trunk@7851 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Regina Obe 2011-09-15 08:40:49 +00:00
parent f37ca5addb
commit a1edbf92da
16 changed files with 333 additions and 0 deletions

34
extensions/README Normal file
View file

@ -0,0 +1,34 @@
These are extension modules for PostgreQL 9.1
to allow postgis modules
to be installed using standard PostgreSQL 9.1+
CREATE EXTENSION syntax
To use: first make install regular PostGIS
then do the below for each extension
make
make install
each
Then in your PostgreSQL database run
CREATE EXTENSION postgis_core;
CREATE EXTENSION postgis_raster;
-- this one doesn't seem to work
-- gives a weird error
-- can not drop table topology.pg_temp_777...
CREATE EXTENSION postgis_topology;
Known issue:
make install for some reason gives an erro though
it does correctly install the modules making them available.
Do uninstall you have to drop cascade the extension
which is not ideal but working out the cast issues.
The dependency logic should warn if you try
to install postgis_raster without postgis_core,
but that seems to not be working right
thought drop cascade extension postgis_core drops
postgis_raster extension.

View file

@ -0,0 +1,45 @@
{
"name": "postgis",
"abstract": "PostGIS 2.0 OGC/SQL-MM compliant spatial extender for PostgreSQL",
"description": "This module provides GIS geometry and geography types and functions",
"version": "2.0.0",
"maintainer": "PostGIS Steering Committee",
"license": "GPL v2",
"provides": {
"postgis": {
"abstract": "PostGIS GIS types, indexes and functions",
"version": "2.0.0",
"file": "all.sql",
"docfile": "doc/postgis.md"
}
},
"prereqs": {
"runtime": {
"requires": {
"plpgsql": 0,
"PostgreSQL": "8.4.0"
}
}
},
"resources": {
"bugtracker": {
"web": "http://trac.osgeo.org/postgis"
},
"repository": {
"url": "svn://svn.osgeo.org/postgis/",
"web": "http://www.postgis.org",
"type": "svn"
}
},
"meta-spec": {
"version": "1.0.0",
"url": "http://pgxn.org/meta/spec.txt"
},
"tags": [
"gis",
"spatial",
"geometry",
"geography",
"location"
]
}

View file

@ -0,0 +1,44 @@
EXTENSION = postgis_core
EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/")
DATA = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
#DATA_built = $(patsubst %.sql.in,%.sql,$(wildcard *.sql.in))
DOCS = $(wildcard doc/html/*.html)
TESTS = $(wildcard test/sql/*.sql)
REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS))
REGRESS_OPTS = --inputdir=test --load-language=plpgsql
MODULES = $(patsubst %.c,%,$(wildcard src/*.c))
PG_CONFIG = pg_config
# SQL objects (files requiring C pre-processing)
#SQL_OBJS=postgis.sql.in
PG91 = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes)
SQL_BITS = $(wildcard sql_bits/*.sql)
EXTRA_CLEAN += sql/$(EXTENSION).sql ${SQL_BITS}
sql/$(EXTENSION).sql: $(SQL_BITS)
cat $^ > $@
EXTRA_CLEAN += sql/$(EXTENSION).sql ${SQL_BITS}
ifeq ($(PG91),yes)
all: sql/$(EXTENSION)--$(EXTVERSION).sql
sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
cp $< $@
sql/$(EXTENSION).sql: sql_bits/postgis.sql sql_bits/spatial_ref_sys.sql
cat $^ > $@
sql_bits/spatial_ref_sys.sql: ../../spatial_ref_sys.sql
sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' $< > $@
#cp $< $@
#strip BEGIN/COMMIT since these are not allowed in extensions
sql_bits/postgis.sql: ../../postgis/postgis.sql
sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' $< > $@
DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql
EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql
endif
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)

View file

@ -0,0 +1,2 @@
\i sql_bits/postgis.sql
\i sql_bits/spatial_ref_sys.sql

View file

@ -0,0 +1,6 @@
PostGIS 2.0.0
============
Extensive documentation can be found at.
HTML: http://www.postgis.org/documentation/manual-svn/
PDF: http://www.postgis.org/download/postgis-2.0.0SVN.pdf

View file

@ -0,0 +1,5 @@
# postgis extension
comment = 'postgis geometry and geography sql-mm spatial types and functions'
default_version = '2.0.0'
module_pathname = '$libdir/postgis-2.0'
relocatable = true

View file

@ -0,0 +1,46 @@
{
"name": "postgis_raster",
"abstract": "PostGIS 2.0 OGC/SQL-MM compliant spatial extender for PostgreSQL",
"description": "This module provides GIS geometry and geography types and functions",
"version": "2.0.0",
"maintainer": "PostGIS Steering Committee",
"license": "GPL v2",
"provides": {
"postgis_raster": {
"abstract": "PostGIS Raster types, indexes and functions",
"version": "2.0.0",
"file": "all.sql",
"docfile": "doc/postgis.md"
}
}
"prereqs": {
"runtime": {
"requires": {
"plpgsql": 0,
"PostgreSQL": "8.4.0",
"postgis_core": "2.0.0"
}
}
},
"resources": {
"bugtracker": {
"web": "http://trac.osgeo.org/postgis"
},
"repository": {
"url": "svn://svn.osgeo.org/postgis/",
"web": "http://www.postgis.org",
"type": "svn"
}
},
"meta-spec": {
"version": "1.0.0",
"url": "http://pgxn.org/meta/spec.txt"
},
"tags": [
"gis",
"spatial",
"geometry",
"geography",
"location", "raster"
]
}

View file

@ -0,0 +1,41 @@
EXTENSION = postgis_raster
EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/")
DATA = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
#DATA_built = $(patsubst %.sql.in,%.sql,$(wildcard *.sql.in))
DOCS = $(wildcard doc/html/*.html)
TESTS = $(wildcard test/sql/*.sql)
REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS))
REGRESS_OPTS = --inputdir=test --load-language=plpgsql
MODULES = $(patsubst %.c,%,$(wildcard src/*.c))
PG_CONFIG = pg_config
# SQL objects (files requiring C pre-processing)
#SQL_OBJS=postgis.sql.in
PG91 = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes)
SQL_BITS = $(wildcard sql_bits/*.sql)
EXTRA_CLEAN += sql/$(EXTENSION).sql ${SQL_BITS}
sql/$(EXTENSION).sql: $(SQL_BITS)
cat $^ > $@
EXTRA_CLEAN += sql/$(EXTENSION).sql ${SQL_BITS}
ifeq ($(PG91),yes)
all: sql/$(EXTENSION)--$(EXTVERSION).sql
sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
cp $< $@
sql/$(EXTENSION).sql: sql_bits/rtpostgis.sql
cat $^ > $@
#strip BEGIN/COMMIT since these are not allowed in extensions
sql_bits/rtpostgis.sql: ../../raster/rt_pg/rtpostgis.sql
sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' $< > $@
DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql
EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql
endif
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)

View file

@ -0,0 +1 @@
\i sql_bits/rtpostgis.sql

View file

@ -0,0 +1,6 @@
PostGIS 2.0.0
============
Extensive documentation can be found at.
HTML: http://www.postgis.org/documentation/manual-svn/
PDF: http://www.postgis.org/download/postgis-2.0.0SVN.pdf

View file

@ -0,0 +1,5 @@
# postgis extension
comment = 'postgis raster spatial types and functions'
default_version = '2.0.0'
module_pathname = '$libdir/rtpostgis-2.0'
relocatable = true

View file

@ -0,0 +1,46 @@
{
"name": "postgis_topology",
"abstract": "PostGIS 2.0 Topology OGC/SQL-MM compliant spatial extender for PostgreSQL",
"description": "This module provides GIS Topology geometry types and functions",
"version": "2.0.0",
"maintainer": "PostGIS Steering Committee",
"license": "GPL v2",
"provides": {
"postgis_raster": {
"abstract": "PostGIS SQL/MM Topology types and functions",
"version": "2.0.0",
"file": "all.sql",
"docfile": "doc/postgis.md"
}
}
"prereqs": {
"runtime": {
"requires": {
"plpgsql": 0,
"PostgreSQL": "8.4.0",
"postgis_core": "2.0.0"
}
}
},
"resources": {
"bugtracker": {
"web": "http://trac.osgeo.org/postgis"
},
"repository": {
"url": "svn://svn.osgeo.org/postgis/",
"web": "http://www.postgis.org",
"type": "svn"
}
},
"meta-spec": {
"version": "1.0.0",
"url": "http://pgxn.org/meta/spec.txt"
},
"tags": [
"gis",
"spatial",
"geometry",
"geography",
"location", "topology"
]
}

View file

@ -0,0 +1,41 @@
EXTENSION = postgis_topology
EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/")
DATA = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql))
#DATA_built = $(patsubst %.sql.in,%.sql,$(wildcard *.sql.in))
DOCS = $(wildcard doc/html/*.html)
TESTS = $(wildcard test/sql/*.sql)
REGRESS = $(patsubst test/sql/%.sql,%,$(TESTS))
REGRESS_OPTS = --inputdir=test --load-language=plpgsql
MODULES = $(patsubst %.c,%,$(wildcard src/*.c))
PG_CONFIG = pg_config
# SQL objects (files requiring C pre-processing)
#SQL_OBJS=postgis.sql.in
PG91 = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes)
SQL_BITS = $(wildcard sql_bits/*.sql)
EXTRA_CLEAN += sql/$(EXTENSION).sql ${SQL_BITS}
sql/$(EXTENSION).sql: $(SQL_BITS)
cat $^ > $@
EXTRA_CLEAN += sql/$(EXTENSION).sql ${SQL_BITS}
ifeq ($(PG91),yes)
all: sql/$(EXTENSION)--$(EXTVERSION).sql
sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
cp $< $@
sql/$(EXTENSION).sql: sql_bits/topology.sql
cat $^ > $@
#strip BEGIN/COMMIT since these are not allowed in extensions
sql_bits/topology.sql: ../../topology/topology.sql
sed -e 's/BEGIN;//g' -e 's/COMMIT;//g' $< > $@
DATA = $(wildcard sql/*--*.sql) sql/$(EXTENSION)--$(EXTVERSION).sql
EXTRA_CLEAN += sql/$(EXTENSION)--$(EXTVERSION).sql
endif
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)

View file

@ -0,0 +1 @@
\i sql_bits/topology.sql

View file

@ -0,0 +1,6 @@
PostGIS 2.0.0
============
Extensive documentation can be found at.
HTML: http://www.postgis.org/documentation/manual-svn/
PDF: http://www.postgis.org/download/postgis-2.0.0SVN.pdf

View file

@ -0,0 +1,4 @@
# postgis topology extension
comment = 'postgis topology spatial types and functions'
default_version = '2.0.0'
relocatable = false