Skip to content

Commit 9ed98a0

Browse files
committed
postgres provider: restore behaviour to keep 3d wkb (refs #9651,
followup bd311c8)
1 parent bd311c8 commit 9ed98a0

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/providers/postgres/qgspostgresconn.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -454,13 +454,15 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
454454
srid = INT_MIN;
455455
}
456456

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" )
458459
.arg( gtableName )
459460
.arg( schemaName ).arg( tableName ).arg( column )
460461
.arg( type )
461462
.arg( srid )
462463
.arg( relkind )
463-
.arg( dim ) );*/
464+
.arg( dim ) );
465+
#endif
464466

465467
layerProperty.schemaName = schemaName;
466468
layerProperty.tableName = tableName;
@@ -470,11 +472,11 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
470472
layerProperty.srids = QList<int>() << srid;
471473
layerProperty.sql = "";
472474
/*
473-
* NOTE: force2d may get a false negative value
475+
* force2d may get a false negative value
474476
* (dim == 2 but is not really constrained)
475477
* http://trac.osgeo.org/postgis/ticket/3068
476478
*/
477-
layerProperty.force2d = dim > 2;
479+
layerProperty.force2d = dim > 3;
478480
addColumnInfo( layerProperty, schemaName, tableName, isView );
479481

480482
if ( isView && layerProperty.pkCols.empty() )
@@ -1303,10 +1305,9 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
13031305
query += QString::number( srid );
13041306
}
13051307

1306-
if ( ! layerProperty.force2d )
1308+
if ( !layerProperty.force2d )
13071309
{
1308-
query += ",";
1309-
query += QString( "%1(%2%3)" )
1310+
query += QString( ",%1(%2%3)" )
13101311
.arg( majorVersion() < 2 ? "ndims" : "st_ndims" )
13111312
.arg( quotedIdentifier( layerProperty.geometryColName ) )
13121313
.arg( layerProperty.geometryColType == sctGeography ? "::geometry" : "" );
@@ -1325,10 +1326,9 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
13251326
QString type = gresult.PQgetvalue( i, 0 );
13261327
QString srid = gresult.PQgetvalue( i, 1 );
13271328

1328-
if ( ! layerProperty.force2d )
1329+
if ( !layerProperty.force2d && gresult.PQgetvalue( i, 2 ).toInt() > 3 )
13291330
{
1330-
QString ndims = gresult.PQgetvalue( i, 2 );
1331-
if ( ndims.toInt() > 2 ) layerProperty.force2d = true;
1331+
layerProperty.force2d = true;
13321332
}
13331333

13341334
if ( type.isEmpty() )

0 commit comments

Comments
 (0)