Skip to content

Commit 8b51c58

Browse files
committedMar 10, 2019
[browser] Fix addition of PostGIS layers with unknown CRS
When a PostGIS table does not have CRS specified (srid == 0) then it was not possible to correctly load it from browser (but it worked from DB manager). The problem was that browser item used negative srid in layer URI, messing up everything. Also fixed the display of srid in tooltip (it says "unknown" rather than showing -2147483648) (cherry picked from commit 6c79fff)
1 parent 6bccc8e commit 8b51c58

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed
 

‎src/providers/postgres/qgspostgresdataitems.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ QString QgsPGLayerItem::createUri()
506506
QgsDataSourceUri uri( QgsPostgresConn::connUri( connItem->name() ).connectionInfo( false ) );
507507
uri.setDataSource( mLayerProperty.schemaName, mLayerProperty.tableName, mLayerProperty.geometryColName, mLayerProperty.sql, pkColName );
508508
uri.setWkbType( mLayerProperty.types.at( 0 ) );
509-
if ( uri.wkbType() != QgsWkbTypes::NoGeometry )
509+
if ( uri.wkbType() != QgsWkbTypes::NoGeometry && mLayerProperty.srids.at( 0 ) != std::numeric_limits<int>::min() )
510510
uri.setSrid( QString::number( mLayerProperty.srids.at( 0 ) ) );
511511
QgsDebugMsg( QStringLiteral( "layer uri: %1" ).arg( uri.uri( false ) ) );
512512
return uri.uri( false );
@@ -740,7 +740,12 @@ QgsPGLayerItem *QgsPGSchemaItem::createLayer( QgsPostgresLayerProperty layerProp
740740
tip = tr( "Table" );
741741
}
742742
QgsWkbTypes::Type wkbType = layerProperty.types.at( 0 );
743-
tip += tr( "\n%1 as %2 in %3" ).arg( layerProperty.geometryColName, QgsPostgresConn::displayStringForWkbType( wkbType ) ).arg( layerProperty.srids.at( 0 ) );
743+
tip += tr( "\n%1 as %2" ).arg( layerProperty.geometryColName, QgsPostgresConn::displayStringForWkbType( wkbType ) );
744+
if ( layerProperty.srids.at( 0 ) != std::numeric_limits<int>::min() )
745+
tip += tr( " (srid %1)" ).arg( layerProperty.srids.at( 0 ) );
746+
else
747+
tip += tr( " (unknown srid)" );
748+
744749
if ( !layerProperty.tableComment.isEmpty() )
745750
{
746751
tip = layerProperty.tableComment + '\n' + tip;

0 commit comments

Comments
 (0)
Please sign in to comment.