Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Use QStringLiteral/QLatin1String where appropriate in HANA
  • Loading branch information
mrylov committed Dec 9, 2020
1 parent 7399a6f commit e03ea84
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 32 deletions.
4 changes: 0 additions & 4 deletions src/providers/hana/qgshanacolumntypethread.cpp
Expand Up @@ -47,11 +47,7 @@ void QgsHanaColumnTypeThread::run()
mUserTablesOnly );

if ( layerProperties.isEmpty() )
{
QgsMessageLog::logMessage(
tr( "Unable to get list of spatially enabled tables from the database" ), tr( "HANA" ) );
return;
}

const int totalLayers = layerProperties.size();

Expand Down
7 changes: 4 additions & 3 deletions src/providers/hana/qgshanaconnection.cpp
Expand Up @@ -40,7 +40,6 @@
#include "odbc/Statement.h"

using namespace odbc;
using namespace std;

static const uint8_t CREDENTIALS_INPUT_MAX_ATTEMPTS = 5;
static const int GEOMETRIES_SELECT_LIMIT = 10;
Expand Down Expand Up @@ -383,7 +382,7 @@ const QString &QgsHanaConnection::getDatabaseVersion()
const QString &QgsHanaConnection::getUserName()
{
if ( mUserName.isEmpty() )
mUserName = executeScalar( QLatin1String( "SELECT CURRENT_USER FROM DUMMY" ) ).toString();
mUserName = executeScalar( QStringLiteral( "SELECT CURRENT_USER FROM DUMMY" ) ).toString();

return mUserName;
}
Expand Down Expand Up @@ -448,7 +447,8 @@ QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayers(

const QString sqlOwnerFilter = userTablesOnly ? QStringLiteral( "OWNER_NAME = CURRENT_USER" ) : QStringLiteral( "OWNER_NAME IS NOT NULL" );

const QString sqlDataTypeFilter = !allowGeometrylessTables ? QStringLiteral( "DATA_TYPE_NAME IN ('ST_GEOMETRY','ST_POINT')" ) : "DATA_TYPE_NAME IS NOT NULL";
const QString sqlDataTypeFilter = !allowGeometrylessTables ? QStringLiteral( "DATA_TYPE_NAME IN ('ST_GEOMETRY','ST_POINT')" ) :
QStringLiteral( "DATA_TYPE_NAME IS NOT NULL" );

const QString sqlTables = QStringLiteral(
"SELECT SCHEMA_NAME, TABLE_NAME, COLUMN_NAME, DATA_TYPE_NAME, TABLE_COMMENTS FROM "
Expand Down Expand Up @@ -542,6 +542,7 @@ QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayersFull(
bool userTablesOnly )
{
QVector<QgsHanaLayerProperty> layers = getLayers( schemaName, allowGeometrylessTables, userTablesOnly );
// We cannot use a range-based for loop as layers are modified in readLayerInfo.
for ( int i = 0; i < layers.size(); ++i )
readLayerInfo( layers[i] );
return layers;
Expand Down
6 changes: 3 additions & 3 deletions src/providers/hana/qgshanaconnectionstringbuilder.cpp
Expand Up @@ -28,9 +28,9 @@ QgsHanaConnectionStringBuilder::QgsHanaConnectionStringBuilder( const QgsDataSou
if ( !uri.hasParam( QStringLiteral( "sslEnabled" ) ) )
return;

mSslEnabled = ( uri.param( QLatin1String( "sslEnabled" ) ) == QLatin1String( "true" ) ) ? true : false;
mSslEnabled = ( uri.param( QStringLiteral( "sslEnabled" ) ) == QLatin1String( "true" ) ) ? true : false;
mSslCryptoProvider = uri.param( QStringLiteral( "sslCryptoProvider" ) );
mSslValidateCertificate = uri.param( QLatin1String( "sslValidateCertificate" ) ) == QLatin1String( "true" ) ? true : false;
mSslValidateCertificate = uri.param( QStringLiteral( "sslValidateCertificate" ) ) == QLatin1String( "true" ) ? true : false;
if ( mSslValidateCertificate )
mSslHostNameInCertificate = uri.param( QStringLiteral( "sslHostNameInCertificate" ) );
mSslKeyStore = uri.param( QStringLiteral( "sslKeyStore" ) );
Expand All @@ -41,7 +41,7 @@ QString QgsHanaConnectionStringBuilder::toString() const
{
// For more details on how to escape special characters in passwords,
// see https://stackoverflow.com/questions/55150362/maybe-illegal-character-in-odbc-sql-server-connection-string-pwd
QString pwd = QString( mPassword ).replace( "}", "}}" );
QString pwd = QString( mPassword ).replace( '}', QStringLiteral( "}}" ) );
QString ret = QStringLiteral( "DRIVER={%1};SERVERNODE=%2:%3;DATABASENAME=%4;UID=%5;PWD={%6};CHAR_AS_UTF8=1" ).arg(
mDriver, mHost, mPort, mDatabase, mUserName, pwd );
if ( !mSchema.isEmpty() )
Expand Down
2 changes: 1 addition & 1 deletion src/providers/hana/qgshanadataitems.cpp
Expand Up @@ -339,7 +339,7 @@ QgsHanaLayerItem *QgsHanaSchemaItem::createLayer( const QgsHanaLayerProperty &la
}
else
{
tip += QStringLiteral( "\nno geometry column" );
tip += '\n' + QStringLiteral( "no geometry column" );
}

QgsHanaLayerItem *layerItem = new QgsHanaLayerItem( this, layerProperty.defaultName(),
Expand Down
10 changes: 5 additions & 5 deletions src/providers/hana/qgshanadriver.cpp
Expand Up @@ -36,7 +36,7 @@ static QString detectDriverPath( EnvironmentRef &env, const QString &libName, co
{
for ( const DriverInformation::Attribute &attr : drv.attributes )
{
if ( QString::compare( QString::fromStdString( attr.name ), "DRIVER", Qt::CaseInsensitive ) == 0 )
if ( QString::compare( QString::fromStdString( attr.name ), QLatin1String( "DRIVER" ), Qt::CaseInsensitive ) == 0 )
{
QString path = QString::fromStdString( attr.value );
if ( path.endsWith( libName ) && QFileInfo::exists( path ) )
Expand All @@ -53,14 +53,14 @@ QgsHanaDriver::QgsHanaDriver()
QgsDebugCall;
#if defined(Q_OS_WIN)
#if defined(Q_OS_WIN64)
mDriver = mEnv->isDriverInstalled( "HDBODBC" ) ? "HDBODBC" : QString();
mDriver = mEnv->isDriverInstalled( "HDBODBC" ) ? QStringLiteral( "HDBODBC" ) : QString();
#else
mDriver = mEnv->isDriverInstalled( "HDBODBC32" ) ? "HDBODBC32" : QString();
mDriver = mEnv->isDriverInstalled( "HDBODBC32" ) ? QStringLiteral( "HDBODBC32" ) : QString();
#endif
#elif defined(Q_OS_MAC)
mDriver = detectDriverPath( mEnv, "libodbcHDB.dylib", "/Applications/sap/hdbclient" );
mDriver = detectDriverPath( mEnv, QStringLiteral( "libodbcHDB.dylib" ), QStringLiteral( "/Applications/sap/hdbclient" ) );
#else
mDriver = detectDriverPath( mEnv, "libodbcHDB.so", "/usr/sap/hdbclient" );
mDriver = detectDriverPath( mEnv, QStringLiteral( "libodbcHDB.so" ), QStringLiteral( "/usr/sap/hdbclient" ) );
#endif
}

Expand Down
9 changes: 4 additions & 5 deletions src/providers/hana/qgshanafeatureiterator.cpp
Expand Up @@ -361,8 +361,7 @@ QString QgsHanaFeatureIterator::buildSqlQuery( const QgsFeatureRequest &request
for ( QgsFeatureId featureId : mRequest.filterFids() )
fids.push_back( FID_TO_STRING( featureId ) );

QString inClause = QStringLiteral( "%1 IN (" ).arg( QgsHanaUtils::quotedIdentifier( mFidColumn ) ) +
fids.join( QStringLiteral( "," ) ) + QStringLiteral( ")" );
QString inClause = QStringLiteral( "%1 IN (%2)" ).arg( QgsHanaUtils::quotedIdentifier( mFidColumn ), fids.join( ',' ) );
sqlFilter.push_back( inClause );
}
}
Expand Down Expand Up @@ -412,15 +411,15 @@ QString QgsHanaFeatureIterator::buildSqlQuery( const QgsFeatureRequest &request
}

QString sql = QStringLiteral( "SELECT %1 FROM %2.%3" ).arg(
sqlFields.isEmpty() ? QStringLiteral( "*" ) : sqlFields.join( QStringLiteral( "," ) ),
sqlFields.isEmpty() ? QStringLiteral( "*" ) : sqlFields.join( ',' ),
QgsHanaUtils::quotedIdentifier( mSource->mSchemaName ),
QgsHanaUtils::quotedIdentifier( mSource->mTableName ) );

if ( !sqlFilter.isEmpty() )
sql += QStringLiteral( " WHERE (" ) + sqlFilter.join( ") AND (" ) + QStringLiteral( ")" );
sql += QStringLiteral( " WHERE (%1)" ).arg( sqlFilter.join( QStringLiteral( ") AND (" ) ) );

if ( !orderByParts.isEmpty() )
sql += QStringLiteral( " ORDER BY %1 " ).arg( orderByParts.join( QStringLiteral( "," ) ) );
sql += QStringLiteral( " ORDER BY %1 " ).arg( orderByParts.join( ',' ) );

if ( limitAtProvider )
sql += QStringLiteral( " LIMIT %1" ).arg( mRequest.limit() );
Expand Down
2 changes: 1 addition & 1 deletion src/providers/hana/qgshananewconnection.cpp
Expand Up @@ -30,7 +30,7 @@ namespace
{
bool isStringEmpty( const QString &input )
{
return ( input.isEmpty() || QString( input ).replace( " ", QString() ).isEmpty() );
return ( input.isEmpty() || QString( input ).replace( ' ', QString() ).isEmpty() );
}
}

Expand Down
20 changes: 10 additions & 10 deletions src/providers/hana/qgshanaprovider.cpp
Expand Up @@ -73,20 +73,20 @@ namespace
}

QgsCoordinateReferenceSystem srsWGS84;
srsWGS84.createFromString( "EPSG:4326" );
srsWGS84.createFromString( QStringLiteral( "EPSG:4326" ) );
QgsCoordinateTransformContext coordTransCntx;
QgsCoordinateTransform ct( srsWGS84, srs, coordTransCntx );
QgsRectangle bounds = ct.transformBoundingBox( srs.bounds() );

QString units = QgsHanaUtils::toString( srs.mapUnits() );
QString linearUnits = srs.isGeographic() ? QString( "NULL" ) : QgsHanaUtils::quotedIdentifier( units );
QString angularUnits = srs.isGeographic() ? QgsHanaUtils::quotedIdentifier( units ) : QString( "NULL" ) ;
QString linearUnits = srs.isGeographic() ? QStringLiteral( "NULL" ) : QgsHanaUtils::quotedIdentifier( units );
QString angularUnits = srs.isGeographic() ? QgsHanaUtils::quotedIdentifier( units ) : QStringLiteral( "NULL" ) ;

QString xRange = QStringLiteral( "%1 BETWEEN %2 AND %3" )
.arg( ( srs.isGeographic() ? "LONGITUDE" : "X" ),
.arg( ( srs.isGeographic() ? QStringLiteral( "LONGITUDE" ) : QStringLiteral( "X" ) ),
QString::number( bounds.xMinimum() ), QString::number( bounds.xMaximum() ) );
QString yRange = QStringLiteral( "%1 BETWEEN %2 AND %3" )
.arg( ( srs.isGeographic() ? "LATITUDE" : "Y" ),
.arg( ( srs.isGeographic() ? QStringLiteral( "LATITUDE" ) : QStringLiteral( "Y" ) ),
QString::number( bounds.yMinimum() ), QString::number( bounds.yMaximum() ) );

// create new spatial reference system
Expand Down Expand Up @@ -500,7 +500,7 @@ bool QgsHanaProvider::addFeatures( QgsFeatureList &flist, Flags flags )
if ( !mGeometryColumn.isEmpty() )
{
QString geometryDataType = conn->getColumnDataType( mSchemaName, mTableName, mGeometryColumn );
isPointDataType = QString::compare( geometryDataType, "ST_POINT", Qt::CaseInsensitive ) == 0;
isPointDataType = QString::compare( geometryDataType, QStringLiteral( "ST_POINT" ), Qt::CaseInsensitive ) == 0;

columnNames << QgsHanaUtils::quotedIdentifier( mGeometryColumn );
values << QStringLiteral( "ST_GeomFromWKB(?, %1)" ).arg( QString::number( mSrid ) );
Expand Down Expand Up @@ -781,7 +781,7 @@ bool QgsHanaProvider::deleteAttributes( const QgsAttributeIds &attributes )
if ( !columnNames.isEmpty() )
columnNames += QStringLiteral( "," );
const QgsField &field = mAttributeFields.at( attrId );
columnNames += QStringLiteral( "%1" ).arg( QgsHanaUtils::quotedIdentifier( field.name() ) );
columnNames += QgsHanaUtils::quotedIdentifier( field.name() );
}

QString sql = QStringLiteral( "ALTER TABLE %1.%2 DROP (%3)" ).arg(
Expand Down Expand Up @@ -1430,13 +1430,13 @@ QgsVectorLayerExporter::ExportError QgsHanaProvider::createEmptyLayer(
}

if ( wkbType != QgsWkbTypes::NoGeometry && geometryColumn.isEmpty() )
geometryColumn = fieldsInUpperCase ? "GEOM" : "geom";
geometryColumn = fieldsInUpperCase ? QStringLiteral( "GEOM" ) : QStringLiteral( "geom" );

bool createdNewPk = false;

if ( primaryKey.isEmpty() )
{
QString pk = primaryKey = fieldsInUpperCase ? "ID" : "id";
QString pk = primaryKey = fieldsInUpperCase ? QStringLiteral( "ID" ) : QStringLiteral( "id" );
int index = 0;
while ( fields.indexFromName( primaryKey ) >= 0 )
{
Expand Down Expand Up @@ -1534,7 +1534,7 @@ QgsVectorLayerExporter::ExportError QgsHanaProvider::createEmptyLayer(
return QgsVectorLayerExporter::ErrInvalidLayer;
}

// add fields to the layer
// add fields to the layer
if ( oldToNewAttrIdxMap )
oldToNewAttrIdxMap->clear();

Expand Down

0 comments on commit e03ea84

Please sign in to comment.