diff options
author | Liang Qi <liang.qi@qt.io> | 2018-01-12 08:00:04 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2018-01-12 08:00:04 +0000 |
commit | c81966c39ebafebc6ceb2b0a8f8a39b9a08d1c14 (patch) | |
tree | 84c542c2aaf6d9670b1e46d2acdac865e98a33b1 /src/sql/kernel | |
parent | e6c089ae288ffe729b0e4eaa968461e3d8b76c5a (diff) | |
parent | f4d8cafc1b034f544ca84b849c23ab99bc1600e7 (diff) |
Merge "Merge remote-tracking branch 'origin/5.10' into dev" into refs/staging/dev
Diffstat (limited to 'src/sql/kernel')
-rw-r--r-- | src/sql/kernel/qsqlrecord.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/sql/kernel/qsqlrecord.cpp b/src/sql/kernel/qsqlrecord.cpp index 1c9ad5ec63..ecbe3eacdb 100644 --- a/src/sql/kernel/qsqlrecord.cpp +++ b/src/sql/kernel/qsqlrecord.cpp @@ -232,18 +232,19 @@ QString QSqlRecord::fieldName(int index) const int QSqlRecord::indexOf(const QString& name) const { - QString tableName; - QString fieldName = name; + QStringRef tableName; + QStringRef fieldName(&name); const int idx = name.indexOf(QLatin1Char('.')); if (idx != -1) { - tableName = name.left(idx); - fieldName = name.mid(idx + 1); + tableName = name.leftRef(idx); + fieldName = name.midRef(idx + 1); } - for (int i = 0; i < count(); ++i) { + const int cnt = count(); + for (int i = 0; i < cnt; ++i) { // Check the passed in name first in case it is an alias using a dot. // Then check if both the table and field match when there is a table name specified. - const auto currentField = d->fields.at(i); - const auto currentFieldName = currentField.name(); + const auto ¤tField = d->fields.at(i); + const auto ¤tFieldName = currentField.name(); if (currentFieldName.compare(name, Qt::CaseInsensitive) == 0 || (idx != -1 && currentFieldName.compare(fieldName, Qt::CaseInsensitive) == 0 && currentField.tableName().compare(tableName, Qt::CaseInsensitive) == 0)) { |