diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-04-12 11:39:21 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2021-05-27 15:39:01 +0200 |
commit | 79edc48c0dcd03a33abeb36c4b5b512a61339113 (patch) | |
tree | 9c66760d0c6ce409cf9f41fa52f6b6a979ee8ecb /src | |
parent | 096c6223683e35dddd930fd06ee0dc0f5eefcf22 (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)
Diffstat (limited to 'src')
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index f2785aaacc..b5dc9e890e 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -1003,7 +1003,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); |