Skip to content

Commit 2924323

Browse files
jef-nrldhont
authored andcommitted
oracle provider: fix geometry type/srid detection for queries
1 parent 7971d09 commit 2924323

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

src/providers/oracle/ocispatial/qsql_ocispatial.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3075,7 +3075,18 @@ int QOCISpatialResult::numRowsAffected()
30753075
bool QOCISpatialResult::prepare( const QString& query )
30763076
{
30773077
ENTER
3078-
qDebug() << "prepare(" << query << ")";
3078+
3079+
static int sDebugLevel = -1;
3080+
if ( sDebugLevel < 0 )
3081+
{
3082+
if ( getenv( "QGIS_DEBUG" ) )
3083+
sDebugLevel = atoi( getenv( "QGIS_DEBUG" ) );
3084+
else
3085+
sDebugLevel = 0;
3086+
}
3087+
3088+
if ( sDebugLevel >= 4 )
3089+
qDebug() << "prepare(" << query << ")";
30793090

30803091
int r = 0;
30813092
QSqlResult::prepare( query );

src/providers/oracle/qgsoracleprovider.cpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2219,23 +2219,27 @@ bool QgsOracleProvider::getGeometryDetails()
22192219
if ( detectedType == QGis::WKBUnknown || detectedSrid <= 0 )
22202220
{
22212221
QgsOracleLayerProperty layerProperty;
2222-
layerProperty.ownerName = ownerName;
2223-
layerProperty.tableName = tableName;
2224-
layerProperty.geometryColName = mGeometryColumn;
2225-
layerProperty.types << detectedType;
2226-
layerProperty.srids << detectedSrid;
22272222

2228-
QString delim = "";
2229-
2230-
if ( !mSqlWhereClause.isEmpty() )
2223+
if ( !mIsQuery )
22312224
{
2232-
layerProperty.sql += delim + "(" + mSqlWhereClause + ")";
2233-
delim = " AND ";
2234-
}
2225+
layerProperty.ownerName = ownerName;
2226+
layerProperty.tableName = tableName;
2227+
layerProperty.geometryColName = mGeometryColumn;
2228+
layerProperty.types << detectedType;
2229+
layerProperty.srids << detectedSrid;
2230+
2231+
QString delim = "";
22352232

2236-
mConnection->retrieveLayerTypes( layerProperty, mUseEstimatedMetadata, false );
2233+
if ( !mSqlWhereClause.isEmpty() )
2234+
{
2235+
layerProperty.sql += delim + "(" + mSqlWhereClause + ")";
2236+
delim = " AND ";
2237+
}
2238+
2239+
mConnection->retrieveLayerTypes( layerProperty, mUseEstimatedMetadata, false );
22372240

2238-
Q_ASSERT( layerProperty.types.size() == layerProperty.srids.size() );
2241+
Q_ASSERT( layerProperty.types.size() == layerProperty.srids.size() );
2242+
}
22392243

22402244
if ( layerProperty.types.isEmpty() )
22412245
{

0 commit comments

Comments
 (0)