Skip to content

Commit 3d6554e

Browse files
author
Sandro Santilli
committed
Detect number of dimensions for tables with unconstrained type
Fixes #9748 (cherry picked from commit f512e87)
1 parent ffaa498 commit 3d6554e

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/providers/postgres/qgspostgresconn.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -1298,6 +1298,12 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
12981298
query += QString::number( srid );
12991299
}
13001300

1301+
query += ",";
1302+
query += QString( "%1(%2%3)" )
1303+
.arg( majorVersion() < 2 ? "ndims" : "st_ndims" )
1304+
.arg( quotedIdentifier( layerProperty.geometryColName ) )
1305+
.arg( layerProperty.geometryColType == sctGeography ? "::geometry" : "" );
1306+
13011307
query += " FROM " + table;
13021308

13031309
//QgsDebugMsg( "Retrieving geometry types: " + query );
@@ -1310,6 +1316,10 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
13101316
{
13111317
QString type = gresult.PQgetvalue( i, 0 );
13121318
QString srid = gresult.PQgetvalue( i, 1 );
1319+
QString ndims = gresult.PQgetvalue( i, 2 );
1320+
1321+
if ( ndims.toInt() > 2 ) layerProperty.force2d = true;
1322+
13131323
if ( type.isEmpty() )
13141324
continue;
13151325

0 commit comments

Comments
 (0)