Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
HANA: Avoid range-based-for loops for non-const QT containers
  • Loading branch information
mrylov committed Dec 9, 2020
1 parent 9925cab commit f17268a
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 12 deletions.
13 changes: 13 additions & 0 deletions src/providers/hana/qgshanaconnection.cpp
Expand Up @@ -487,6 +487,8 @@ QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayers(
layer.geometryColName = isGeometryColumn ? rsLayers->getString( 3 ) : QString();
layer.tableComment = rsLayers->getString( 5 );
layer.isView = isView;
layer.srid = -1;
layer.type = isGeometryColumn ? QgsWkbTypes::Type::Unknown : QgsWkbTypes::NoGeometry;

QPair<QString, QString> layerKey( layer.schemaName, layer.tableName );
if ( allowGeometrylessTables )
Expand Down Expand Up @@ -534,6 +536,17 @@ QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayers(
return list;
}

QVector<QgsHanaLayerProperty> QgsHanaConnection::getLayersFull(
const QString &schemaName,
bool allowGeometrylessTables,
bool userTablesOnly )
{
QVector<QgsHanaLayerProperty> layers = getLayers( schemaName, allowGeometrylessTables, userTablesOnly );
for ( int i = 0; i < layers.size(); ++i )
readLayerInfo( layers[i] );
return layers;
}

void QgsHanaConnection::readLayerInfo( QgsHanaLayerProperty &layerProperty )
{
layerProperty.srid = getColumnSrid( layerProperty.schemaName, layerProperty.tableName, layerProperty.geometryColName );
Expand Down
4 changes: 4 additions & 0 deletions src/providers/hana/qgshanaconnection.h
Expand Up @@ -58,6 +58,10 @@ class QgsHanaConnection : public QObject
const QString &schemaName,
bool allowGeometrylessTables,
bool userTablesOnly = true );
QVector<QgsHanaLayerProperty> getLayersFull(
const QString &schemaName,
bool allowGeometrylessTables,
bool userTablesOnly = true );
void readLayerInfo( QgsHanaLayerProperty &layerProperty );
QVector<QgsHanaSchemaProperty> getSchemas( const QString &ownerName );
QgsWkbTypes::Type getColumnGeometryType( const QString &schemaName, const QString &tableName, const QString &columnName );
Expand Down
11 changes: 4 additions & 7 deletions src/providers/hana/qgshanadataitems.cpp
Expand Up @@ -288,14 +288,11 @@ QVector<QgsDataItem *> QgsHanaSchemaItem::createChildren()
}

QgsHanaSettings settings( mConnectionName, true );
QVector<QgsHanaLayerProperty> layers = conn->getLayers( mSchemaName,
settings.allowGeometrylessTables(), settings.userTablesOnly() );
const QVector<QgsHanaLayerProperty> layers = conn->getLayersFull( mSchemaName,
settings.allowGeometrylessTables(), settings.userTablesOnly() );

for ( QgsHanaLayerProperty &layerProperty : layers )
{
conn->readLayerInfo( layerProperty );
items.append( createLayer( layerProperty ) );
}
for ( const QgsHanaLayerProperty &layerInfo : layers )
items.append( createLayer( layerInfo ) );

setName( mSchemaName );

Expand Down
7 changes: 2 additions & 5 deletions src/providers/hana/qgshanaproviderconnection.cpp
Expand Up @@ -304,11 +304,8 @@ QList<QgsHanaProviderConnection::TableProperty> QgsHanaProviderConnection::table

try
{
QVector<QgsHanaLayerProperty> layers = conn->getLayers( schema, flags.testFlag( TableFlag::Aspatial ), false );
for ( QgsHanaLayerProperty &layerInfo : layers )
conn->readLayerInfo( layerInfo );

for ( const QgsHanaLayerProperty &layerInfo : qgis::as_const( layers ) )
const QVector<QgsHanaLayerProperty> layers = conn->getLayersFull( schema, flags.testFlag( TableFlag::Aspatial ), false );
for ( const QgsHanaLayerProperty &layerInfo : layers )
{
// Classify
TableFlags prFlags;
Expand Down

0 comments on commit f17268a

Please sign in to comment.