aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-02-19 13:17:52 +0100
committerKristian Evers <kristianevers@gmail.com>2020-02-19 14:27:19 +0100
commit71e6438ba2173ee7c05ade1c395bd5949023cadc (patch)
treef003e89a4623de3fd08423327db012a83de504cf
parent9022252da3585b64e76e5d8f797edfcd2b909c67 (diff)
downloadPROJ-71e6438ba2173ee7c05ade1c395bd5949023cadc.tar.gz
PROJ-71e6438ba2173ee7c05ade1c395bd5949023cadc.zip
DatabaseContext::lookForGridInfo(): use also old_proj_grid_name for lookups (fixes #1942)
-rw-r--r--src/iso19111/factory.cpp4
-rw-r--r--test/unit/test_c_api.cpp22
2 files changed, 24 insertions, 2 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp
index 39d48386..e7017ca3 100644
--- a/src/iso19111/factory.cpp
+++ b/src/iso19111/factory.cpp
@@ -977,8 +977,8 @@ bool DatabaseContext::lookForGridInfo(
"FROM grid_alternatives "
"LEFT JOIN grid_packages ON "
"grid_alternatives.package_name = grid_packages.package_name "
- "WHERE proj_grid_name = ?",
- {projFilename});
+ "WHERE proj_grid_name = ? OR old_proj_grid_name = ?",
+ {projFilename, projFilename});
bool ret = !res.empty();
if (ret) {
const auto &row = res.front();
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 4f00295c..12a48a65 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -3127,6 +3127,28 @@ TEST_F(CApi, proj_grid_get_info_from_database) {
EXPECT_EQ(direct_download, 1);
EXPECT_EQ(open_license, 1);
}
+ // Same test as above, but with PROJ 6 grid name
+ {
+ const char *full_name = nullptr;
+ const char *package_name = nullptr;
+ const char *url = nullptr;
+ int direct_download = 0;
+ int open_license = 0;
+ int available = 0;
+ EXPECT_TRUE(proj_grid_get_info_from_database(
+ m_ctxt, "GDA94_GDA2020_conformal.gsb", &full_name, &package_name,
+ &url, &direct_download, &open_license, &available));
+ ASSERT_NE(full_name, nullptr);
+ // empty string expected as the file is not in test data
+ EXPECT_TRUE(full_name[0] == 0);
+ ASSERT_NE(package_name, nullptr);
+ EXPECT_TRUE(package_name[0] == 0); // empty string expected
+ ASSERT_NE(url, nullptr);
+ EXPECT_EQ(std::string(url),
+ "https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal.tif");
+ EXPECT_EQ(direct_download, 1);
+ EXPECT_EQ(open_license, 1);
+ }
}
// ---------------------------------------------------------------------------