Skip to content

Commit c09af58

Browse files
committedDec 2, 2015
oracle provider: fix geometry type/srid detection for queries
1 parent 7bab2e5 commit c09af58

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
@@ -2221,23 +2221,27 @@ bool QgsOracleProvider::getGeometryDetails()
22212221
if ( detectedType == QGis::WKBUnknown || detectedSrid <= 0 )
22222222
{
22232223
QgsOracleLayerProperty layerProperty;
2224-
layerProperty.ownerName = ownerName;
2225-
layerProperty.tableName = tableName;
2226-
layerProperty.geometryColName = mGeometryColumn;
2227-
layerProperty.types << detectedType;
2228-
layerProperty.srids << detectedSrid;
22292224

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

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

2240-
Q_ASSERT( layerProperty.types.size() == layerProperty.srids.size() );
2243+
Q_ASSERT( layerProperty.types.size() == layerProperty.srids.size() );
2244+
}
22412245

22422246
if ( layerProperty.types.isEmpty() )
22432247
{

0 commit comments

Comments
 (0)
Please sign in to comment.