diff options
| -rw-r--r-- | data/sql/grid_alternatives.sql | 2 | ||||
| -rw-r--r-- | data/sql/proj_db_table_defs.sql | 2 | ||||
| -rw-r--r-- | src/filemanager.cpp | 6 | ||||
| -rw-r--r-- | test/unit/test_factory.cpp | 3 |
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', " |
