aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-04-21 21:51:43 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-04-22 15:49:31 +0200
commite63f206d994658995505ce322d644fba0b807d5b (patch)
treed66d9a82904ca534d77de1204fe70a27ac1f6d4d /data
parentebf77064c0ffb0082e4ddf97ae9c5c3cbe3c0411 (diff)
downloadPROJ-e63f206d994658995505ce322d644fba0b807d5b.tar.gz
PROJ-e63f206d994658995505ce322d644fba0b807d5b.zip
Database: make conversion & helmert_transformation updatable views
- Transform conversion as a view, and when inserting into it, actually insert into 3 tables: conversion_table, conversion_method and conversion_param, so that method and parameter names are not repeated each time. - Similarly for helmert_tranformation, insert into helmert_transformation_tabl and coordinate_operation_method. This reduces the db size from 6 344 704 bytes to 5 853 184 bytes, without significant slowdown for queries.
Diffstat (limited to 'data')
-rw-r--r--data/sql/commit.sql2
-rw-r--r--data/sql/conversion_triggers.sql4
-rw-r--r--data/sql/ignf.sql8
-rw-r--r--data/sql/proj_db_table_defs.sql432
4 files changed, 414 insertions, 32 deletions
diff --git a/data/sql/commit.sql b/data/sql/commit.sql
index 7aa91e8e..eb49828a 100644
--- a/data/sql/commit.sql
+++ b/data/sql/commit.sql
@@ -4,7 +4,7 @@ CREATE INDEX geodetic_crs_datum_idx ON geodetic_crs(datum_auth_name, datum_code)
CREATE INDEX geodetic_datum_ellipsoid_idx ON geodetic_datum(ellipsoid_auth_name, ellipsoid_code);
CREATE INDEX supersession_idx ON supersession(superseded_table_name, superseded_auth_name, superseded_code);
CREATE INDEX deprecation_idx ON deprecation(table_name, deprecated_auth_name, deprecated_code);
-CREATE INDEX helmert_transformation_idx ON helmert_transformation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
+CREATE INDEX helmert_transformation_idx ON helmert_transformation_table(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
CREATE INDEX grid_transformation_idx ON grid_transformation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
CREATE INDEX other_transformation_idx ON other_transformation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
CREATE INDEX concatenated_operation_idx ON concatenated_operation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
diff --git a/data/sql/conversion_triggers.sql b/data/sql/conversion_triggers.sql
index 86eb1afd..001a8174 100644
--- a/data/sql/conversion_triggers.sql
+++ b/data/sql/conversion_triggers.sql
@@ -1,8 +1,8 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
CREATE TRIGGER conversion_method_check_insert_trigger
-BEFORE INSERT ON conversion
-FOR EACH ROW BEGIN
+INSTEAD OF INSERT ON conversion
+BEGIN
SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (2SP)')
WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9802' AND (NEW.method_name != 'Lambert Conic Conformal (2SP)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8821' OR NEW.param1_name != 'Latitude of false origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8822' OR NEW.param2_name != 'Longitude of false origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8823' OR NEW.param3_name != 'Latitude of 1st standard parallel' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'angle' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8824' OR NEW.param4_name != 'Latitude of 2nd standard parallel' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'angle' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8826' OR NEW.param5_name != 'Easting at false origin' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name != 'EPSG' OR NEW.param6_code != '8827' OR NEW.param6_name != 'Northing at false origin' OR NEW.param6_value IS NULL OR NEW.param6_uom_auth_name IS NULL OR NEW.param6_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param6_uom_auth_name AND code = NEW.param6_uom_code) != 'length' OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL);
diff --git a/data/sql/ignf.sql b/data/sql/ignf.sql
index b92962da..7bb3cffb 100644
--- a/data/sql/ignf.sql
+++ b/data/sql/ignf.sql
@@ -1946,8 +1946,8 @@ INSERT INTO "conversion" VALUES('IGNF','PRC010411','LAMBERT IV CORSE',NULL,NULL,
INSERT INTO "conversion" VALUES('IGNF','PRC013412','LAMBERT IV CARTO',NULL,NULL,'EPSG','1262','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.85,'EPSG','9105','EPSG','8802','Longitude of natural origin',0.0,'EPSG','9105','EPSG','8805','Scale factor at natural origin',0.99994471,'EPSG','9201','EPSG','8806','False easting',234.358,'EPSG','9001','EPSG','8807','False northing',4185861.369,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0307212','UTM SUD FUSEAU 7',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0358195','UTM SUD FUSEAU 58',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "conversion" VALUES('IGNF','PRC0508542','GAUSS LABORDE REUNION',NULL,NULL,'EPSG','1262',NULL,NULL,'Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',-21.1166666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',55.5333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "conversion" VALUES('IGNF','PRC0508546','GAUSS LABORDE REUNION',NULL,NULL,'EPSG','1262',NULL,NULL,'Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',-21.1166666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',55.5333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "conversion" VALUES('IGNF','PRC0508542','GAUSS LABORDE REUNION',NULL,NULL,'EPSG','1262','PROJ','gstm','Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',-21.1166666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',55.5333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "conversion" VALUES('IGNF','PRC0508546','GAUSS LABORDE REUNION',NULL,NULL,'EPSG','1262','PROJ','gstm','Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',-21.1166666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',55.5333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC9811430','EQUIRECTANGULAIRE POLYNESIE',NULL,NULL,'EPSG','1262','EPSG','1028','Equidistant Cylindrical','EPSG','8823','Latitude of 1st standard parallel',-15.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',0.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0306215','UTM SUD FUSEAU 6',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0306218','UTM SUD FUSEAU 6',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -1955,7 +1955,7 @@ INSERT INTO "conversion" VALUES('IGNF','PRC0306311','UTM SUD FUSEAU 6',NULL,NULL
INSERT INTO "conversion" VALUES('IGNF','PRC0306314','UTM SUD FUSEAU 6',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0306317','UTM SUD FUSEAU 6',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0301588','UTM SUD FUSEAU 1',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "conversion" VALUES('IGNF','PRC0508114','GAUSS LABORDE REUNION',NULL,NULL,'EPSG','1262',NULL,NULL,'Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',-21.1166666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',55.5333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "conversion" VALUES('IGNF','PRC0508114','GAUSS LABORDE REUNION',NULL,NULL,'EPSG','1262','PROJ','gstm','Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',-21.1166666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',55.5333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC9806431','EQUIRECTANGULAIRE LA REUNION',NULL,NULL,'EPSG','1262','EPSG','1028','Equidistant Cylindrical','EPSG','8823','Latitude of 1st standard parallel',-21.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',0.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0220527','UTM NORD FUSEAU 20',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC8142383','CC42 (CONIQUE CONFORME ZONE 1)',NULL,NULL,'EPSG','1262','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.0,'EPSG','9102','EPSG','8822','Longitude of false origin',3.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',41.25,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',42.75,'EPSG','9102','EPSG','8826','Easting at false origin',1700000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -2018,7 +2018,7 @@ INSERT INTO "conversion" VALUES('IGNF','PRC0230345','UTM NORD FUSEAU 30',NULL,NU
INSERT INTO "conversion" VALUES('IGNF','PRC0231346','UTM NORD FUSEAU 31',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0232348','UTM NORD FUSEAU 32',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0301545','UTM SUD FUSEAU 1',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "conversion" VALUES('IGNF','PRC7001567','MILLER GEOPORTAIL',NULL,NULL,'EPSG','1262',NULL,NULL,'PROJ mill',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "conversion" VALUES('IGNF','PRC7001567','MILLER GEOPORTAIL',NULL,NULL,'EPSG','1262','PROJ','mill','PROJ mill',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0230353','UTM NORD FUSEAU 30',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0231354','UTM NORD FUSEAU 31',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "conversion" VALUES('IGNF','PRC0232355','UTM NORD FUSEAU 32',NULL,NULL,'EPSG','1886','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql
index b7dcad89..926c7ce9 100644
--- a/data/sql/proj_db_table_defs.sql
+++ b/data/sql/proj_db_table_defs.sql
@@ -261,8 +261,23 @@ FOR EACH ROW BEGIN
WHERE (SELECT dimension FROM coordinate_system WHERE coordinate_system.auth_name = NEW.coordinate_system_auth_name AND coordinate_system.code = NEW.coordinate_system_code) != 1;
END;
+CREATE TABLE conversion_method(
+ auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
+ code TEXT NOT NULL CHECK (length(code) >= 1),
+ name TEXT NOT NULL CHECK (length(name) >= 2),
+
+ CONSTRAINT pk_conversion_method PRIMARY KEY (auth_name, code)
+);
-CREATE TABLE conversion(
+CREATE TABLE conversion_param(
+ auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
+ code TEXT NOT NULL CHECK (length(code) >= 1),
+ name TEXT NOT NULL CHECK (length(name) >= 2),
+
+ CONSTRAINT pk_conversion_param PRIMARY KEY (auth_name, code)
+);
+
+CREATE TABLE conversion_table(
auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
code TEXT NOT NULL CHECK (length(code) >= 1),
name TEXT NOT NULL CHECK (length(name) >= 2),
@@ -275,53 +290,53 @@ CREATE TABLE conversion(
method_auth_name TEXT CHECK (method_auth_name IS NULL OR length(method_auth_name) >= 1),
method_code TEXT CHECK (method_code IS NULL OR length(method_code) >= 1),
- method_name NOT NULL CHECK (length(method_name) >= 2),
+ -- method_name TEXT,
param1_auth_name TEXT,
param1_code TEXT,
- param1_name TEXT,
+ -- param1_name TEXT,
param1_value FLOAT,
param1_uom_auth_name TEXT,
param1_uom_code TEXT,
param2_auth_name TEXT,
param2_code TEXT,
- param2_name TEXT,
+ --param2_name TEXT,
param2_value FLOAT,
param2_uom_auth_name TEXT,
param2_uom_code TEXT,
param3_auth_name TEXT,
param3_code TEXT,
- param3_name TEXT,
+ --param3_name TEXT,
param3_value FLOAT,
param3_uom_auth_name TEXT,
param3_uom_code TEXT,
param4_auth_name TEXT,
param4_code TEXT,
- param4_name TEXT,
+ --param4_name TEXT,
param4_value FLOAT,
param4_uom_auth_name TEXT,
param4_uom_code TEXT,
param5_auth_name TEXT,
param5_code TEXT,
- param5_name TEXT,
+ --param5_name TEXT,
param5_value FLOAT,
param5_uom_auth_name TEXT,
param5_uom_code TEXT,
param6_auth_name TEXT,
param6_code TEXT,
- param6_name TEXT,
+ --param6_name TEXT,
param6_value FLOAT,
param6_uom_auth_name TEXT,
param6_uom_code TEXT,
param7_auth_name TEXT,
param7_code TEXT,
- param7_name TEXT,
+ --param7_name TEXT,
param7_value FLOAT,
param7_uom_auth_name TEXT,
param7_uom_code TEXT,
@@ -330,6 +345,7 @@ CREATE TABLE conversion(
CONSTRAINT pk_conversion PRIMARY KEY (auth_name, code),
CONSTRAINT fk_conversion_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code),
+ CONSTRAINT fk_conversion_method FOREIGN KEY (method_auth_name, method_code) REFERENCES conversion_method(auth_name, code),
--CONSTRAINT fk_conversion_coordinate_operation FOREIGN KEY (auth_name, code) REFERENCES coordinate_operation(auth_name, code),
CONSTRAINT fk_conversion_param1_uom FOREIGN KEY (param1_uom_auth_name, param1_uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT fk_conversion_param2_uom FOREIGN KEY (param2_uom_auth_name, param2_uom_code) REFERENCES unit_of_measure(auth_name, code),
@@ -340,15 +356,89 @@ CREATE TABLE conversion(
CONSTRAINT fk_conversion_param7_uom FOREIGN KEY (param7_uom_auth_name, param7_uom_code) REFERENCES unit_of_measure(auth_name, code)
);
-CREATE TRIGGER conversion_insert_trigger
-BEFORE INSERT ON conversion
-FOR EACH ROW BEGIN
+CREATE VIEW conversion AS SELECT
+ c.auth_name,
+ c.code,
+ c.name,
+
+ c.description,
+ c.scope,
+
+ c.area_of_use_auth_name,
+ c.area_of_use_code,
+
+ c.method_auth_name,
+ c.method_code,
+ m.name AS method_name,
+
+ c.param1_auth_name,
+ c.param1_code,
+ param1.name AS param1_name,
+ c.param1_value,
+ c.param1_uom_auth_name,
+ c.param1_uom_code,
+
+ c.param2_auth_name,
+ c.param2_code,
+ param2.name AS param2_name,
+ c.param2_value,
+ c.param2_uom_auth_name,
+ c.param2_uom_code,
+
+ c.param3_auth_name,
+ c.param3_code,
+ param3.name AS param3_name,
+ c.param3_value,
+ c.param3_uom_auth_name,
+ c.param3_uom_code,
+
+ c.param4_auth_name,
+ c.param4_code,
+ param4.name AS param4_name,
+ c.param4_value,
+ c.param4_uom_auth_name,
+ c.param4_uom_code,
+
+ c.param5_auth_name,
+ c.param5_code,
+ param5.name AS param5_name,
+ c.param5_value,
+ c.param5_uom_auth_name,
+ c.param5_uom_code,
+
+ c.param6_auth_name,
+ c.param6_code,
+ param6.name AS param6_name,
+ c.param6_value,
+ c.param6_uom_auth_name,
+ c.param6_uom_code,
+
+ c.param7_auth_name,
+ c.param7_code,
+ param7.name AS param7_name,
+ c.param7_value,
+ c.param7_uom_auth_name,
+ c.param7_uom_code,
+
+ c.deprecated
+
+ FROM conversion_table c
+ LEFT JOIN conversion_method m ON c.method_auth_name = m.auth_name AND c.method_code = m.code
+ LEFT JOIN conversion_param param1 ON c.param1_auth_name = param1.auth_name AND c.param1_code = param1.code
+ LEFT JOIN conversion_param param2 ON c.param2_auth_name = param2.auth_name AND c.param2_code = param2.code
+ LEFT JOIN conversion_param param3 ON c.param3_auth_name = param3.auth_name AND c.param3_code = param3.code
+ LEFT JOIN conversion_param param4 ON c.param4_auth_name = param4.auth_name AND c.param4_code = param4.code
+ LEFT JOIN conversion_param param5 ON c.param5_auth_name = param5.auth_name AND c.param5_code = param5.code
+ LEFT JOIN conversion_param param6 ON c.param6_auth_name = param6.auth_name AND c.param6_code = param6.code
+ LEFT JOIN conversion_param param7 ON c.param7_auth_name = param7.auth_name AND c.param7_code = param7.code
+;
- SELECT RAISE(ABORT, 'insert on conversion violates constraint: (auth_name, code) must not already exist in coordinate_operation_with_conversion_view')
- WHERE EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.auth_name AND covwv.code = NEW.code);
+CREATE TRIGGER conversion_method_insert_trigger
+BEFORE INSERT ON conversion_method
+BEGIN
SELECT RAISE(ABORT, 'insert on conversion violates constraint: method should be known')
- WHERE ((CASE WHEN NEW.method_auth_name is NULL THEN '' ELSE NEW.method_auth_name END) || '_' || (CASE WHEN NEW.method_code is NULL THEN '' ELSE NEW.method_code END) || '_' || NEW.method_name) NOT IN (
+ WHERE (NEW.auth_name || '_' || NEW.code || '_' || NEW.name) NOT IN (
'EPSG_1024_Popular Visualisation Pseudo Mercator',
'EPSG_1027_Lambert Azimuthal Equal Area (Spherical)',
'EPSG_1028_Equidistant Cylindrical',
@@ -403,8 +493,151 @@ FOR EACH ROW BEGIN
'EPSG_9843_Axis Order Reversal (2D)',
'EPSG_9844_Axis Order Reversal (Geographic3D horizontal)',
'EPSG_9827_Bonne',
- '__Gauss Schreiber Transverse Mercator',
- '__PROJ mill');
+ 'PROJ_gstm_Gauss Schreiber Transverse Mercator',
+ 'PROJ_mill_PROJ mill');
+END;
+
+CREATE TRIGGER conversion_table_insert_trigger
+BEFORE INSERT ON conversion_table
+BEGIN
+ SELECT RAISE(ABORT, 'insert on conversion_table violates constraint: (auth_name, code) must not already exist in coordinate_operation_with_conversion_view')
+ WHERE EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.auth_name AND covwv.code = NEW.code);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_method
+INSTEAD OF INSERT ON conversion
+ WHEN NOT EXISTS (SELECT 1 FROM conversion_method m WHERE
+ m.auth_name = NEW.method_auth_name AND m.code = NEW.method_code AND m.name = NEW.method_name)
+BEGIN
+ INSERT INTO conversion_method VALUES (NEW.method_auth_name, NEW.method_code, NEW.method_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param1
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param1_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param1_auth_name AND p.code = NEW.param1_code AND p.name = NEW.param1_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param1_auth_name, NEW.param1_code, NEW.param1_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param2
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param2_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param2_auth_name AND p.code = NEW.param2_code AND p.name = NEW.param2_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param2_auth_name, NEW.param2_code, NEW.param2_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param3
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param3_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param3_auth_name AND p.code = NEW.param3_code AND p.name = NEW.param3_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param3_auth_name, NEW.param3_code, NEW.param3_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param4
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param4_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param4_auth_name AND p.code = NEW.param4_code AND p.name = NEW.param4_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param4_auth_name, NEW.param4_code, NEW.param4_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param5
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param5_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param5_auth_name AND p.code = NEW.param5_code AND p.name = NEW.param5_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param5_auth_name, NEW.param5_code, NEW.param5_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param6
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param6_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param6_auth_name AND p.code = NEW.param6_code AND p.name = NEW.param6_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param6_auth_name, NEW.param6_code, NEW.param6_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_param7
+INSTEAD OF INSERT ON conversion
+ WHEN NEW.param7_auth_name is NOT NULL AND NOT EXISTS
+ (SELECT 1 FROM conversion_param p WHERE p.auth_name = NEW.param7_auth_name AND p.code = NEW.param7_code AND p.name = NEW.param7_name)
+BEGIN
+ INSERT INTO conversion_param VALUES (NEW.param7_auth_name, NEW.param7_code, NEW.param7_name);
+END;
+
+CREATE TRIGGER conversion_insert_trigger_insert_into_conversion_table
+INSTEAD OF INSERT ON conversion
+BEGIN
+INSERT INTO conversion_table VALUES
+(
+ NEW.auth_name,
+ NEW.code,
+ NEW.name,
+
+ NEW.description,
+ NEW.scope,
+
+ NEW.area_of_use_auth_name,
+ NEW.area_of_use_code,
+
+ NEW.method_auth_name,
+ NEW.method_code,
+ --NEW.method_name,
+
+ NEW.param1_auth_name,
+ NEW.param1_code,
+ --NEW.param1_name,
+ NEW.param1_value,
+ NEW.param1_uom_auth_name,
+ NEW.param1_uom_code,
+
+ NEW.param2_auth_name,
+ NEW.param2_code,
+ --NEW.param2_name,
+ NEW.param2_value,
+ NEW.param2_uom_auth_name,
+ NEW.param2_uom_code,
+
+ NEW.param3_auth_name,
+ NEW.param3_code,
+ --NEW.param3_name,
+ NEW.param3_value,
+ NEW.param3_uom_auth_name,
+ NEW.param3_uom_code,
+
+ NEW.param4_auth_name,
+ NEW.param4_code,
+ --NEW.param4_name,
+ NEW.param4_value,
+ NEW.param4_uom_auth_name,
+ NEW.param4_uom_code,
+
+ NEW.param5_auth_name,
+ NEW.param5_code,
+ --NEW.param5_name,
+ NEW.param5_value,
+ NEW.param5_uom_auth_name,
+ NEW.param5_uom_code,
+
+ NEW.param6_auth_name,
+ NEW.param6_code,
+ --NEW.param6_name,
+ NEW.param6_value,
+ NEW.param6_uom_auth_name,
+ NEW.param6_uom_code,
+
+ NEW.param7_auth_name,
+ NEW.param7_code,
+ --NEW.param7_name,
+ NEW.param7_value,
+ NEW.param7_uom_auth_name,
+ NEW.param7_uom_code,
+
+ NEW.deprecated
+);
END;
CREATE TABLE projected_crs(
@@ -426,7 +659,7 @@ CREATE TABLE projected_crs(
CONSTRAINT pk_projected_crs PRIMARY KEY (auth_name, code),
CONSTRAINT fk_projected_crs_coordinate_system FOREIGN KEY (coordinate_system_auth_name, coordinate_system_code) REFERENCES coordinate_system(auth_name, code),
CONSTRAINT fk_projected_crs_geodetic_crs FOREIGN KEY (geodetic_crs_auth_name, geodetic_crs_code) REFERENCES geodetic_crs(auth_name, code),
- CONSTRAINT fk_projected_crs_conversion FOREIGN KEY (conversion_auth_name, conversion_code) REFERENCES conversion(auth_name, code),
+ CONSTRAINT fk_projected_crs_conversion FOREIGN KEY (conversion_auth_name, conversion_code) REFERENCES conversion_table(auth_name, code),
CONSTRAINT fk_projected_crs_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code)
);
@@ -443,8 +676,8 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: geodetic_crs must be defined when text_definition is NULL')
WHERE (NEW.geodetic_crs_auth_name IS NULL OR NEW.geodetic_crs_code IS NULL) AND NEW.text_definition IS NULL;
- SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: conversion must be defined when text_definition is NULL')
- WHERE (NEW.conversion_auth_name IS NULL OR NEW.conversion_code IS NULL) AND NEW.text_definition IS NULL;
+ SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: conversion must exist when text_definition is NULL')
+ WHERE NOT EXISTS(SELECT 1 FROM conversion WHERE conversion.auth_name = NEW.conversion_auth_name AND conversion.code = NEW.conversion_code) AND NEW.text_definition IS NULL;
SELECT RAISE(ABORT, 'insert on projected_crs violates constraint: coordinate_system must NOT be defined when text_definition is NOT NULL')
WHERE (NOT(NEW.coordinate_system_auth_name IS NULL OR NEW.coordinate_system_code IS NULL)) AND NEW.text_definition IS NOT NULL;
@@ -501,7 +734,15 @@ FOR EACH ROW BEGIN
WHERE (SELECT type FROM crs_view WHERE crs_view.auth_name = NEW.vertical_crs_auth_name AND crs_view.code = NEW.vertical_crs_code) NOT IN ('vertical');
END;
-CREATE TABLE helmert_transformation(
+CREATE TABLE coordinate_operation_method(
+ auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
+ code TEXT NOT NULL CHECK (length(code) >= 1),
+ name TEXT NOT NULL CHECK (length(name) >= 2),
+
+ CONSTRAINT pk_coordinate_operation_method PRIMARY KEY (auth_name, code)
+);
+
+CREATE TABLE helmert_transformation_table(
auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1),
code TEXT NOT NULL CHECK (length(code) >= 1),
name TEXT NOT NULL CHECK (length(name) >= 2),
@@ -511,7 +752,7 @@ CREATE TABLE helmert_transformation(
method_auth_name TEXT NOT NULL CHECK (length(method_auth_name) >= 1),
method_code TEXT NOT NULL CHECK (length(method_code) >= 1),
- method_name NOT NULL CHECK (length(method_name) >= 2),
+ --method_name NOT NULL CHECK (length(method_name) >= 2),
source_crs_auth_name TEXT NOT NULL,
source_crs_code TEXT NOT NULL,
@@ -566,6 +807,7 @@ CREATE TABLE helmert_transformation(
CONSTRAINT fk_helmert_transformation_source_crs FOREIGN KEY (source_crs_auth_name, source_crs_code) REFERENCES geodetic_crs(auth_name, code),
CONSTRAINT fk_helmert_transformation_target_crs FOREIGN KEY (target_crs_auth_name, target_crs_code) REFERENCES geodetic_crs(auth_name, code),
CONSTRAINT fk_helmert_transformation_area FOREIGN KEY (area_of_use_auth_name, area_of_use_code) REFERENCES area(auth_name, code),
+ CONSTRAINT fk_helmert_transformation_method FOREIGN KEY (method_auth_name, method_code) REFERENCES coordinate_operation_method(auth_name, code),
--CONSTRAINT fk_helmert_transformation_coordinate_operation FOREIGN KEY (auth_name, code) REFERENCES coordinate_operation(auth_name, code),
CONSTRAINT fk_helmert_translation_uom FOREIGN KEY (translation_uom_auth_name, translation_uom_code) REFERENCES unit_of_measure(auth_name, code),
CONSTRAINT fk_helmert_rotation_uom FOREIGN KEY (rotation_uom_auth_name, rotation_uom_code) REFERENCES unit_of_measure(auth_name, code),
@@ -577,8 +819,148 @@ CREATE TABLE helmert_transformation(
CONSTRAINT fk_helmert_pivot_uom FOREIGN KEY (pivot_uom_auth_name, pivot_uom_code) REFERENCES unit_of_measure(auth_name, code)
);
+CREATE VIEW helmert_transformation AS SELECT
+ h.auth_name,
+ h.code,
+ h.name,
+
+ h.description,
+ h.scope,
+
+ h.method_auth_name,
+ h.method_code,
+ m.name AS method_name,
+
+ h.source_crs_auth_name,
+ h.source_crs_code,
+ h.target_crs_auth_name,
+ h.target_crs_code,
+
+ h.area_of_use_auth_name,
+ h.area_of_use_code,
+
+ h.accuracy,
+
+ h.tx,
+ h.ty,
+ h.tz,
+ h.translation_uom_auth_name,
+ h.translation_uom_code,
+ h.rx,
+ h.ry,
+ h.rz,
+ h.rotation_uom_auth_name,
+ h.rotation_uom_code,
+ h.scale_difference,
+ h.scale_difference_uom_auth_name,
+ h.scale_difference_uom_code,
+ h.rate_tx,
+ h.rate_ty,
+ h.rate_tz,
+ h.rate_translation_uom_auth_name,
+ h.rate_translation_uom_code,
+ h.rate_rx,
+ h.rate_ry,
+ h.rate_rz,
+ h.rate_rotation_uom_auth_name,
+ h.rate_rotation_uom_code,
+ h.rate_scale_difference,
+ h.rate_scale_difference_uom_auth_name,
+ h.rate_scale_difference_uom_code,
+ h.epoch,
+ h.epoch_uom_auth_name,
+ h.epoch_uom_code,
+ h.px,
+ h.py,
+ h.pz,
+ h.pivot_uom_auth_name,
+ h.pivot_uom_code,
+
+ h.operation_version,
+
+ h.deprecated
+
+ FROM helmert_transformation_table h
+ LEFT JOIN coordinate_operation_method m ON h.method_auth_name = m.auth_name AND h.method_code = m.code
+;
+
+CREATE TRIGGER helmert_transformation_insert_trigger_method
+INSTEAD OF INSERT ON helmert_transformation
+ WHEN NOT EXISTS (SELECT 1 FROM coordinate_operation_method m WHERE
+ m.auth_name = NEW.method_auth_name AND m.code = NEW.method_code AND m.name = NEW.method_name)
+BEGIN
+ INSERT INTO coordinate_operation_method VALUES (NEW.method_auth_name, NEW.method_code, NEW.method_name);
+END;
+
+CREATE TRIGGER helmert_transformation_insert_trigger_into_helmert_transformation_table
+INSTEAD OF INSERT ON helmert_transformation
+BEGIN
+INSERT INTO helmert_transformation_table VALUES
+(
+ NEW.auth_name,
+ NEW.code,
+ NEW.name,
+
+ NEW.description,
+ NEW.scope,
+
+ NEW.method_auth_name,
+ NEW.method_code,
+ -- method_name
+
+ NEW.source_crs_auth_name,
+ NEW.source_crs_code,
+ NEW.target_crs_auth_name,
+ NEW.target_crs_code,
+
+ NEW.area_of_use_auth_name,
+ NEW.area_of_use_code,
+
+ NEW.accuracy,
+
+ NEW.tx,
+ NEW.ty,
+ NEW.tz,
+ NEW.translation_uom_auth_name,
+ NEW.translation_uom_code,
+ NEW.rx,
+ NEW.ry,
+ NEW.rz,
+ NEW.rotation_uom_auth_name,
+ NEW.rotation_uom_code,
+ NEW.scale_difference,
+ NEW.scale_difference_uom_auth_name,
+ NEW.scale_difference_uom_code,
+ NEW.rate_tx,
+ NEW.rate_ty,
+ NEW.rate_tz,
+ NEW.rate_translation_uom_auth_name,
+ NEW.rate_translation_uom_code,
+ NEW.rate_rx,
+ NEW.rate_ry,
+ NEW.rate_rz,
+ NEW.rate_rotation_uom_auth_name,
+ NEW.rate_rotation_uom_code,
+ NEW.rate_scale_difference,
+ NEW.rate_scale_difference_uom_auth_name,
+ NEW.rate_scale_difference_uom_code,
+ NEW.epoch,
+ NEW.epoch_uom_auth_name,
+ NEW.epoch_uom_code,
+ NEW.px,
+ NEW.py,
+ NEW.pz,
+ NEW.pivot_uom_auth_name,
+ NEW.pivot_uom_code,
+
+ NEW.operation_version,
+
+ NEW.deprecated
+);
+END;
+
CREATE TRIGGER helmert_transformation_insert_trigger
-BEFORE INSERT ON helmert_transformation
+BEFORE INSERT ON helmert_transformation_table
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on helmert_transformation violates constraint: (auth_name, code) must not already exist in coordinate_operation_with_conversion_view')
WHERE EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.auth_name AND covwv.code = NEW.code);
@@ -1011,7 +1393,7 @@ CREATE VIEW coordinate_operation_view AS
CREATE VIEW coordinate_operation_with_conversion_view AS
SELECT auth_name, code, table_name AS type FROM coordinate_operation_view UNION ALL
- SELECT auth_name, code, 'conversion' FROM conversion;
+ SELECT auth_name, code, 'conversion' FROM conversion_table;
CREATE VIEW crs_view AS
SELECT 'geodetic_crs' AS table_name, auth_name, code, name, type,
@@ -1054,7 +1436,7 @@ CREATE VIEW object_view AS
UNION ALL
SELECT table_name, auth_name, code, name, type, area_of_use_auth_name, area_of_use_code, deprecated FROM crs_view
UNION ALL
- SELECT 'conversion', auth_name, code, name, NULL, area_of_use_auth_name, area_of_use_code, deprecated FROM conversion
+ SELECT 'conversion', auth_name, code, name, NULL, area_of_use_auth_name, area_of_use_code, deprecated FROM conversion_table
UNION ALL
SELECT table_name, auth_name, code, name, NULL, area_of_use_auth_name, area_of_use_code, deprecated FROM coordinate_operation_view
;