summaryrefslogtreecommitdiffstats
path: root/src/sql
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-04-12 11:39:21 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-05-03 14:33:01 +0000
commita76017b56513ee125cd60cb981c974faffc3df7f (patch)
tree338f6d3111c925477ebf1302f9e94fb113b3391d /src/sql
parent64e1ae71b35cfc3202f8dc876ca39f16207bf889 (diff)
QSqlTableModel::orderByClause(): Quote the table name
This ensures correct handling of names with special characters. Fixes: QTBUG-92584 Change-Id: I95c7c54d9c7ee00b221a55f3d07ef1ec3a3bd217 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 21b3b54193b9d90ee377fdfa306e21d2fdfe2837) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/models/qsqltablemodel.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index cb5026eb79..36299ca461 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -1001,7 +1001,8 @@ QString QSqlTableModel::orderByClause() const
//we can safely escape the field because it would have been obtained from the database
//and have the correct case
- QString field = d->tableName + QLatin1Char('.')
+ QString field = d->db.driver()->escapeIdentifier(d->tableName, QSqlDriver::TableName)
+ + QLatin1Char('.')
+ d->db.driver()->escapeIdentifier(f.name(), QSqlDriver::FieldName);
field = d->sortOrder == Qt::AscendingOrder ? Sql::asc(field) : Sql::desc(field);
return Sql::orderBy(field);