From 925d3179e17bf3e4516ac2037a0ee7d10fc16b66 Mon Sep 17 00:00:00 2001 From: "Juergen E. Fischer" Date: Sat, 25 May 2013 18:53:21 +0200 Subject: [PATCH] postgres provider fixes: - allow selection of rows with srid 0 (fixes #7889) - fix geometry type assignment of geometry less tables - filter out geometry columns with srids < 0 in browser --- src/providers/postgres/qgspgtablemodel.cpp | 2 +- src/providers/postgres/qgspostgresconn.cpp | 2 +- src/providers/postgres/qgspostgresdataitems.cpp | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/providers/postgres/qgspgtablemodel.cpp b/src/providers/postgres/qgspgtablemodel.cpp index 38826763ba07..cb6261c7742a 100644 --- a/src/providers/postgres/qgspgtablemodel.cpp +++ b/src/providers/postgres/qgspgtablemodel.cpp @@ -56,7 +56,7 @@ void QgsPgTableModel::addTableEntry( QgsPostgresLayerProperty layerProperty ) wkbType = QGis::WKBNoGeometry; } - bool selectable = wkbType == QGis::WKBNoGeometry || ( wkbType != QGis::WKBUnknown && srid > 0 ); + bool selectable = wkbType == QGis::WKBNoGeometry || ( wkbType != QGis::WKBUnknown && srid >= 0 ); QStandardItem *schemaNameItem = new QStandardItem( layerProperty.schemaName ); QStandardItem *typeItem = new QStandardItem( iconForWkbType( wkbType ), wkbType == QGis::WKBUnknown ? tr( "Select..." ) : QgsPostgresConn::displayStringForWkbType( wkbType ) ); diff --git a/src/providers/postgres/qgspostgresconn.cpp b/src/providers/postgres/qgspostgresconn.cpp index 621c70575110..b78fcf2e5e4b 100644 --- a/src/providers/postgres/qgspostgresconn.cpp +++ b/src/providers/postgres/qgspostgresconn.cpp @@ -571,7 +571,7 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP QgsDebugMsg( QString( "%1.%2: %3" ).arg( schema ).arg( table ).arg( relkind ) ); - layerProperty.types = QList() << QGis::WKBUnknown; + layerProperty.types = QList() << QGis::WKBNoGeometry; layerProperty.srids = QList() << -1; layerProperty.schemaName = schema; layerProperty.tableName = table; diff --git a/src/providers/postgres/qgspostgresdataitems.cpp b/src/providers/postgres/qgspostgresdataitems.cpp index 910aecf5c963..bdd23331b2ea 100644 --- a/src/providers/postgres/qgspostgresdataitems.cpp +++ b/src/providers/postgres/qgspostgresdataitems.cpp @@ -123,7 +123,8 @@ void QgsPGConnectionItem::setLayerType( QgsPostgresLayerProperty layerProperties { QgsPostgresLayerProperty layerProperty = layerProperties.at( i ); - if ( layerProperty.types[0] == QGis::WKBUnknown && !layerProperty.geometryColName.isEmpty() ) + if ( layerProperty.types[0] == QGis::WKBUnknown || + (!layerProperty.geometryColName.isEmpty() && layerProperty.srids[0] < 0 ) ) continue; if ( !schemaItem )