diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2018-12-06 21:28:16 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2018-12-06 21:49:59 +0100 |
| commit | f06045c2f0145ec2290913fa144cd690e70736fd (patch) | |
| tree | 555131a028f47e9225eb54d836f973c84e40a816 /data/sql/proj_db_table_defs.sql | |
| parent | 4022e2093a6773458c2453e42089c987da6efbf9 (diff) | |
| download | PROJ-f06045c2f0145ec2290913fa144cd690e70736fd.tar.gz PROJ-f06045c2f0145ec2290913fa144cd690e70736fd.zip | |
Add API to retrieve non-deprecated equivalent of an object
Diffstat (limited to 'data/sql/proj_db_table_defs.sql')
| -rw-r--r-- | data/sql/proj_db_table_defs.sql | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index c63637cf..d403f0eb 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -946,6 +946,30 @@ FOR EACH ROW BEGIN END; +CREATE TABLE deprecation( + table_name TEXT NOT NULL CHECK (table_name IN ( + 'unit_of_measure', 'celestial_body', 'ellipsoid', + 'area', 'prime_meridian', 'geodetic_datum', 'vertical_datum', 'geodetic_crs', + 'projected_crs', 'vertical_crs', 'compound_crs', 'conversion', 'grid_transformation', + 'helmert_transformation', 'other_transformation', 'concatenated_operation')), + deprecated_auth_name TEXT NOT NULL, + deprecated_code TEXT NOT NULL, + replacement_auth_name TEXT NOT NULL, + replacement_code TEXT NOT NULL, + source TEXT +); + +CREATE TRIGGER deprecation_insert_trigger +BEFORE INSERT ON deprecation +FOR EACH ROW BEGIN + SELECT RAISE(ABORT, 'insert on deprecation violates constraint: deprecated entry refers to unexisting code') + WHERE NOT EXISTS (SELECT 1 FROM object_view o WHERE o.table_name = NEW.table_name AND o.auth_name = NEW.deprecated_auth_name AND o.code = NEW.deprecated_code); + + SELECT RAISE(ABORT, 'insert on deprecation violates constraint: replacement entry refers to unexisting code') + WHERE NOT EXISTS (SELECT 1 FROM object_view o WHERE o.table_name = NEW.table_name AND o.auth_name = NEW.replacement_auth_name AND o.code = NEW.replacement_code); +END; + + CREATE VIEW coordinate_operation_view AS SELECT 'grid_transformation' AS table_name, auth_name, code, name, |
