aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-08-20 23:29:54 +0200
committerKristian Evers <kristianevers@gmail.com>2020-08-21 08:46:38 +0200
commit403bd8b2674873955eedab1d578586ec2cebdc25 (patch)
tree492ccf8c7f4c5714624db24a2a4018595593af8a
parentb104bc7afbf08a5d2e6097276784424d091b3f59 (diff)
downloadPROJ-403bd8b2674873955eedab1d578586ec2cebdc25.tar.gz
PROJ-403bd8b2674873955eedab1d578586ec2cebdc25.zip
createObjectsFromName(): add back case insensitivity when comparing names
Fixes #2332 Didn't affect released versions
-rw-r--r--src/iso19111/factory.cpp4
-rw-r--r--test/unit/test_factory.cpp6
2 files changed, 8 insertions, 2 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp
index 4894085e..a9d82268 100644
--- a/src/iso19111/factory.cpp
+++ b/src/iso19111/factory.cpp
@@ -5642,7 +5642,7 @@ AuthorityFactory::createObjectsFromNameEx(
sql += "AND deprecated = 1 ";
}
if (!approximateMatch) {
- sql += "AND name = ? ";
+ sql += "AND name = ? COLLATE NOCASE ";
params.push_back(searchedNameWithoutDeprecated);
}
if (d->hasAuthorityRestriction()) {
@@ -5672,7 +5672,7 @@ AuthorityFactory::createObjectsFromNameEx(
sql += "AND ov.deprecated = 1 ";
}
if (!approximateMatch) {
- sql += "AND a.alt_name = ? ";
+ sql += "AND a.alt_name = ? COLLATE NOCASE ";
params.push_back(searchedNameWithoutDeprecated);
}
if (d->hasAuthorityRestriction()) {
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index 780bdc9a..c34723f2 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -2782,6 +2782,12 @@ TEST(factory, createObjectsFromName) {
}
}
+ // Exact name, but just not the official case ==> should match with exact
+ // match
+ EXPECT_EQ(factory->createObjectsFromName("WGS 84 / utm zone 31n", {}, false)
+ .size(),
+ 1U);
+
// Prime meridian
EXPECT_EQ(factoryEPSG->createObjectsFromName("Paris", {}, false, 2).size(),
1U);