diff --git a/src/providers/postgres/qgspostgresdataitems.cpp b/src/providers/postgres/qgspostgresdataitems.cpp index 44c985499a7..6d95a5264b0 100644 --- a/src/providers/postgres/qgspostgresdataitems.cpp +++ b/src/providers/postgres/qgspostgresdataitems.cpp @@ -338,11 +338,20 @@ QString QgsPGLayerItem::createUri() QgsDataSourceUri uri( QgsPostgresConn::connUri( connItem->name() ).connectionInfo( false ) ); - QStringList defPk( QgsSettings().value( - QStringLiteral( "/PostgreSQL/connections/%1/keys/%2/%3" ).arg( connItem->name(), mLayerProperty.schemaName, mLayerProperty.tableName ), + const QgsSettings &settings = QgsSettings(); + QString basekey = QStringLiteral( "/PostgreSQL/connections/%1" ).arg( connItem->name() ); + + QStringList defPk( settings.value( + QStringLiteral( "%1/keys/%2/%3" ).arg( basekey, mLayerProperty.schemaName, mLayerProperty.tableName ), QVariant( !mLayerProperty.pkCols.isEmpty() ? QStringList( mLayerProperty.pkCols.at( 0 ) ) : QStringList() ) ).toStringList() ); + bool useEstimatedMetadata( settings.value( + QStringLiteral( "%1/estimatedMetadata" ).arg( basekey ), + false + ).toBool() ); + uri.setUseEstimatedMetadata( useEstimatedMetadata ); + QStringList cols; for ( const auto &col : defPk ) { @@ -353,6 +362,7 @@ QString QgsPGLayerItem::createUri() uri.setWkbType( mLayerProperty.types.at( 0 ) ); if ( uri.wkbType() != QgsWkbTypes::NoGeometry && mLayerProperty.srids.at( 0 ) != std::numeric_limits::min() ) uri.setSrid( QString::number( mLayerProperty.srids.at( 0 ) ) ); + QgsDebugMsg( QStringLiteral( "layer uri: %1" ).arg( uri.uri( false ) ) ); return uri.uri( false ); }