[postgis] 04/20: Imported Upstream version 2.1.2+dfsg

Bas Couwenberg sebastic at xs4all.nl
Fri Apr 4 19:42:36 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch master
in repository postgis.

commit 478d48ead3a2ad05c603e2fae8acefd2b49c25b0
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Apr 4 15:35:30 2014 +0200

    Imported Upstream version 2.1.2+dfsg
---
 extras/ogc_test_suite/1_schema.sql  |  697 ------------------
 extras/ogc_test_suite/2_queries.sql | 1341 -----------------------------------
 extras/ogc_test_suite/3_cleanup.sql |   22 -
 extras/ogc_test_suite/Makefile      |   15 -
 extras/ogc_test_suite/README        |   20 -
 5 files changed, 2095 deletions(-)

diff --git a/extras/ogc_test_suite/1_schema.sql b/extras/ogc_test_suite/1_schema.sql
deleted file mode 100644
index 3b6f4a6..0000000
--- a/extras/ogc_test_suite/1_schema.sql
+++ /dev/null
@@ -1,697 +0,0 @@
--- FILE: sqltsch.sql 10/01/98
---
---       1         2         3         4         5         6         7         8
---345678901234567890123456789012345678901234567890123456789012345678901234567890
---//////////////////////////////////////////////////////////////////////////////
---
--- Copyright 1998, Open GIS Consortium, Inc.
---
--- The material in this document details an Open GIS Consortium Test Suite in
--- accordance with a license that your organization has signed. Please refer
--- to http://www.opengis.org/testing/ to obtain a copy of the general license
--- (it is part of the Conformance Testing Agreement). 
---
---//////////////////////////////////////////////////////////////////////////////
---
--- OpenGIS Simple Features for SQL (Types and Functions) Test Suite Software
--- 
--- This file "sqltsch.sql" is part 1 of a two part standardized test
--- suite in SQL script form. The other file that is required for this test
--- suite, "sqltque.sql", one additional script is provided ("sqltcle.sql") that
--- performs cleanup operations between test runs, and other documents that 
--- describe the OGC Conformance Test Program are available via the WWW at 
--- http://www.opengis.org/testing/index.htm
---
--- NOTE CONCERNING INFORMATION ON CONFORMANCE TESTING AND THIS TEST SUITE
--- ----------------------------------------------------------------------
---
--- Organizations wishing to submit product for conformance testing should
--- access the above WWW site to discover the proper procedure for obtaining
--- a license to use the OpenGIS(R) certification mark associated with this
--- test suite.
---
---
--- NOTE CONCERNING TEST SUITE ADAPTATION
--- -------------------------------------
---
--- OGC recognizes that many products will have to adapt this test suite to
--- make it work properly. OGC has documented the allowable adaptations within
--- this test suite where possible. Other information about adaptations may be
--- discovered in the Test Suite Guidelines document for this test suite.
--- 
--- PLEASE NOTE THE OGC REQUIRES THAT ADAPTATIONS ARE FULLY DOCUMENTED USING
--- LIBERAL COMMENT BLOCKS CONFORMING TO THE FOLLOWING FORMAT:
---
--- -- !#@ ADAPTATION BEGIN 
--- explanatory text goes here
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- original sql goes here
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
--- adated sql goes here
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END 
---
---//////////////////////////////////////////////////////////////////////////////
---
--- BEGIN TEST SUITE CODE
---
---//////////////////////////////////////////////////////////////////////////////
---
--- Create the neccessary feature and geometry tables(views) and metadata tables
--- (views) to load and query the "Blue Lake" test data for OpenGIS Simple 
--- Features for SQL (Types and Functions) test.
--- 
--- Required feature tables (views) are:
---                        Lakes 
---                        Road Segments
---                        Divided Routes
---                        Buildings
---                        Forests
---                        Bridges
---                        Named Places 
---                        Streams 
---                        Ponds
---                        Map Neatlines
---
--- Please refer to the Test Suite Guidelines for this test suite for further
--- information concerning this test data.
---
---//////////////////////////////////////////////////////////////////////////////
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- CREATE SPATIAL_REF_SYS METADATA TABLE
---
---//////////////////////////////////////////////////////////////////////////////
---
---
--- *** ADAPTATION ALERT ****
--- Implementations do not need to execute this statement if they already
--- create the spatial_ref_sys table or view via another mechanism.
--- The size of the srtext VARCHAR exceeds that allowed on some systems.
---
--- ---------------------
--- !#@ ADAPTATION BEGIN
--- This table is already defined by PostGIS so we comment it out here.
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
---CREATE TABLE spatial_ref_sys (
---       srid       INTEGER NOT NULL PRIMARY KEY,
---       auth_name  VARCHAR(256),
---       auth_srid  INTEGER,
---       srtext     VARCHAR(2048)
---       srtext     VARCHAR(2000)
---);
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
-INSERT INTO spatial_ref_sys (SRID,AUTH_NAME,AUTH_SRID,SRTEXT) 
-VALUES (101, 'POSC', 32214, 
-'PROJCS["UTM_ZONE_14N", GEOGCS["World Geodetic System 72",
-DATUM["WGS_72",  SPHEROID["NWL_10D", 6378135, 298.26]],
-PRIMEM["Greenwich", 0], UNIT["Meter", 1.0]],
-PROJECTION["Transverse_Mercator"],
-PARAMETER["False_Easting", 500000.0],
-PARAMETER["False_Northing", 0.0],
-PARAMETER["Central_Meridian", -99.0],
-PARAMETER["Scale_Factor", 0.9996],
-PARAMETER["Latitude_of_origin", 0.0],
-UNIT["Meter", 1.0]]'
-);
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
---                        CREATE FEATURE SCHEMA
---
--- *** ADAPTATION ALERT ***
--- The following schema is created using CREATE TABLE statements.
--- Furthermore, it DOES NOT create the GEOMETRY_COLUMNS metadata table.
--- Implementer's should replace the CREATE TABLES below with the mechanism
--- that it uses to create feature tables and the GEOMETRY_COLUMNS table/view 
---
---//////////////////////////////////////////////////////////////////////////////
---
---------------------------------------------------------------------------------
---
--- Create feature tables
---
---------------------------------------------------------------------------------
---
--- Lakes
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the 
--- attribute table, second use the AddGeometryColumn() function 
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE lakes (
---       fid               INTEGER NOT NULL PRIMARY KEY,
---       name              VARCHAR(64),
---       shore             POLYGON
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE lakes (
-       fid               INTEGER NOT NULL PRIMARY KEY,
-       name              VARCHAR(64)
-);
-SELECT AddGeometryColumn('lakes','shore','101','POLYGON','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Road Segments
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE road_segments (
---      fid               INTEGER NOT NULL PRIMARY KEY,
---      name              VARCHAR(64),
---      aliases           VARCHAR(64),
---      num_lanes         INTEGER
---      centerline        LINESTRING
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-
-CREATE TABLE road_segments (
-       fid               INTEGER NOT NULL PRIMARY KEY,
-       name              VARCHAR(64),
-       aliases           VARCHAR(64),
-       num_lanes         INTEGER
-);
-SELECT AddGeometryColumn('road_segments','centerline','101','LINESTRING','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Divided Routes
---
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE divided_routes (
---       fid               INTEGER NOT NULL PRIMARY KEY,
---       name              VARCHAR(64),
---       num_lanes         INTEGER
---       centerlines       MULTILINESTRING
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE divided_routes (
-       fid               INTEGER NOT NULL PRIMARY KEY,
-       name              VARCHAR(64),
-       num_lanes         INTEGER
-);
-SELECT AddGeometryColumn('divided_routes','centerlines','101','MULTILINESTRING','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Forests
---
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE forests (
---       fid            INTEGER NOT NULL PRIMARY KEY,
---       name           VARCHAR(64)
---       boundary       MULTIPOLYGON
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE forests (
-       fid            INTEGER NOT NULL PRIMARY KEY,
-       name           VARCHAR(64)
-);
-SELECT AddGeometryColumn('forests','boundary','101','MULTIPOLYGON','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Bridges
---
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE bridges (
---       fid           INTEGER NOT NULL PRIMARY KEY,
---       name          VARCHAR(64)
---       position      POINT
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE bridges (
-       fid           INTEGER NOT NULL PRIMARY KEY,
-       name          VARCHAR(64)
-);
-SELECT AddGeometryColumn('bridges','position','101','POINT','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
-
---
--- Streams
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE streams (
---       fid             INTEGER NOT NULL PRIMARY KEY,
---       name            VARCHAR(64)
---       centerline      LINESTRING
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE streams (
-       fid             INTEGER NOT NULL PRIMARY KEY,
-       name            VARCHAR(64)
-);
-SELECT AddGeometryColumn('streams','centerline','101','LINESTRING','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Buildings
---
---*** ADAPTATION ALERT ***
--- A view could be used to provide the below semantics without multiple geometry 
--- columns in a table. In other words, create two tables. One table would
--- contain the POINT position and the other would create the POLYGON footprint.
--- Then create a view with the semantics of the buildings table below.
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE buildings (
---     fid             INTEGER NOT NULL PRIMARY KEY,
---     address         VARCHAR(64)
---     position        POINT
---     footprint       POLYGON
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE buildings (
-       fid             INTEGER NOT NULL PRIMARY KEY,
-       address         VARCHAR(64)
-);
-SELECT AddGeometryColumn('buildings','position','101','POINT','2');
-SELECT AddGeometryColumn('buildings','footprint','101','POLYGON','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Ponds
---
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE ponds (
---       fid             INTEGER NOT NULL PRIMARY KEY,
---       name            VARCHAR(64),
---       type            VARCHAR(64)
---       shores          MULTIPOYLGON
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE ponds (
-       fid             INTEGER NOT NULL PRIMARY KEY,
-       name            VARCHAR(64),
-       type            VARCHAR(64)
-);
-SELECT AddGeometryColumn('ponds','shores','101','MULTIPOLYGON','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
--- Named Places
---
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
-
--- CREATE TABLE named_places (
---       fid             INTEGER NOT NULL PRIMARY KEY,
---       name            VARCHAR(64)
---       boundary        POLYGON
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE named_places (
-       fid             INTEGER NOT NULL PRIMARY KEY,
-       name            VARCHAR(64)
-);
-SELECT AddGeometryColumn('named_places','boundary','101','POLYGON','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
--- Map Neatline
---
---
---
---
--- !#@ ADAPTATION BEGIN
--- We break the schema creation into two steps, first create the
--- attribute table, second use the AddGeometryColumn() function
--- to create and register the geometry column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- CREATE TABLE map_neatlines (
---     fid             INTEGER NOT NULL PRIMARY KEY
---     neatline        POLYGON
--- );
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-CREATE TABLE map_neatlines (
-       fid             INTEGER NOT NULL PRIMARY KEY
-);
-SELECT AddGeometryColumn('map_neatlines','neatline','101','POLYGON','2');
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- POPULATE GEOMETRY AND FEATURE TABLES
---
--- *** ADAPTATION ALERT ***
--- This script DOES NOT make any inserts into a GEOMTERY_COLUMNS table/view.
--- Implementers should insert whatever makes this happen in their implementation
--- below. Furthermore, the inserts below may be replaced by whatever mechanism
--- may be provided by implementers to insert rows in feature tables such that
--- metadata (and other mechanisms) are updated properly.
---
---//////////////////////////////////////////////////////////////////////////////
---
---==============================================================================
--- Lakes
---
--- We have one lake, Blue Lake. It is a polygon with a hole. Its geometry is
--- described in WKT format as:
---   'POLYGON( (52 18, 66 23, 73  9, 48  6, 52 18), 
---             (59 18, 67 18, 67 13, 59 13, 59 18) )'
---==============================================================================
---
---
-INSERT INTO lakes VALUES (101, 'Blue Lake', 
-    PolygonFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))', 101)
-);
---
---==================
--- Road segments
---
--- We have five road segments. Their geometries are all linestrings.
--- The geometries are described in WKT format as:
---  name 'Route 5', fid 102
---   'LINESTRING( 0 18, 10 21, 16 23, 28 26, 44 31 )'
---  name 'Route 5', fid 103
---   'LINESTRING( 44 31, 56 34, 70 38 )' 
---  name 'Route 5', fid 104
---   'LINESTRING( 70 38, 72 48 )' 
---  name 'Main Street', fid 105
---   'LINESTRING( 70 38, 84 42 )' 
---  name 'Dirt Road by Green Forest', fid 106
---   'LINESTRING( 28 26, 28 0 )'
---
---==================
---
---
-INSERT INTO road_segments VALUES(102, 'Route 5', NULL, 2, 
-    LineStringFromText('LINESTRING( 0 18, 10 21, 16 23, 28 26, 44 31 )' ,101)
-);
-INSERT INTO road_segments VALUES(103, 'Route 5', 'Main Street', 4, 
-    LineStringFromText('LINESTRING( 44 31, 56 34, 70 38 )' ,101)
-);
-INSERT INTO road_segments VALUES(104, 'Route 5', NULL, 2, 
-    LineStringFromText('LINESTRING( 70 38, 72 48 )' ,101)
-);
-INSERT INTO road_segments VALUES(105, 'Main Street', NULL, 4, 
-    LineStringFromText('LINESTRING( 70 38, 84 42 )' ,101)
-);
-INSERT INTO road_segments VALUES(106, 'Dirt Road by Green Forest', NULL, 1, 
-    LineStringFromText('LINESTRING( 28 26, 28 0 )',101)
-);                                    
---
---==================
--- DividedRoutes
---
--- We have one divided route. Its geometry is a multilinestring.
--- The geometry is described in WKT format as:
---   'MULTILINESTRING( (10 48, 10 21, 10 0), (16 0, 10 23, 16 48) )'
---
---==================
---
-INSERT INTO divided_routes VALUES(119, 'Route 75', 4, 
-    MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))', 101)
-);
---
---==================
--- Forests
---
--- We have one forest. Its geometry is a multipolygon.
--- The geometry is described in WKT format as:
---   'MULTIPOLYGON( ( (28 26, 28 0, 84 0, 84 42, 28 26), 
---                    (52 18, 66 23, 73 9, 48 6, 52 18) ), 
---                  ( (59 18, 67 18, 67 13, 59 13, 59 18) ) )'
---
---==================
---
-INSERT INTO forests VALUES(109, 'Green Forest', 
-    MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))', 101)
-);
---
---==================
--- Bridges
---
--- We have one bridge. Its geometry is a point.
--- The geometry is described in WKT format as:
---   'POINT( 44 31 )'
---
---==================
---
-INSERT INTO bridges VALUES(110, 'Cam Bridge', 
-    PointFromText('POINT( 44 31 )', 101)
-);
---
---==================
--- Streams
---
--- We have two streams. Their geometries are linestrings.
--- The geometries are described in WKT format as:
---   'LINESTRING( 38 48, 44 41, 41 36, 44 31, 52 18 )'
---   'LINESTRING( 76 0, 78 4, 73 9 )'
---
---==================
---
-INSERT INTO streams VALUES(111, 'Cam Stream', 
-    LineStringFromText('LINESTRING( 38 48, 44 41, 41 36, 44 31, 52 18 )', 101)
-);
-INSERT INTO streams VALUES(112, NULL, 
-    LineStringFromText('LINESTRING( 76 0, 78 4, 73 9 )', 101)
-);
---
---==================
--- Buildings
---
--- We have two buildings. Their geometries are points and polygons.
--- The geometries are described in WKT format as:
---  address '123 Main Street' fid 113
---   'POINT( 52 30 )' and
---   'POLYGON( ( 50 31, 54 31, 54 29, 50 29, 50 31) )'
---  address '215 Main Street' fid 114
---   'POINT( 64 33 )' and
---   'POLYGON( ( 66 34, 62 34, 62 32, 66 32, 66 34) )'
---
---==================
---
-INSERT INTO buildings VALUES(113, '123 Main Street', 
-    PointFromText('POINT( 52 30 )', 101), 
-    PolygonFromText('POLYGON( ( 50 31, 54 31, 54 29, 50 29, 50 31) )', 101)
-);
-INSERT INTO buildings VALUES(114, '215 Main Street', 
-    PointFromText('POINT( 64 33 )', 101), 
-    PolygonFromText('POLYGON( ( 66 34, 62 34, 62 32, 66 32, 66 34) )', 101)
-);
---
---==================
--- Ponds
---
--- We have one pond. Its geometry is a multipolygon.
--- The geometry is described in WKT format as:
---   'MULTIPOLYGON( ( ( 24 44, 22 42, 24 40, 24 44) ), ( ( 26 44, 26 40, 28 42, 26 44) ) )'
---
---==================
---
-INSERT INTO ponds VALUES(120, NULL, 'Stock Pond', 
-    MultiPolygonFromText('MULTIPOLYGON( ( ( 24 44, 22 42, 24 40, 24 44) ), ( ( 26 44, 26 40, 28 42, 26 44) ) )', 101)
-);
---
---==================
--- Named Places
---
--- We have two named places. Their geometries are polygons.
--- The geometries are described in WKT format as:
---  name 'Ashton' fid 117
---   'POLYGON( ( 62 48, 84 48, 84 30, 56 30, 56 34, 62 48) )'
---  address 'Goose Island' fid 118
---   'POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )'
---
---==================
---
-INSERT INTO named_places VALUES(117, 'Ashton', 
-    PolygonFromText('POLYGON( ( 62 48, 84 48, 84 30, 56 30, 56 34, 62 48) )', 101)
-);
-INSERT INTO named_places VALUES(118, 'Goose Island', 
-    PolygonFromText('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )', 101)
-);
---
---==================
--- Map Neatlines
---
--- We have one map neatline. Its geometry is a polygon.
--- The geometry is described in WKT format as:
---   'POLYGON( ( 0 0, 0 48, 84 48, 84 0, 0 0 ) )'
---
---==================
---
-INSERT INTO map_neatlines VALUES(115, 
-    PolygonFromText('POLYGON( ( 0 0, 0 48, 84 48, 84 0, 0 0 ) )', 101)
-);
---
---
---
--- end sqltsch.sql
diff --git a/extras/ogc_test_suite/2_queries.sql b/extras/ogc_test_suite/2_queries.sql
deleted file mode 100644
index c786c23..0000000
--- a/extras/ogc_test_suite/2_queries.sql
+++ /dev/null
@@ -1,1341 +0,0 @@
--- FILE: sqltque.sql 10/01/98
---
---       1         2         3         4         5         6         7         8
---345678901234567890123456789012345678901234567890123456789012345678901234567890
---//////////////////////////////////////////////////////////////////////////////
---
--- Copyright 1998, Open GIS Consortium, Inc.
---
--- The material in this document details an Open GIS Consortium Test Suite in
--- accordance with a license that your organization has signed. Please refer
--- to http://www.opengis.org/testing/ to obtain a copy of the general license
--- (it is part of the Conformance Testing Agreement). 
---
---//////////////////////////////////////////////////////////////////////////////
---
--- OpenGIS Simple Features for SQL (Types and Functions) Test Suite Software
--- 
--- This file "sqltque.sql" is part 2 of a two part standardized test
--- suite in SQL script form. The other file that is required for this test
--- suite, "sqltsch.sql", one additional script is provided ("sqltcle.sql") that
--- performs cleanup operations between test runs, and other documents that 
--- describe the OGC Conformance Test Program are available via the WWW at 
--- http://www.opengis.org/testing/index.htm
---
--- NOTE CONCERNING INFORMATION ON CONFORMANCE TESTING AND THIS TEST SUITE
--- ----------------------------------------------------------------------
---
--- Organizations wishing to submit product for conformance testing should
--- access the above WWW site to discover the proper procedure for obtaining
--- a license to use the OpenGIS(R) certification mark associated with this
--- test suite.
---
---
--- NOTE CONCERNING TEST SUITE ADAPTATION
--- -------------------------------------
---
--- OGC recognizes that many products will have to adapt this test suite to
--- make it work properly. OGC has documented the allowable adaptations within
--- this test suite where possible. Other information about adaptations may be
--- discovered in the Test Suite Guidelines document for this test suite.
--- 
--- PLEASE NOTE THE OGC REQUIRES THAT ADAPTATIONS ARE FULLY DOCUMENTED USING
--- LIBERAL COMMENT BLOCKS CONFORMING TO THE FOLLOWING FORMAT:
---
--- -- !#@ ADAPTATION BEGIN 
--- explanatory text goes here
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- original sql goes here
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
--- adated sql goes here
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END 
---
---//////////////////////////////////////////////////////////////////////////////
---
--- BEGIN TEST SUITE CODE
---
---//////////////////////////////////////////////////////////////////////////////
---
--- Please refer to the Test Suite Guidelines for this test suite for further
--- information concerning the test data. The actual data is created by 
--- executing "sqltsch.sql"
---
---//////////////////////////////////////////////////////////////////////////////
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING THE TABLE/VIEW STRUCTURE
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T1	
--- GEOMETRY_COLUMNS table/view is created/updated properly	
--- For this test we will check to see that all of the feature tables are 
--- represented by entries in the GEOMETRY_COLUMNS table/view
---
--- ANSWER: lakes, road_segments, divided_routes, buildings, forests, bridges, 
---         named_places, streams, ponds, map_neatlines
--- *** ADAPTATION ALERT ***	
--- Since there are no quotes around the table names in the CREATE TABLEs,
--- they will be converted to upper case in many DBMSs, and therefore, the 
--- answer to this query may be:
--- ANSWER: LAKES, ROAD_SEGMENTS, DIVIDED_ROUTES, BUILDINGS, FORESTS, BRIDGES, 
---         NAMED_PLACES, STREAMS, PONDS, MAP_NEATLINES
--- *** ADAPTATION ALERT ***	
--- If the implementer made the adaptation concerning the buildings table
--- in sqltsch.sql, then the answer here may differ slightly.
---	
---
---================================
---
-SELECT f_table_name
-FROM geometry_columns;
---
---
---================================
--- Conformance Item T2	
--- GEOMETRY_COLUMNS table/view is created/updated properly	
--- For this test we will check to see that the correct geometry columns for the 
--- streams table is represented in the GEOMETRY_COLUMNS table/view
---
--- ANSWER: centerline
--- *** ADAPTATION ALERT ***	
--- Since there are no quotes around the table name, streams, in it's CREATE TABLE,
--- it will be converted to upper case in many DBMSs, and therefore, the WHERE 
--- clause may have to be f_table_name = 'STREAMS'.
---
---================================
---
-SELECT f_geometry_column
-FROM geometry_columns
-WHERE f_table_name = 'streams';
---
---
---================================
--- Conformance Item T3	
--- GEOMETRY_COLUMNS table/view is created/updated properly	
--- For this test we will check to see that the correct coordinate dimension 
--- for the streams table is represented in the GEOMETRY_COLUMNS table/view
---
--- ANSWER: 2	
--- *** ADAPTATION ALERT ***	
--- Since there are no quotes around the table name, streams, in it's CREATE TABLE,
--- it will be converted to upper case in many DBMSs, and therefore, the WHERE 
--- clause may have to be f_table_name = 'STREAMS'.
---
---================================
---
-SELECT coord_dimension
-FROM geometry_columns
-WHERE f_table_name = 'streams';
---
---
---================================
--- Conformance Item T4	
--- GEOMETRY_COLUMNS table/view is created/updated properly	
--- For this test we will check to see that the correct value of srid for 
--- the streams table is represented in the GEOMETRY_COLUMNS table/view
---
--- ANSWER: 101	
--- *** ADAPTATION ALERT ***	
--- Since there are no quotes around the table name, streams, in it's CREATE TABLE,
--- it will be converted to upper case in many DBMSs, and therefore, the WHERE 
--- clause may have to be f_table_name = 'STREAMS'.
---
---================================
---
-SELECT srid
-FROM geometry_columns
-WHERE f_table_name = 'streams';
---
---
---================================
--- Conformance Item T5
--- SPATIAL_REF_SYS table/view is created/updated properly
--- For this test we will check to see that the correct value of srtext is 
--- represented in the SPATIAL_REF_SYS table/view
---
--- ANSWER: 'PROJCS["UTM_ZONE_14N", GEOGCS["World Geodetic System 72", 
---           DATUM["WGS_72",  SPHEROID["NWL_10D", 6378135, 298.26]], 
---           PRIMEM["Greenwich", 0], UNIT["Meter", 1.0]], 
---           PROJECTION["Traverse_Mercator"], PARAMETER["False_Easting", 500000.0], 
---           PARAMETER["False_Northing", 0.0], PARAMETER["Central_Meridian", -99.0], 
---           PARAMETER["Scale_Factor", 0.9996], PARAMETER["Latitude_of_origin", 0.0], 
---           UNIT["Meter", 1.0]]'	
---
---================================
---
-SELECT srtext
-FROM SPATIAL_REF_SYS
-WHERE SRID = 101;
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.10.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T6	
--- Dimension(g Geometry) : Integer
--- For this test we will determine the dimension of Blue Lake.
---
--- ANSWER: 2
---
---================================
---
-SELECT Dimension(shore) 
-FROM lakes 
-WHERE name = 'Blue Lake';
---
---
---================================
--- Conformance Item T7	
--- GeometryType(g Geometry) : String
--- For this test we will determine the type of Route 75.
---
--- ANSWER: 9 (which corresponds to 'MULTILINESTRING')
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script incorrectly references the 'lakes' table
--- instead of the 'divided_routes' table where 'Route 75' 
--- appears.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT GeometryType(centerlines) 
--- FROM lakes 
--- WHERE name = 'Route 75';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT GeometryType(centerlines) 
-FROM divided_routes 
-WHERE name = 'Route 75';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T8	
--- AsText(g Geometry) : String
--- For this test we will determine the WKT representation of Goose Island.
---
--- ANSWER: 'POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )'
---
---================================
---
-SELECT AsText(boundary) 
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T9	
--- AsBinary(g Geometry) : Blob
--- For this test we will determine the WKB representation of Goose Island.
--- We will test by applying AsText to the result of PolygonFromText to the 
--- result of AsBinary.
---
--- ANSWER: 'POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )'
---
---================================
---
-SELECT AsText(PolygonFromWKB(AsBinary(boundary))) 
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T10	
--- SRID(g Geometry) : Integer
--- For this test we will determine the SRID of Goose Island.
---
--- ANSWER: 101
---
---================================
---
-SELECT SRID(boundary) 
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T11	
--- IsEmpty(g Geometry) : Integer
--- For this test we will determine whether the geometry of a 
--- segment of Route 5 is empty.
---
--- ANSWER: 0
--- *** Adaptation Alert ***
--- If the implementer provides IsEmpty as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: FALSE or 'f'
---
---================================
---
-SELECT IsEmpty(centerline) 
-FROM road_segments 
-WHERE name = 'Route 5' AND aliases = 'Main Street';
---
---================================
--- Conformance Item T12	
--- IsSimple(g Geometry) : Integer
--- For this test we will determine whether the geometry of a 
--- segment of Blue Lake is simple.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides IsSimple as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT IsSimple(shore) 
-FROM lakes 
-WHERE name = 'Blue Lake';
---
---================================
--- Conformance Item T13	
--- Boundary(g Geometry) : Geometry
--- For this test we will determine the boundary of Goose Island.
--- NOTE: The boundary result is as defined in 3.12.3.2 of 96-015R1.
--- 
--- ANSWER: 'LINESTRING( 67 13, 67 18, 59 18, 59 13, 67 13 )'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script includes extraneous parenthesis around the 
--- 'boundary' column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT AsText(Boundary((boundary)) 
--- FROM named_places 
--- WHERE name = 'Goose Island';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(Boundary(boundary)) 
-FROM named_places 
-WHERE name = 'Goose Island';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T14	
--- Envelope(g Geometry) : Geometry
--- For this test we will determine the envelope of Goose Island.
--- 
--- ANSWER: 'POLYGON( ( 59 13, 59 18, 67 18, 67 13, 59 13) )'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script includes extraneous parenthesis around the
--- 'boundary' column.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT AsText(Envelope((boundary)) 
--- FROM named_places 
--- WHERE name = 'Goose Island';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(Envelope(boundary)) 
-FROM named_places 
-WHERE name = 'Goose Island';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.11.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T15	
--- X(p Point) : Double Precision
--- For this test we will determine the X coordinate of Cam Bridge.
--- 
--- ANSWER: 44.00
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script reference to 'Bridges' is not correct, the 
--- attribute value is 'Cam Bridge'.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT X(position) 
--- FROM bridges 
--- WHERE name = 'Bridges';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT X(position) 
-FROM bridges 
-WHERE name = 'Cam Bridge';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T16	
--- Y(p Point) : Double Precision
--- For this test we will determine the Y coordinate of Cam Bridge.
--- 
--- ANSWER: 31.00
---
---================================
---
-SELECT Y(position) 
-FROM bridges 
-WHERE name = 'Cam Bridge';
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.12.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T17	
--- StartPoint(c Curve) : Point
--- For this test we will determine the start point of road segment 102.
---
--- ANSWER: 'POINT( 0 18 )'
---
---================================
---
-SELECT AsText(StartPoint(centerline))
-FROM road_segments 
-WHERE fid = 102;
---
---================================
--- Conformance Item T18	
--- EndPoint(c Curve) : Point
--- For this test we will determine the end point of road segment 102.
---
--- ANSWER: 'POINT( 44 31 )'
---
---================================
---
-SELECT AsText(EndPoint(centerline))
-FROM road_segments 
-WHERE fid = 102;
---
---================================
--- Conformance Item T19	
--- IsClosed(c Curve) : Integer
--- For this test we will determine the boundary of Goose Island.
--- 
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides IsClosed as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT IsClosed(Boundary(boundary)) 
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T20	
--- IsRing(c Curve) : Integer
--- For this test we will determine the boundary of Goose Island.
--- 
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides IsRing as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT IsRing(Boundary(boundary)) 
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T21	
--- Length(c Curve) : Double Precision
--- For this test we will determine the length of road segment 106.
---
--- ANSWER: 26.00 (meters)
---
---================================
---
-SELECT Length(centerline)
-FROM road_segments 
-WHERE fid = 106;
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.13.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T22	
--- NumPoints(l LineString) : Integer
--- For this test we will determine the number of points in road segment 102.
---
--- ANSWER: 5
---
---================================
---
-SELECT NumPoints(centerline)
-FROM road_segments 
-WHERE fid = 102;
---
---================================
--- Conformance Item T23	
--- PointN(l LineString, n Integer) : Point
--- For this test we will determine the 1st point in road segment 102.
---
--- ANSWER: 'POINT( 0 18 )'
---
---================================
---
-SELECT AsText(PointN(centerline, 1))
-FROM road_segments 
-WHERE fid = 102;
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.14.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T24	
--- Centroid(s Surface) : Point
--- For this test we will determine the centroid of Goose Island.
---
--- ANSWER: 'POINT( 63 15.5 )'
---
---================================
---
-SELECT AsText(Centroid(boundary))
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T25	
--- PointOnSurface(s Surface) : Point
--- For this test we will determine a point on Goose Island.
--- NOTE: For this test we will have to uses the Contains function
---       (which we don't test until later).
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Contains as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT Contains(boundary, PointOnSurface(boundary))
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T26	
--- Area(s Surface) : Double Precision
--- For this test we will determine the area of Goose Island.
---
--- ANSWER: 40.00 (square meters)
---
---================================
---
-SELECT Area(boundary)
-FROM named_places 
-WHERE name = 'Goose Island';
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.15.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T27	
--- ExteriorRing(p Polygon) : LineString
--- For this test we will determine the exteroir ring of Blue Lake.
---
--- ANSWER: 'LINESTRING(52 18, 66 23, 73  9, 48  6, 52 18)'
---
---================================
---
-SELECT AsText(ExteriorRing(shore))
-FROM lakes 
-WHERE name = 'Blue Lake';
---
---================================
--- Conformance Item T28	
--- NumInteriorRings(p Polygon) : Integer
--- For this test we will determine the number of interior rings of Blue Lake.
---
--- ANSWER: 1
---
---================================
---
-SELECT NumInteriorRings(shore)
-FROM lakes 
-WHERE name = 'Blue Lake';
---
---================================
--- Conformance Item T29	
--- InteriorRingN(p Polygon, n Integer) : LineString
--- For this test we will determine the first interior ring of Blue Lake.
---
--- ANSWER: 'LINESTRING(59 18, 67 18, 67 13, 59 13, 59 18)'
---
---================================
---
-SELECT AsText(InteriorRingN(shore, 1))
-FROM lakes 
-WHERE name = 'Blue Lake';
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.16.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T30	
--- NumGeometries(g GeometryCollection) : Integer
--- For this test we will determine the number of geometries in Route 75.
---
--- ANSWER: 2
---
---================================
---
-SELECT NumGeometries(centerlines)
-FROM divided_routes 
-WHERE name = 'Route 75';
---
---================================
--- Conformance Item T31	
--- GeometryN(g GeometryCollection, n Integer) : Geometry
--- For this test we will determine the second geometry in Route 75.
---
--- ANSWER: 'LINESTRING( 16 0, 16 23, 16 48 )'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script does not wrap a geometry-returning function in
--- AsText(), so there is no guarantee that the return string
--- will match the official answer.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT GeometryN(centerlines, 2)
--- FROM divided_routes 
--- WHERE name = 'Route 75';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(GeometryN(centerlines, 2))
-FROM divided_routes 
-WHERE name = 'Route 75';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.17.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T32	
--- IsClosed(mc MultiCurve) : Integer
--- For this test we will determine if the geometry of Route 75 is closed.
---
--- ANSWER: 0
--- *** Adaptation Alert ***
--- If the implementer provides IsClosed as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: FALSE or 'f'
---
---================================
---
-SELECT IsClosed(centerlines)
-FROM divided_routes 
-WHERE name = 'Route 75';
---
---================================
--- Conformance Item T33	
--- Length(mc MultiCurve) : Double Precision
--- For this test we will determine the length of Route 75.
--- NOTE: This makes no semantic sense in our example...
---
--- ANSWER: 96.00 (meters)
---
---================================
---
-SELECT Length(centerlines)
-FROM divided_routes 
-WHERE name = 'Route 75';
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.18.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T34	
--- Centroid(ms MultiSurface) : Point
--- For this test we will determine the centroid of the ponds.
---
--- ANSWER: 'POINT( 25 42 )'
---
---================================
---
-SELECT AsText(Centroid(shores))
-FROM ponds 
-WHERE fid = 120;
---
---================================
--- Conformance Item T35	
--- PointOnSurface(ms MultiSurface) : Point
--- For this test we will determine a point on the ponds.
--- NOTE: For this test we will have to uses the Contains function
---       (which we don't test until later).
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Contains as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT Contains(shores, PointOnSurface(shores))
-FROM ponds 
-WHERE fid = 120;
---
---================================
--- Conformance Item T36	
--- Area(ms MultiSurface) : Double Precision
--- For this test we will determine the area of the ponds.
---
--- ANSWER: 8.00 (square meters)
---
---================================
---
-SELECT Area(shores)
-FROM ponds 
-WHERE fid = 120;
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.19.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T37	
--- Equals(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of Goose Island is equal
--- to the same geometry as consructed from it's WKT representation.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Equals as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT Equals(boundary, PolygonFromText('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )',1))
-FROM named_places 
-WHERE name = 'Goose Island';
---
---================================
--- Conformance Item T38	
--- Disjoint(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of Route 75 is disjoint
--- from the geometry of Ashton.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Disjoint as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
-SELECT Disjoint(centerlines, boundary)
-FROM divided_routes, named_places 
-WHERE divided_routes.name = 'Route 75' AND named_places.name = 'Ashton';
---
---================================
--- Conformance Item T39	
--- Touch(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of Cam Stream touches
--- the geometry of Blue Lake.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Touch as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- The test script attempts to test the 'Touch' function, but the 
--- specification document uses 'Touches' as the function name.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Touch(centerline, shore)
--- FROM streams, lakes 
--- WHERE streams.name = 'Cam Stream' AND lakes.name = 'Blue Lake';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Touches(centerline, shore)
-FROM streams, lakes 
-WHERE streams.name = 'Cam Stream' AND lakes.name = 'Blue Lake';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T40	
--- Within(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of the house at 215 Main Street
--- is within Ashton.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Within as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script reverses the correct order of arguments to 'Within()'. 
--- Specification says 'Within(g1,g2) is 'TRUE if g1 is completely 
--- contained in g2' and test explanation says we are checking if 
--- the house (g1, footprint) is within Ashton (g2, boundary).
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Within(boundary, footprint)
--- FROM named_places, buildings 
--- WHERE named_places.name = 'Ashton' AND buildings.address = '215 Main Street';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Within(footprint, boundary)
-FROM named_places, buildings 
-WHERE named_places.name = 'Ashton' AND buildings.address = '215 Main Street';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T41	
--- Overlap(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of Green Forest overlaps 
--- the geometry of Ashton.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Overlap as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script uses 'Overlap()' as the function name and specification
--- gives 'Overlaps()' as the function name.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Overlap(forest.boundary, named_places.boundary)
--- FROM forests, named_places 
--- WHERE forests.name = 'Green Forest' AND named_places.name = 'Ashton';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Overlaps(forests.boundary, named_places.boundary)
-FROM forests, named_places 
-WHERE forests.name = 'Green Forest' AND named_places.name = 'Ashton';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T42	
--- Cross(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of road segment 102 crosses 
--- the geometry of Route 75.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Cross as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script uses 'Cross()' as the function name and specification
--- gives 'Crosses()' as the function name.
--- Test script references 'road_segment' table and the correct table
--- name is 'road_segments'.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Cross(road_segment.centerline, divided_routes.centerlines)
--- FROM road_segment, divided_routes 
--- WHERE road_segment.fid = 102 AND divided_routes.name = 'Route 75';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Crosses(road_segments.centerline, divided_routes.centerlines)
-FROM road_segments, divided_routes 
-WHERE road_segments.fid = 102 AND divided_routes.name = 'Route 75';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T43	
--- Intersects(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of road segment 102 intersects 
--- the geometry of Route 75.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Intersects as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script references 'road_segment' table and the correct table
--- name is 'road_segments'.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Intersects(road_segment.centerline, divided_routes.centerlines)
--- FROM road_segment, divided_routes 
--- WHERE road_segment.fid = 102 AND divided_routes.name = 'Route 75';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Intersects(road_segments.centerline, divided_routes.centerlines)
-FROM road_segments, divided_routes 
-WHERE road_segments.fid = 102 AND divided_routes.name = 'Route 75';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T44	
--- Contains(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine if the geometry of Green Forest contains 
--- the geometry of Ashton.
---
--- ANSWER: 0
--- *** Adaptation Alert ***
--- If the implementer provides Contains as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: FALSE or 'f'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script references 'forest' table and the correct table
--- name is 'forests'.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Contains(forest.boundary, named_places.boundary)
--- FROM forests, named_places 
--- WHERE forests.name = 'Green Forest' AND named_places.name = 'Ashton';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Contains(forests.boundary, named_places.boundary)
-FROM forests, named_places 
-WHERE forests.name = 'Green Forest' AND named_places.name = 'Ashton';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T45	
--- Relate(g1 Geometry, g2 Geometry, PatternMatrix String) : Integer
--- For this test we will determine if the geometry of Green Forest relates to 
--- the geometry of Ashton using the pattern "TTTTTTTTT".
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Relate as a boolean function, instead of as
--- an INTEGER function, then:
--- ANSWER: TRUE or 't'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script references 'forest' table and the correct table
--- name is 'forests'.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Relate(forest.boundary, named_places.boundary, 'TTTTTTTTT')
--- FROM forests, named_places 
--- WHERE forests.name = 'Green Forest' AND named_places.name = 'Ashton';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT Relate(forests.boundary, named_places.boundary, 'TTTTTTTTT')
-FROM forests, named_places 
-WHERE forests.name = 'Green Forest' AND named_places.name = 'Ashton';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.20.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T46	
--- Distance(g1 Geometry, g2 Geometry) : Double Precision
--- For this test we will determine the distance between Cam Bridge and Ashton.
---
--- ANSWER: 12 (meters)
---
---================================
---
-SELECT Distance(position, boundary)
-FROM bridges, named_places 
-WHERE bridges.name = 'Cam Bridge' AND named_places.name = 'Ashton';
---
---
---
---//////////////////////////////////////////////////////////////////////////////
---
--- QUERIES TESTING FUNCTIONS IN SECTION 3.2.21.2
---
---//////////////////////////////////////////////////////////////////////////////
---
---================================
--- Conformance Item T47	
--- Intersection(g1 Geometry, g2 Geometry) : Geometry
--- For this test we will determine the intersection between Cam Stream and 
--- Blue Lake.
---
--- ANSWER: 'POINT( 52 18 )'
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script does not wrap a geometry-returning function in
--- AsText(), so there is no guarantee that the return string
--- will match the official answer.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Intersection(centerline, shore)
--- FROM streams, lakes 
--- WHERE streams.name = 'Cam Stream' AND lakes.name = 'Blue Lake';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(Intersection(centerline, shore))
-FROM streams, lakes 
-WHERE streams.name = 'Cam Stream' AND lakes.name = 'Blue Lake';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T48	
--- Difference(g1 Geometry, g2 Geometry) : Geometry
--- For this test we will determine the difference between Ashton and 
--- Green Forest.
---
--- ANSWER: 'POLYGON( ( 56 34, 62 48, 84 48, 84 42, 56 34) )'
--- NOTE: The order of the vertices here is arbitrary.
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script does not wrap a geometry-returning function in
--- AsText(), so there is no guarantee that the return string
--- will match the official answer.
--- Note that the return geometry is the same as the official
--- answer but with a different start point.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Difference(named_places.boundary, forests.boundary)
--- FROM named_places, forests 
--- WHERE named_places.name = 'Ashton' AND forests.name = 'Green Forest';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(Difference(named_places.boundary, forests.boundary))
-FROM named_places, forests 
-WHERE named_places.name = 'Ashton' AND forests.name = 'Green Forest';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T49	
--- Union(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine the union of Blue Lake and Goose Island 
---
--- ANSWER: 'POLYGON((52 18,66 23,73 9,48 6,52 18))'
--- NOTE: The outer ring of Blue Lake is the answer.
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script does not wrap a geometry-returning function in
--- AsText(), so there is no guarantee that the return string
--- will match the official answer.
--- Test script uses 'Ashton' as the place name where it means
--- to use 'Goose Island'.
--- Specification uses 'Union()' as a function name, but UNION
--- is a SQL reserved work.  Function name adapted to 'GeomUnion()'
--- for out implementation.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT Union(shore, boundary)
--- FROM lakes, named_places 
--- WHERE lakes.name = 'Blue Lake' AND named_places.name = Ashton';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(GeomUnion(shore, boundary))
-FROM lakes, named_places 
-WHERE lakes.name = 'Blue Lake' AND named_places.name = 'Goose Island';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T50	
--- SymmetricDifference(g1 Geometry, g2 Geometry) : Integer
--- For this test we will determine the symmetric difference of Blue Lake 
--- and Goose Island 
---
--- ANSWER: 'POLYGON((52 18,66 23,73 9,48 6,52 18))'
--- NOTE: The outer ring of Blue Lake is the answer.
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script does not wrap a geometry-returning function in
--- AsText(), so there is no guarantee that the return string
--- will match the official answer.
--- Test script uses 'Ashton' as the place name where it means
--- to use 'Goose Island'.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT SymmetricDifference(shore, boundary)
--- FROM lakes, named_places 
--- WHERE lakes.name = 'Blue Lake' OR named_places.name = 'Ashton';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(SymmetricDifference(shore, boundary))
-FROM lakes, named_places 
-WHERE lakes.name = 'Blue Lake' AND named_places.name = 'Goose Island';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T51	
--- Buffer(g Geometry, d Double Precision) : Geometry
--- For this test we will make a 15 meter buffer about Cam Bridge.
--- NOTE: This test we count the number of buildings contained in
---       the buffer that is generated. This test only works because
---       we have a single bridge record, two building records, and
---       we selected the buffer size such that only one of the buildings
---       is contained in the buffer.
---
--- ANSWER: 1
--- *** Adaptation Alert ***
--- If the implementer provides Contains as a boolean function, instead of as
--- an INTEGER function, then the WHERE clause should be:
--- WHERE Contains(Buffer(bridges.position, 15.0), buildings.footprint) = 'TRUE';
---   - or -
--- WHERE Contains(Buffer(bridges.position, 15.0), buildings.footprint) = 't';
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Our boolean function implementations return actual boolean values,
--- so no further logical comparison (to 1 or 't') is required.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT count(*)
--- FROM buildings, bridges
--- WHERE Contains(Buffer(bridges.position, 15.0), buildings.footprint) = 1;
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT count(*)
-FROM buildings, bridges
-WHERE Contains(Buffer(bridges.position, 15.0), buildings.footprint);
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
---
---================================
--- Conformance Item T52	
--- ConvexHull(g Geometry) : Geometry
--- For this test we will determine the convex hull of Blue Lake 
---
--- ANSWER: 'POLYGON((52 18,66 23,73 9,48 6,52 18))'
--- NOTE: The outer ring of Blue Lake is the answer.
---
---================================
---
--- !#@ ADAPTATION BEGIN
--- Test script does not wrap a geometry-returning function in
--- AsText(), so there is no guarantee that the return string
--- will match the official answer.
--- Note that the return geometry is the same as the official
--- answer but with a different start point.
--- ---------------------
--- -- BEGIN ORIGINAL SQL
--- ---------------------
--- SELECT ConvexHull(shore)
--- FROM lakes
--- WHERE lakes.name = 'Blue Lake';
--- ---------------------
--- -- END   ORIGINAL SQL
--- ---------------------
--- -- BEGIN ADAPTED  SQL
--- ---------------------
-SELECT AsText(ConvexHull(shore))
-FROM lakes
-WHERE lakes.name = 'Blue Lake';
--- ---------------------
--- -- END   ADAPTED  SQL
--- ---------------------
--- -- !#@ ADAPTATION END
-
-
---
---
---
--- end sqltque.sql
diff --git a/extras/ogc_test_suite/3_cleanup.sql b/extras/ogc_test_suite/3_cleanup.sql
deleted file mode 100644
index 54aa420..0000000
--- a/extras/ogc_test_suite/3_cleanup.sql
+++ /dev/null
@@ -1,22 +0,0 @@
--- FILE: sqltcle.sql 10/01/98
---
--- *** ADAPTATION ALERT ***
--- OGC will not examine this script for adaptations.
--- Please add any other cleanup to this script.
--- 
-DELETE FROM spatial_ref_sys;
-DELETE FROM geometry_columns;
-DROP TABLE lakes;
-DROP TABLE road_segments;
-DROP TABLE divided_routes;
-DROP TABLE forests;
-DROP TABLE bridges;
-DROP TABLE streams;
-DROP TABLE buildings;
-DROP TABLE ponds;
-DROP TABLE named_places;
-DROP TABLE map_neatlines;
---DROP TABLE route_segments;
---DROP TABLE routes;
---DROP TABLE map_components;
---DROP TABLE maps;
diff --git a/extras/ogc_test_suite/Makefile b/extras/ogc_test_suite/Makefile
deleted file mode 100644
index 2304496..0000000
--- a/extras/ogc_test_suite/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-TESTDB=ogc_test_suite
-all:
-	createdb $(TESTDB) > /dev/null
-	createlang plpgsql $(TESTDB)
-	psql $(TESTDB) < ../../postgis.sql >/dev/null 2>&1
-	psql -a -f 1_schema.sql $(TESTDB) > 1_output.txt 2>&1
-	psql -a -f 2_queries.sql $(TESTDB) > 2_output.txt 2>&1
-	@echo "---------------------------------------"
-	@echo "---* Check results in 2_output.txt *---"
-	@echo "---------------------------------------"
-	
-clean:
-	dropdb $(TESTDB)
-	rm -f 1_output.txt
-	rm -f 2_output.txt
diff --git a/extras/ogc_test_suite/README b/extras/ogc_test_suite/README
deleted file mode 100644
index 45cdb3f..0000000
--- a/extras/ogc_test_suite/README
+++ /dev/null
@@ -1,20 +0,0 @@
-This test suite was originally downloaded from 
-http://www.opengeospatial.org/resources/?page=testing&view=sfsql
-and legal adaptations necessary for PostGIS were added to allow it
-to run.
-
-- All tests must be run in a database named 'ogc' in order for the 
-  AddGeometryColumn() function calls to work.
-
-  createdb ogc
-  createlang plpgsql ogc
-  psql ogc < ../../postgis.sql
-
-  psql -a -f 1_schema.sql ogc >& 1_output.txt
-  psql -a -f 2_queries.sql ogc >& 2_output.txt
-  psql -a -f 3_cleanup.sql ogc >& 3_output.txt
-
-- Load the test files in order. File 2 has the actual tests, with the
-  correct answers for each test in the comments.
-
-

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/postgis.git



More information about the Pkg-grass-devel mailing list