[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