diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-02-16 20:13:46 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-02-28 20:14:19 +0100 |
commit | 9b643bc6c9f1b97d8753848bcdc6d22f1272fabe (patch) | |
tree | ff60979a9afd354f3aa376951fba61eb30b1f407 /src/plugins/sqldrivers/odbc | |
parent | 79b22bb1f3ba51f37de03faefc7ddcd712e8e385 (diff) |
SQL: small optimization for SQLDriver::escapeIdentifier()
Avoid a memmove (and replace it with a memcpy) by not using
QString::prepend() but create a completely new string object instead.
Change-Id: Ibdb4a9c6b15b96f1743d47e158ff0fb9b2048221
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Diffstat (limited to 'src/plugins/sqldrivers/odbc')
-rw-r--r-- | src/plugins/sqldrivers/odbc/qsql_odbc.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp index b0b5edbcc8..2d367afa7e 100644 --- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp +++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp @@ -2598,9 +2598,10 @@ QString QODBCDriver::escapeIdentifier(const QString &identifier, IdentifierType) QChar quote = const_cast<QODBCDriverPrivate*>(d)->quoteChar(); QString res = identifier; if (!identifier.isEmpty() && !identifier.startsWith(quote) && !identifier.endsWith(quote) ) { - res.replace(quote, QString(quote)+QString(quote)); - res.prepend(quote).append(quote); - res.replace(u'.', QString(quote) + u'.' +QString(quote)); + const QString quoteStr(quote); + res.replace(quote, quoteStr + quoteStr); + res.replace(u'.', quoteStr + u'.' + quoteStr); + res = quote + res + quote; } return res; } |