Skip to content

Commit

Permalink
Make use of QStringLiteral in HANA provider where appropriate
Browse files Browse the repository at this point in the history
  • Loading branch information
Maksim Rylov authored and mrylov committed Dec 7, 2020
1 parent 33db2db commit 473157d
Show file tree
Hide file tree
Showing 10 changed files with 137 additions and 133 deletions.
16 changes: 8 additions & 8 deletions src/providers/hana/qgshanaconnection.cpp
Expand Up @@ -311,7 +311,7 @@ QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayers(
// Read geometryless tables
if (allowGeometrylessTables)
{
sql = QString("SELECT DISTINCT SCHEMA_NAME, TABLE_NAME, TABLE_COMMENTS FROM (%1)").arg(
sql = QStringLiteral("SELECT DISTINCT SCHEMA_NAME, TABLE_NAME, TABLE_COMMENTS FROM (%1)").arg(
sqlTables.arg(userTablesOnly ? "CURRENT_USER" : "%", schema.isEmpty() ? "%" : schema, ""));
ResultSetRef rsTables = stmt->executeQuery(sql.toStdString().c_str());
while (rsTables->next())
Expand All @@ -329,7 +329,7 @@ QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayers(
}

// Read views
sql = QString("SELECT SCHEMA_NAME, VIEW_NAME, COLUMN_NAME, DATA_TYPE_NAME, VIEW_OID, VIEW_COMMENTS FROM "
sql = QStringLiteral("SELECT SCHEMA_NAME, VIEW_NAME, COLUMN_NAME, DATA_TYPE_NAME, VIEW_OID, VIEW_COMMENTS FROM "
"(SELECT * FROM SYS.VIEW_COLUMNS WHERE VIEW_OID IN (SELECT OBJECT_OID FROM OWNERSHIP WHERE "
"OBJECT_TYPE = 'VIEW' AND OWNER_NAME LIKE '%1')) "
"INNER JOIN "
Expand Down Expand Up @@ -398,11 +398,11 @@ QVector<QgsHanaSchemaProperty> QgsHanaConnection::getSchemas(const QString& owne
QVector<QgsHanaSchemaProperty> list;
try
{
QString sql = QString("SELECT SCHEMA_NAME, SCHEMA_OWNER FROM SYS.SCHEMAS WHERE "
QString sql = QStringLiteral("SELECT SCHEMA_NAME, SCHEMA_OWNER FROM SYS.SCHEMAS WHERE "
"HAS_PRIVILEGES = 'TRUE' AND SCHEMA_OWNER LIKE '%1' AND "
"SCHEMA_NAME NOT LIKE_REGEXPR 'SYS|_SYS.*|UIS|SAP_XS|SAP_REST|HANA_XS|XSSQLCC_' AND "
"SCHEMA_NAME LIKE '%2'")
.arg(ownerName.isEmpty() ? "%" : ownerName, mUri.schema().isEmpty() ? "%" : mUri.schema());
.arg(ownerName.isEmpty() ? QStringLiteral("%") : ownerName, mUri.schema().isEmpty() ? QStringLiteral("%") : mUri.schema());
StatementRef stmt = mConnection->createStatement();
ResultSetRef rsSchemas = stmt->executeQuery(sql.toStdString().c_str());
while (rsSchemas->next())
Expand Down Expand Up @@ -434,7 +434,7 @@ int QgsHanaConnection::getLayerSRID(const QgsHanaLayerProperty& layerProperty)

if (!layerProperty.isView)
{
QString sql = QString("SELECT SRS_ID FROM SYS.ST_GEOMETRY_COLUMNS "
QString sql = QStringLiteral("SELECT SRS_ID FROM SYS.ST_GEOMETRY_COLUMNS "
"WHERE SCHEMA_NAME = '%1' AND TABLE_NAME = '%2' AND COLUMN_NAME = '%3'")
.arg(layerProperty.schemaName, layerProperty.tableName, layerProperty.geometryColName);
ResultSetRef rsSrid = stmt->executeQuery(sql.toStdString().c_str());
Expand All @@ -443,7 +443,7 @@ int QgsHanaConnection::getLayerSRID(const QgsHanaLayerProperty& layerProperty)
}
else
{
QString sql = QString("SELECT %1.ST_SRID() FROM %2.%3 WHERE %1 IS NOT NULL LIMIT 10")
QString sql = QStringLiteral("SELECT %1.ST_SRID() FROM %2.%3 WHERE %1 IS NOT NULL LIMIT 10")
.arg(QgsHanaUtils::quotedIdentifier(layerProperty.geometryColName),
QgsHanaUtils::quotedIdentifier(layerProperty.schemaName),
QgsHanaUtils::quotedIdentifier(layerProperty.tableName));
Expand Down Expand Up @@ -526,7 +526,7 @@ QgsWkbTypes::Type QgsHanaConnection::getLayerGeometryType(const QgsHanaLayerProp

try
{
QString sql = QString("SELECT upper(%1.ST_GeometryType()) AS geom_type FROM %2.%3 "
QString sql = QStringLiteral("SELECT upper(%1.ST_GeometryType()) AS geom_type FROM %2.%3 "
"WHERE %1 IS NOT NULL LIMIT 10").arg(
QgsHanaUtils::quotedIdentifier(layerProperty.geometryColName),
QgsHanaUtils::quotedIdentifier(layerProperty.schemaName),
Expand All @@ -536,7 +536,7 @@ QgsWkbTypes::Type QgsHanaConnection::getLayerGeometryType(const QgsHanaLayerProp
QgsWkbTypes::Type geomType = QgsWkbTypes::Unknown, prevGeomType = QgsWkbTypes::Unknown;
while (rsGeomType->next())
{
geomType = QgsWkbTypes::singleType(QgsHanaUtils::toWkbType(*rsGeomType->getString(1)));
geomType = QgsWkbTypes::singleType(QgsHanaUtils::toWkbType(rsGeomType->getString(1)->c_str()));
if (prevGeomType != QgsWkbTypes::Unknown && geomType != prevGeomType)
{
geomType = QgsWkbTypes::Unknown;
Expand Down
30 changes: 15 additions & 15 deletions src/providers/hana/qgshanaconnectionstringbuilder.cpp
Expand Up @@ -23,35 +23,35 @@ QgsHanaConnectionStringBuilder::QgsHanaConnectionStringBuilder(const QgsDataSour
, mPassword(uri.password())
, mSslEnabled(false)
{
if (!uri.hasParam("encrypt"))
if (!uri.hasParam(QStringLiteral("encrypt")))
return;

mSslEnabled = (uri.param("encrypt") == "true") ? true : false;
mSslCryptoProvider = uri.param("sslCryptoProvider");
mSslValidateCertificate = uri.param("sslValidateCertificate") == "true" ? true : false;
mSslEnabled = (uri.param(QStringLiteral("encrypt")) == QStringLiteral("true")) ? true : false;
mSslCryptoProvider = uri.param(QStringLiteral("sslCryptoProvider"));
mSslValidateCertificate = uri.param(QStringLiteral("sslValidateCertificate")) == QStringLiteral("true") ? true : false;
if (mSslValidateCertificate)
mSslHostNameInCertificate = uri.param("sslHostNameInCertificate");
mSslKeyStore = uri.param("sslKeyStore");
mSslTrustStore = uri.param("sslTrustStore");
mSslHostNameInCertificate = uri.param(QStringLiteral("sslHostNameInCertificate"));
mSslKeyStore = uri.param(QStringLiteral("sslKeyStore"));
mSslTrustStore = uri.param(QStringLiteral("sslTrustStore"));
}

QString QgsHanaConnectionStringBuilder::toString()
{
QString ret = QString("DRIVER={%1};SERVERNODE=%2:%3;DATABASENAME=%4;UID=%5;PWD=%6").arg(
QString ret = QStringLiteral("DRIVER={%1};SERVERNODE=%2:%3;DATABASENAME=%4;UID=%5;PWD=%6").arg(
mDriver, mHost, mPort, mDatabase, mUserName, mPassword);
if (!mSchema.isEmpty())
ret += ";CURRENTSCHEMA=" + mSchema;
ret += QStringLiteral(";CURRENTSCHEMA=") + mSchema;
if (mSslEnabled)
{
ret += ";encrypt=true";
ret += ";sslCryptoProvider=" + mSslCryptoProvider;
ret += ";sslValidateCertificate=" + QString(mSslValidateCertificate ? "true" : "false");
ret += QStringLiteral(";encrypt=true");
ret += QStringLiteral(";sslCryptoProvider=") + mSslCryptoProvider;
ret += QStringLiteral(";sslValidateCertificate=") + QString(mSslValidateCertificate ? QStringLiteral("true") : QStringLiteral("false"));
if (mSslValidateCertificate)
ret += ";sslHostNameInCertificate=" + mSslValidateCertificate;
ret += QStringLiteral(";sslHostNameInCertificate=") + mSslValidateCertificate;
if (!mSslKeyStore.isEmpty())
ret += ";sslKeyStore=" + mSslKeyStore;
ret += QStringLiteral(";sslKeyStore=") + mSslKeyStore;
if (!mSslKeyStore.isEmpty())
ret += ";sslTrustStore=" + mSslTrustStore;
ret += QStringLiteral(";sslTrustStore=") + mSslTrustStore;
}
return ret;
}
31 changes: 16 additions & 15 deletions src/providers/hana/qgshanadataitems.cpp
Expand Up @@ -136,7 +136,7 @@ void QgsHanaConnectionItem::editConnection()
void QgsHanaConnectionItem::deleteConnection()
{
if (QMessageBox::question(nullptr, QObject::tr("Delete Connection"),
QObject::tr("Are you sure you want to delete the connection to %1?").arg(mName),
tr("Are you sure you want to delete the connection to %1?").arg(mName),
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) != QMessageBox::Yes)
return;

Expand Down Expand Up @@ -165,25 +165,26 @@ void QgsHanaConnectionItem::updateToolTip(const QString& userName, const QString
QgsHanaSettings settings(mName, true);
QString tip;
if (!settings.getDatabase().isEmpty())
tip = "Database: " + settings.getDatabase();
tip = QStringLiteral("Database: ") + settings.getDatabase();
if (!tip.isEmpty())
tip += '\n';
tip += QStringLiteral("Host: ") + settings.getHost() + QStringLiteral(" ");
if (QgsHanaIdentifierType::fromInt(settings.getIdentifierType()) == QgsHanaIdentifierType::INSTANCE_NUMBER)
tip += "Host: " + settings.getHost() + " " + settings.getIdentifier();
tip += settings.getIdentifier();
else
tip += "Host: " + settings.getHost() + ":" + settings.getPort();
tip += settings.getPort();
if (!tip.isEmpty())
tip += '\n';
if (!dbmsVersion.isEmpty())
{
tip += "DB Version: " + dbmsVersion;
tip += QStringLiteral("DB Version: ") + dbmsVersion;
if (!tip.isEmpty())
tip += '\n';
}
tip += "User: " + userName;
tip += QStringLiteral("User: ") + userName;
if (!tip.isEmpty())
tip += '\n';
tip += "Encrypted: " + QString(settings.getEnableSsl() ? "yes" : "no");
tip += QStringLiteral("Encrypted: ") + QString(settings.getEnableSsl() ? QStringLiteral("yes") : QStringLiteral("no"));
setToolTip(tip);
}

Expand Down Expand Up @@ -225,7 +226,7 @@ bool QgsHanaConnectionItem::handleDrop(const QMimeData* data, const QString &toS
uri.setWkbType(srcLayer->wkbType());
uri.setDataSource(!toSchema.isNull() ? toSchema : nullptr,
u.name,
(srcLayer->geometryType() != QgsWkbTypes::NullGeometry) ? (fieldsInUpperCase ? "GEOM" : "geom") : nullptr);
(srcLayer->geometryType() != QgsWkbTypes::NullGeometry) ? (fieldsInUpperCase ? QStringLiteral("GEOM") : QStringLiteral("geom")) : nullptr);

QgsDebugMsg("URI " + uri.uri(false));

Expand Down Expand Up @@ -266,7 +267,7 @@ bool QgsHanaConnectionItem::handleDrop(const QMimeData* data, const QString &toS
}
else
{
importResults.append("Connection failed");
importResults.append(tr("Connection failed"));
hasError = true;
}

Expand Down Expand Up @@ -309,7 +310,7 @@ QString QgsHanaLayerItem::createUri() const

if (!connItem)
{
QgsDebugMsg("connection item not found.");
QgsDebugMsg("Connection item not found.");
return QString();
}

Expand All @@ -320,7 +321,7 @@ QString QgsHanaLayerItem::createUri() const
uri.setWkbType(mLayerProperty.type);
if (uri.wkbType() != QgsWkbTypes::NoGeometry)
uri.setSrid(QString::number(mLayerProperty.srid));
QgsDebugMsg(QString("layer uri: %1").arg(uri.uri(false)));
QgsDebugMsg(QStringLiteral("layer uri: %1").arg(uri.uri(false)));
return uri.uri(false);
}

Expand Down Expand Up @@ -433,19 +434,19 @@ QList<QAction*> QgsHanaSchemaItem::actions(QWidget* parent)

QgsHanaLayerItem* QgsHanaSchemaItem::createLayer(const QgsHanaLayerProperty &layerProperty)
{
QString tip = tr(layerProperty.isView ? "View": "Table");
QString tip = layerProperty.isView ? QStringLiteral("View"): QStringLiteral("Table");

QgsLayerItem::LayerType layerType = QgsLayerItem::TableLayer;
if (!layerProperty.geometryColName.isEmpty() && layerProperty.isValid())
{
if (layerProperty.srid < 0)
{
tip += tr("\n%1 as %2").arg(layerProperty.geometryColName,
tip += QStringLiteral("\n%1 as %2").arg(layerProperty.geometryColName,
QgsWkbTypes::displayString(layerProperty.type));
}
else
{
tip += tr("\n%1 as %2 in SRID %3")
tip += QStringLiteral("\n%1 as %2 in SRID %3")
.arg(layerProperty.geometryColName, QgsWkbTypes::displayString(layerProperty.type))
.arg(layerProperty.srid);
}
Expand All @@ -471,7 +472,7 @@ QgsHanaLayerItem* QgsHanaSchemaItem::createLayer(const QgsHanaLayerProperty &lay
}
else
{
tip += "\nno geometry column";
tip += QStringLiteral("\nno geometry column");
}

QgsHanaLayerItem* layerItem = new QgsHanaLayerItem(this, layerProperty.defaultName(),
Expand Down
32 changes: 18 additions & 14 deletions src/providers/hana/qgshanafeatureiterator.cpp
Expand Up @@ -30,6 +30,20 @@

using namespace odbc;

namespace {

QString andWhereClauses(const QString &c1, const QString &c2)
{
if (c1.isEmpty())
return c2;
if (c2.isEmpty())
return c1;

return QStringLiteral("(%1) AND (%2)").arg(c1, c2);
}

}

QgsHanaFeatureIterator::QgsHanaFeatureIterator(
QgsHanaFeatureSource *source,
bool ownSource,
Expand Down Expand Up @@ -264,7 +278,7 @@ void QgsHanaFeatureIterator::fetchFeatureGeometry(unsigned short paramIndex, Qgs

if (bufLength == 0 || bufPtr == nullptr)
{
QgsDebugMsg("Geometry is empty");
QgsDebugMsg(QStringLiteral("Geometry is empty"));
feature.clearGeometry();
}
else
Expand All @@ -290,29 +304,19 @@ QString QgsHanaFeatureIterator::getBBOXFilter(const QgsRectangle& bbox,
{
if (dbVersion.majorVersion() == 1)
{
return QString("%1.ST_SRID(%2).ST_IntersectsRect(ST_GeomFromText('Point(%3 %4)', %2), ST_GeomFromText('Point(%5 %6)', %2)) = 1")
return QStringLiteral("%1.ST_SRID(%2).ST_IntersectsRect(ST_GeomFromText('Point(%3 %4)', %2), ST_GeomFromText('Point(%5 %6)', %2)) = 1")
.arg(QgsHanaUtils::quotedIdentifier(mSource->mGeometryColumn), QString::number(mSource->mSrid),
qgsDoubleToString(bbox.xMinimum()), qgsDoubleToString(bbox.yMinimum()),
qgsDoubleToString(bbox.xMaximum()), qgsDoubleToString(bbox.yMaximum()));
}
else
return QString("%1.ST_IntersectsRectPlanar(ST_GeomFromText('Point(%2 %3)', %6), ST_GeomFromText('Point(%4 %5)', %6)) = 1")
return QStringLiteral("%1.ST_IntersectsRectPlanar(ST_GeomFromText('Point(%2 %3)', %6), ST_GeomFromText('Point(%4 %5)', %6)) = 1")
.arg(QgsHanaUtils::quotedIdentifier(mSource->mGeometryColumn),
qgsDoubleToString(bbox.xMinimum()), qgsDoubleToString(bbox.yMinimum()),
qgsDoubleToString(bbox.xMaximum()), qgsDoubleToString(bbox.yMaximum()),
QString::number(mSource->mSrid));
}

QString andWhereClauses(const QString &c1, const QString &c2)
{
if (c1.isEmpty())
return c2;
if (c2.isEmpty())
return c1;

return QStringLiteral("(%1) AND (%2)").arg(c1, c2);
}

void QgsHanaFeatureIterator::buildStatement(const QgsFeatureRequest &request)
{
QgsRectangle filterRect = mFilterRect;
Expand Down Expand Up @@ -455,7 +459,7 @@ void QgsHanaFeatureIterator::buildStatement(const QgsFeatureRequest &request)
sqlFilter = andWhereClauses(sqlFilter, mSource->mQueryWhereClause);

if (!sqlFilter.isEmpty())
sql += " WHERE " + sqlFilter;
sql += QStringLiteral(" WHERE ") + sqlFilter;

if (limitAtProvider && request.limit() > 0)
sql += QStringLiteral(" LIMIT %1").arg(mRequest.limit());
Expand Down
24 changes: 12 additions & 12 deletions src/providers/hana/qgshananewconnection.cpp
Expand Up @@ -168,13 +168,13 @@ void QgsHanaNewConnection::cmbIdentifierType_changed(int index)
{
txtIdentifier->setMaxLength(2);
txtIdentifier->setValidator(new QIntValidator(0, 99, this));
txtIdentifier->setText("00");
txtIdentifier->setText(QStringLiteral("00"));
}
else
{
txtIdentifier->setMaxLength(5);
txtIdentifier->setValidator(new QIntValidator(10000, 99999, this));
txtIdentifier->setText("00000");
txtIdentifier->setText(QStringLiteral("00000"));
}
}

Expand Down Expand Up @@ -258,7 +258,7 @@ void QgsHanaNewConnection::updateControlsFromSettings(const QgsHanaSettings& set
else
{
rbtnMultipleContainers->setChecked(true);
if (settings.getDatabase() == "SYSTEMDB")
if (settings.getDatabase() == QStringLiteral("SYSTEMDB"))
rbtnSystemDatabase->setChecked(true);
else
txtTenantDatabaseName->setText(settings.getDatabase());
Expand Down Expand Up @@ -298,25 +298,25 @@ void QgsHanaNewConnection::testConnection()
{
QString warningMsg;
if (txtDriver->text().isEmpty())
warningMsg = "Driver name has not been specified.";
warningMsg = QStringLiteral("Driver name has not been specified.");
else if (txtHost->text().isEmpty())
warningMsg = "Host name has not been specified.";
warningMsg = QStringLiteral("Host name has not been specified.");
else if (rbtnMultipleContainers->isChecked() && rbtnTenantDatabase->isChecked() &&
txtTenantDatabaseName->text().isEmpty())
warningMsg = "Database has not been specified.";
warningMsg = QStringLiteral("Database has not been specified.");
else if (mAuthSettings->username().isEmpty())
warningMsg = "User name has not been specified.";
warningMsg = QStringLiteral("User name has not been specified.");
else if (mAuthSettings->password().isEmpty())
warningMsg = "Password has not been specified.";
warningMsg = QStringLiteral("Password has not been specified.");
else if (txtIdentifier->text().isEmpty())
warningMsg = "Identifier has not been specified.";
warningMsg = QStringLiteral("Identifier has not been specified.");
else
{
auto id = QgsHanaIdentifierType::fromInt(cmbIdentifierType->currentIndex());
int len = txtIdentifier->text().length();
if ((id == QgsHanaIdentifierType::INSTANCE_NUMBER && len != 2) ||
(id == QgsHanaIdentifierType::PORT_NUMBER && len != 5))
warningMsg = "Identifier has incorrect format.";
warningMsg = QStringLiteral("Identifier has incorrect format.");
}

if (!warningMsg.isEmpty())
Expand Down Expand Up @@ -345,10 +345,10 @@ QString QgsHanaNewConnection::getDatabaseName() const
if (rbtnTenantDatabase->isChecked())
return QString(txtTenantDatabaseName->text());
else
return QString("SYSTEMDB");
return QStringLiteral("SYSTEMDB");
}
else
return "";
return QStringLiteral("");
}

void QgsHanaNewConnection::showHelp()
Expand Down

0 comments on commit 473157d

Please sign in to comment.