aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-01-24 18:28:27 +0100
committerGitHub <noreply@github.com>2020-01-24 18:28:27 +0100
commit1039889c424af9fd89a637e610c4243839d3cb86 (patch)
tree44b3bdfad11c5b2a3f9c67b39fe3674704836b8f /src
parente5fae5239f25bdf14862d80243f79b031c093939 (diff)
parent9db95ecde7ffa275697ce4921437bc8f7d475d25 (diff)
downloadPROJ-1039889c424af9fd89a637e610c4243839d3cb86.tar.gz
PROJ-1039889c424af9fd89a637e610c4243839d3cb86.zip
Merge pull request #1880 from rouault/createObjectsFromName_use_alias_as_fallback
createObjectsFromName(): use alias as fallback only
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/factory.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp
index 2a4ad3e8..7e680d31 100644
--- a/src/iso19111/factory.cpp
+++ b/src/iso19111/factory.cpp
@@ -5214,9 +5214,9 @@ AuthorityFactory::createObjectsFromName(
}
std::string sql(
- "SELECT table_name, auth_name, code, name, deprecated FROM ("
- "SELECT table_name, auth_name, code, name, deprecated FROM object_view "
- "WHERE ");
+ "SELECT table_name, auth_name, code, name, deprecated, is_alias FROM ("
+ "SELECT table_name, auth_name, code, name, deprecated, 0 as is_alias "
+ "FROM object_view WHERE ");
if (deprecated) {
sql += "deprecated = 1 AND ";
}
@@ -5348,7 +5348,7 @@ AuthorityFactory::createObjectsFromName(
sql += " UNION SELECT ov.table_name AS table_name, "
"ov.auth_name AS auth_name, "
"ov.code AS code, a.alt_name AS name, "
- "ov.deprecated AS deprecated FROM object_view ov "
+ "ov.deprecated AS deprecated, 1 as is_alias FROM object_view ov "
"JOIN alias_name a ON ov.table_name = a.table_name AND "
"ov.auth_name = a.auth_name AND ov.code = a.code WHERE ";
if (deprecated) {
@@ -5364,7 +5364,7 @@ AuthorityFactory::createObjectsFromName(
}
sql += getTableNameConstraint("ov.table_name");
- sql += ") ORDER BY deprecated, length(name), name";
+ sql += ") ORDER BY deprecated, is_alias, length(name), name";
if (limitResultCount > 0 &&
limitResultCount <
static_cast<size_t>(std::numeric_limits<int>::max()) &&