diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-04-14 13:21:36 +0200 |
---|---|---|
committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-04-19 19:40:04 +0200 |
commit | 128785d0fa0dc05dbe5ef2d5c8c3ba09b7c48546 (patch) | |
tree | 324c5356f4412528ea8a03a786fe1aaa183ad88c /src/plugins/sqldrivers/oci | |
parent | 917b4d3802f3c2102021610cbf977403a3d4c21a (diff) |
Sql: use _L1 for for creating Latin-1 string literals
Task-number: QTBUG-98434
Change-Id: Ie12ca82fd912617eabe4f602c08914f12878cb32
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/plugins/sqldrivers/oci')
-rw-r--r-- | src/plugins/sqldrivers/oci/main.cpp | 4 | ||||
-rw-r--r-- | src/plugins/sqldrivers/oci/qsql_oci.cpp | 113 |
2 files changed, 59 insertions, 58 deletions
diff --git a/src/plugins/sqldrivers/oci/main.cpp b/src/plugins/sqldrivers/oci/main.cpp index db273bfb04..9b80bd940d 100644 --- a/src/plugins/sqldrivers/oci/main.cpp +++ b/src/plugins/sqldrivers/oci/main.cpp @@ -43,6 +43,8 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + class QOCIDriverPlugin : public QSqlDriverPlugin { Q_OBJECT @@ -61,7 +63,7 @@ QOCIDriverPlugin::QOCIDriverPlugin() QSqlDriver* QOCIDriverPlugin::create(const QString &name) { - if (name == QLatin1String("QOCI")) { + if (name == "QOCI"_L1) { QOCIDriver* driver = new QOCIDriver(); return driver; } diff --git a/src/plugins/sqldrivers/oci/qsql_oci.cpp b/src/plugins/sqldrivers/oci/qsql_oci.cpp index 01fdc4adc5..8638a070cc 100644 --- a/src/plugins/sqldrivers/oci/qsql_oci.cpp +++ b/src/plugins/sqldrivers/oci/qsql_oci.cpp @@ -92,6 +92,8 @@ Q_DECLARE_METATYPE(OCIStmt*) QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN enum { QOCIEncoding = 2002 }; // AL16UTF16LE #else @@ -654,15 +656,15 @@ QSqlError qMakeError(const QString& errString, QSqlError::ErrorType type, OCIErr QMetaType qDecodeOCIType(const QString& ocitype, QSql::NumericalPrecisionPolicy precisionPolicy) { int type = QMetaType::UnknownType; - if (ocitype == QLatin1String("VARCHAR2") || ocitype == QLatin1String("VARCHAR") - || ocitype.startsWith(QLatin1String("INTERVAL")) - || ocitype == QLatin1String("CHAR") || ocitype == QLatin1String("NVARCHAR2") - || ocitype == QLatin1String("NCHAR")) + if (ocitype == "VARCHAR2"_L1 || ocitype == "VARCHAR"_L1 + || ocitype.startsWith("INTERVAL"_L1) + || ocitype == "CHAR"_L1 || ocitype == "NVARCHAR2"_L1 + || ocitype == "NCHAR"_L1) type = QMetaType::QString; - else if (ocitype == QLatin1String("NUMBER") - || ocitype == QLatin1String("FLOAT") - || ocitype == QLatin1String("BINARY_FLOAT") - || ocitype == QLatin1String("BINARY_DOUBLE")) { + else if (ocitype == "NUMBER"_L1 + || ocitype == "FLOAT"_L1 + || ocitype == "BINARY_FLOAT"_L1 + || ocitype == "BINARY_DOUBLE"_L1) { switch(precisionPolicy) { case QSql::LowPrecisionInt32: type = QMetaType::Int; @@ -679,16 +681,15 @@ QMetaType qDecodeOCIType(const QString& ocitype, QSql::NumericalPrecisionPolicy break; } } - else if (ocitype == QLatin1String("LONG") || ocitype == QLatin1String("NCLOB") - || ocitype == QLatin1String("CLOB")) + else if (ocitype == "LONG"_L1 || ocitype == "NCLOB"_L1 || ocitype == "CLOB"_L1) type = QMetaType::QByteArray; - else if (ocitype == QLatin1String("RAW") || ocitype == QLatin1String("LONG RAW") - || ocitype == QLatin1String("ROWID") || ocitype == QLatin1String("BLOB") - || ocitype == QLatin1String("CFILE") || ocitype == QLatin1String("BFILE")) + else if (ocitype == "RAW"_L1 || ocitype == "LONG RAW"_L1 + || ocitype == "ROWID"_L1 || ocitype == "BLOB"_L1 + || ocitype == "CFILE"_L1 || ocitype == "BFILE"_L1) type = QMetaType::QByteArray; - else if (ocitype == QLatin1String("DATE") || ocitype.startsWith(QLatin1String("TIME"))) + else if (ocitype == "DATE"_L1 || ocitype.startsWith("TIME"_L1)) type = QMetaType::QDateTime; - else if (ocitype == QLatin1String("UNDEFINED")) + else if (ocitype == "UNDEFINED"_L1) type = QMetaType::UnknownType; if (type == QMetaType::UnknownType) qWarning("qDecodeOCIType: unknown type: %s", ocitype.toLocal8Bit().constData()); @@ -2237,11 +2238,11 @@ static void qParseOpts(const QString &options, QOCIDriverPrivate *d) const QString opt = tmp.left(idx); const QString val = tmp.mid(idx + 1).simplified(); bool ok; - if (opt == QLatin1String("OCI_ATTR_PREFETCH_ROWS")) { + if (opt == "OCI_ATTR_PREFETCH_ROWS"_L1) { d->prefetchRows = val.toInt(&ok); if (!ok) d->prefetchRows = -1; - } else if (opt == QLatin1String("OCI_ATTR_PREFETCH_MEMORY")) { + } else if (opt == "OCI_ATTR_PREFETCH_MEMORY"_L1) { d->prefetchMem = val.toInt(&ok); if (!ok) d->prefetchMem = -1; @@ -2349,7 +2350,7 @@ bool QOCIDriver::open(const QString & db, QString versionStr; versionStr = QString(reinterpret_cast<const QChar *>(vertxt)); #if QT_CONFIG(regularexpression) - auto match = QRegularExpression(QLatin1String("([0-9]+)\\.[0-9\\.]+[0-9]")).match(versionStr); + auto match = QRegularExpression("([0-9]+)\\.[0-9\\.]+[0-9]"_L1).match(versionStr); if (match.hasMatch()) d->serverVersion = match.captured(1).toInt(); #endif @@ -2478,7 +2479,7 @@ static QString make_where_clause(const QString &user, Expression e) for (const auto &sysUser : sysUsers) { const QLatin1String l1(sysUser); if (l1 != user) - result += QLatin1String("owner ") + bang[e] + QLatin1String("= '") + l1 + QLatin1String("' ") + join + u' '; + result += "owner "_L1 + bang[e] + "= '"_L1 + l1 + "' "_L1 + join + u' '; } result.chop(join.size() + 2); // remove final " <join> " @@ -2503,7 +2504,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const QSqlQuery t(createResult()); t.setForwardOnly(true); if (type & QSql::Tables) { - const QLatin1String tableQuery("select owner, table_name from all_tables where "); + const auto tableQuery = "select owner, table_name from all_tables where "_L1; const QString where = make_where_clause(user, AndExpression); t.exec(tableQuery + where); while (t.next()) { @@ -2514,7 +2515,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const } // list all table synonyms as well - const QLatin1String synonymQuery("select owner, synonym_name from all_synonyms where "); + const auto synonymQuery = "select owner, synonym_name from all_synonyms where "_L1; t.exec(synonymQuery + where); while (t.next()) { if (t.value(0).toString() != d->user) @@ -2524,7 +2525,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const } } if (type & QSql::Views) { - const QLatin1String query("select owner, view_name from all_views where "); + const auto query = "select owner, view_name from all_views where "_L1; const QString where = make_where_clause(user, AndExpression); t.exec(query + where); while (t.next()) { @@ -2535,11 +2536,11 @@ QStringList QOCIDriver::tables(QSql::TableType type) const } } if (type & QSql::SystemTables) { - t.exec(QLatin1String("select table_name from dictionary")); + t.exec("select table_name from dictionary"_L1); while (t.next()) { tl.append(t.value(0).toString()); } - const QLatin1String tableQuery("select owner, table_name from all_tables where "); + const auto tableQuery = "select owner, table_name from all_tables where "_L1; const QString where = make_where_clause(user, OrExpression); t.exec(tableQuery + where); while (t.next()) { @@ -2550,7 +2551,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const } // list all table synonyms as well - const QLatin1String synonymQuery("select owner, synonym_name from all_synonyms where "); + const auto synonymQuery = "select owner, synonym_name from all_synonyms where "_L1; t.exec(synonymQuery + where); while (t.next()) { if (t.value(0).toString() != d->user) @@ -2584,14 +2585,14 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const QSqlQuery t(createResult()); // using two separate queries for this is A LOT faster than using // eg. a sub-query on the sys.synonyms table - QString stmt(QLatin1String("select column_name, data_type, data_length, " + QString stmt("select column_name, data_type, data_length, " "data_precision, data_scale, nullable, data_default%1" "from all_tab_columns a " - "where a.table_name=%2")); + "where a.table_name=%2"_L1); if (d->serverVersion >= 9) - stmt = stmt.arg(QLatin1String(", char_length ")); + stmt = stmt.arg(", char_length "_L1); else - stmt = stmt.arg(QLatin1String(" ")); + stmt = stmt.arg(" "_L1); bool buildRecordInfo = false; QString table, owner, tmpStmt; qSplitTableAndOwner(tablename, &table, &owner); @@ -2611,14 +2612,12 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const else owner = owner.toUpper(); - tmpStmt += QLatin1String(" and a.owner='") + owner + u'\''; + tmpStmt += " and a.owner='"_L1 + owner + u'\''; t.setForwardOnly(true); t.exec(tmpStmt); if (!t.next()) { // try and see if the tablename is a synonym - stmt = stmt + QLatin1String(" join all_synonyms b " - "on a.owner=b.table_owner and a.table_name=b.table_name " - "where b.owner='") + owner + - QLatin1String("' and b.synonym_name='") + table + u'\''; + stmt = stmt + " join all_synonyms b on a.owner=b.table_owner and a.table_name=b.table_name " + "where b.owner='"_L1 + owner + "' and b.synonym_name='"_L1 + table + u'\''; t.setForwardOnly(true); t.exec(stmt); if (t.next()) @@ -2626,13 +2625,13 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const } else { buildRecordInfo = true; } - QStringList keywords = QStringList() << QLatin1String("NUMBER") << QLatin1String("FLOAT") << QLatin1String("BINARY_FLOAT") - << QLatin1String("BINARY_DOUBLE"); + QStringList keywords = QStringList() << "NUMBER"_L1 << "FLOAT"_L1 << "BINARY_FLOAT"_L1 + << "BINARY_DOUBLE"_L1; if (buildRecordInfo) { do { QMetaType ty = qDecodeOCIType(t.value(1).toString(), t.numericalPrecisionPolicy()); QSqlField f(t.value(0).toString(), ty); - f.setRequired(t.value(5).toString() == QLatin1String("N")); + f.setRequired(t.value(5).toString() == "N"_L1); f.setPrecision(t.value(4).toInt()); if (d->serverVersion >= 9 && (ty.id() == QMetaType::QString) && !t.isNull(3) && !keywords.contains(t.value(1).toString())) { // Oracle9: data_length == size in bytes, char_length == amount of characters @@ -2654,11 +2653,11 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const if (!isOpen()) return idx; QSqlQuery t(createResult()); - QString stmt(QLatin1String("select b.column_name, b.index_name, a.table_name, a.owner " + QString stmt("select b.column_name, b.index_name, a.table_name, a.owner " "from all_constraints a, all_ind_columns b " "where a.constraint_type='P' " "and b.index_name = a.index_name " - "and b.index_owner = a.owner")); + "and b.index_owner = a.owner"_L1); bool buildIndex = false; QString table, owner, tmpStmt; @@ -2669,7 +2668,7 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const else table = table.toUpper(); - tmpStmt = stmt + QLatin1String(" and a.table_name='") + table + u'\''; + tmpStmt = stmt + " and a.table_name='"_L1 + table + u'\''; if (owner.isEmpty()) { owner = d->user; } @@ -2679,13 +2678,13 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const else owner = owner.toUpper(); - tmpStmt += QLatin1String(" and a.owner='") + owner + u'\''; + tmpStmt += " and a.owner='"_L1 + owner + u'\''; t.setForwardOnly(true); t.exec(tmpStmt); if (!t.next()) { - stmt += QLatin1String(" and a.table_name=(select tname from sys.synonyms " - "where sname='") + table + QLatin1String("' and creator=a.owner)"); + stmt += " and a.table_name=(select tname from sys.synonyms where sname='"_L1 + + table + "' and creator=a.owner)"_L1; t.setForwardOnly(true); t.exec(stmt); if (t.next()) { @@ -2700,9 +2699,9 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const tt.setForwardOnly(true); idx.setName(t.value(1).toString()); do { - tt.exec(QLatin1String("select data_type from all_tab_columns where table_name='") + - t.value(2).toString() + QLatin1String("' and column_name='") + - t.value(0).toString() + QLatin1String("' and owner='") + + tt.exec("select data_type from all_tab_columns where table_name='"_L1 + + t.value(2).toString() + "' and column_name='"_L1 + + t.value(0).toString() + "' and owner='"_L1 + owner + u'\''); if (!tt.next()) { return QSqlIndex(); @@ -2722,16 +2721,16 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QDateTime datetime = field.value().toDateTime(); QString datestring; if (datetime.isValid()) { - datestring = QLatin1String("TO_DATE('") + QString::number(datetime.date().year()) + datestring = "TO_DATE('"_L1 + QString::number(datetime.date().year()) + u'-' + QString::number(datetime.date().month()) + u'-' + QString::number(datetime.date().day()) + u' ' + QString::number(datetime.time().hour()) + u':' + QString::number(datetime.time().minute()) + u':' + QString::number(datetime.time().second()) - + QLatin1String("','YYYY-MM-DD HH24:MI:SS')"); + + "','YYYY-MM-DD HH24:MI:SS')"_L1; } else { - datestring = QLatin1String("NULL"); + datestring = "NULL"_L1; } return datestring; } @@ -2739,13 +2738,13 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QDateTime datetime = field.value().toDateTime(); QString datestring; if (datetime.isValid()) { - datestring = QLatin1String("TO_DATE('") + datestring = "TO_DATE('"_L1 + QString::number(datetime.time().hour()) + u':' + QString::number(datetime.time().minute()) + u':' + QString::number(datetime.time().second()) - + QLatin1String("','HH24:MI:SS')"); + + "','HH24:MI:SS')"_L1; } else { - datestring = QLatin1String("NULL"); + datestring = "NULL"_L1; } return datestring; } @@ -2753,12 +2752,12 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QDate date = field.value().toDate(); QString datestring; if (date.isValid()) { - datestring = QLatin1String("TO_DATE('") + QString::number(date.year()) + + datestring = "TO_DATE('"_L1 + QString::number(date.year()) + u'-' + QString::number(date.month()) + u'-' + - QString::number(date.day()) + QLatin1String("','YYYY-MM-DD')"); + QString::number(date.day()) + "','YYYY-MM-DD')"_L1; } else { - datestring = QLatin1String("NULL"); + datestring = "NULL"_L1; } return datestring; } @@ -2778,9 +2777,9 @@ QString QOCIDriver::escapeIdentifier(const QString &identifier, IdentifierType t { QString res = identifier; if (!identifier.isEmpty() && !isIdentifierEscaped(identifier, type)) { - res.replace(u'"', QLatin1String("\"\"")); + res.replace(u'"', "\"\""_L1); res.prepend(u'"').append(u'"'); - res.replace(u'.', QLatin1String("\".\"")); + res.replace(u'.', "\".\""_L1); } return res; } |