aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/sql/grid_alternatives.sql2
-rw-r--r--data/sql/proj_db_table_defs.sql2
-rw-r--r--src/filemanager.cpp6
-rw-r--r--test/unit/test_factory.cpp3
4 files changed, 11 insertions, 2 deletions
diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql
index 281a60e6..b92dbaa0 100644
--- a/data/sql/grid_alternatives.sql
+++ b/data/sql/grid_alternatives.sql
@@ -123,6 +123,8 @@ VALUES
-- Netherlands / RDNAP 2018
('nlgeo2018.gtx','nl_nsgi_nlgeo2018.tif','nlgeo2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_nlgeo2018.tif',1,1,NULL),
('rdtrans2018.gsb','nl_nsgi_rdtrans2018.tif','rdtrans2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdtrans2018.tif',1,1,NULL),
+('NOT-YET-IN-GRID-TRANSFORMATION-naptrans2018.gtx','nl_nsgi_naptrans2018.tif','naptrans2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_naptrans2018.tif',1,1,NULL),
+('NOT-YET-IN-GRID-TRANSFORMATION-rdcorr2018.gsb','nl_nsgi_rdcorr2018.tif','rdcorr2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdcorr2018.tif',1,1,NULL),
-- Belgium
('bd72lb72_etrs89lb08.gsb','be_ign_bd72lb72_etrs89lb08.tif','bd72lb72_etrs89lb08.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/be_ign_bd72lb72_etrs89lb08.tif',1,1,NULL),
-- Switzerland
diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql
index cd545666..8de27a48 100644
--- a/data/sql/proj_db_table_defs.sql
+++ b/data/sql/proj_db_table_defs.sql
@@ -1118,7 +1118,7 @@ CREATE TRIGGER grid_alternatives_insert_trigger
BEFORE INSERT ON grid_alternatives
FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'insert on grid_alternatives violates constraint: original_grid_name must be referenced in grid_transformation.grid_name')
- WHERE NEW.original_grid_name NOT IN ('null') AND NEW.original_grid_name NOT IN (SELECT grid_name FROM grid_transformation);
+ WHERE NEW.original_grid_name NOT LIKE 'NOT-YET-IN-GRID-TRANSFORMATION-%' AND NEW.original_grid_name NOT IN (SELECT grid_name FROM grid_transformation);
END;
CREATE TABLE other_transformation(
diff --git a/src/filemanager.cpp b/src/filemanager.cpp
index ac753012..17e09b21 100644
--- a/src/filemanager.cpp
+++ b/src/filemanager.cpp
@@ -1548,6 +1548,7 @@ NS_PROJ::FileManager::open_resource_file(projCtx ctx, const char *name) {
ctx, name, "rb", pj_open_file_with_manager, nullptr, 0)));
// Retry with the new proj grid name if the file name doesn't end with .tif
+ std::string tmpString; // keep it in this upper scope !
if (file == nullptr && !is_tilde_slash(name) &&
!is_rel_or_absolute_filename(name) && !starts_with(name, "http://") &&
!starts_with(name, "https://") && strcmp(name, "proj.db") != 0 &&
@@ -1564,6 +1565,11 @@ NS_PROJ::FileManager::open_resource_file(projCtx ctx, const char *name) {
0)));
if (file) {
pj_ctx_set_errno(ctx, 0);
+ } else {
+ // For final network access attempt, use the new
+ // name.
+ tmpString = filename;
+ name = tmpString.c_str();
}
}
} catch (const std::exception &e) {
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index 10c06e81..4b3ca9a5 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -2251,7 +2251,8 @@ TEST_F(FactoryWithTmpDatabase, lookForGridInfo) {
"inverse_direction, "
"package_name, "
"url, direct_download, open_license, directory) "
- "VALUES ('null', "
+ "VALUES ("
+ "'NOT-YET-IN-GRID-TRANSFORMATION-PROJ_fake_grid', "
"'PROJ_fake_grid', "
"'old_PROJ_fake_grid', "
"'NTv2', "