@@ -454,13 +454,15 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
454
454
srid = INT_MIN;
455
455
}
456
456
457
- /* QgsDebugMsg( QString( "%1 : %2.%3.%4: %5 %6 %7 %8" )
457
+ #if 0
458
+ QgsDebugMsg( QString( "%1 : %2.%3.%4: %5 %6 %7 %8" )
458
459
.arg( gtableName )
459
460
.arg( schemaName ).arg( tableName ).arg( column )
460
461
.arg( type )
461
462
.arg( srid )
462
463
.arg( relkind )
463
- .arg( dim ) );*/
464
+ .arg( dim ) );
465
+ #endif
464
466
465
467
layerProperty.schemaName = schemaName;
466
468
layerProperty.tableName = tableName;
@@ -470,11 +472,11 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
470
472
layerProperty.srids = QList<int >() << srid;
471
473
layerProperty.sql = " " ;
472
474
/*
473
- * NOTE: force2d may get a false negative value
475
+ * force2d may get a false negative value
474
476
* (dim == 2 but is not really constrained)
475
477
* http://trac.osgeo.org/postgis/ticket/3068
476
478
*/
477
- layerProperty.force2d = dim > 2 ;
479
+ layerProperty.force2d = dim > 3 ;
478
480
addColumnInfo ( layerProperty, schemaName, tableName, isView );
479
481
480
482
if ( isView && layerProperty.pkCols .empty () )
@@ -1303,10 +1305,9 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
1303
1305
query += QString::number ( srid );
1304
1306
}
1305
1307
1306
- if ( ! layerProperty.force2d )
1308
+ if ( !layerProperty.force2d )
1307
1309
{
1308
- query += " ," ;
1309
- query += QString ( " %1(%2%3)" )
1310
+ query += QString ( " ,%1(%2%3)" )
1310
1311
.arg ( majorVersion () < 2 ? " ndims" : " st_ndims" )
1311
1312
.arg ( quotedIdentifier ( layerProperty.geometryColName ) )
1312
1313
.arg ( layerProperty.geometryColType == sctGeography ? " ::geometry" : " " );
@@ -1325,10 +1326,9 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
1325
1326
QString type = gresult.PQgetvalue ( i, 0 );
1326
1327
QString srid = gresult.PQgetvalue ( i, 1 );
1327
1328
1328
- if ( ! layerProperty.force2d )
1329
+ if ( !layerProperty.force2d && gresult. PQgetvalue ( i, 2 ). toInt () > 3 )
1329
1330
{
1330
- QString ndims = gresult.PQgetvalue ( i, 2 );
1331
- if ( ndims.toInt () > 2 ) layerProperty.force2d = true ;
1331
+ layerProperty.force2d = true ;
1332
1332
}
1333
1333
1334
1334
if ( type.isEmpty () )
0 commit comments