@@ -398,12 +398,8 @@ bool QgsOgrProvider::setSubsetString( QString theSQL, bool updateFeatureCount )
398
398
399
399
if ( !mSubsetString .isEmpty () )
400
400
{
401
- QByteArray sql = " SELECT * FROM " + quotedIdentifier ( OGR_FD_GetName ( OGR_L_GetLayerDefn ( ogrOrigLayer ) ) );
402
- sql += " WHERE " + mEncoding ->fromUnicode ( mSubsetString );
403
-
404
- QgsDebugMsg ( QString ( " SQL: %1" ).arg ( mEncoding ->toUnicode ( sql ) ) );
405
- ogrLayer = OGR_DS_ExecuteSQL ( ogrDataSource, sql.constData (), NULL , NULL );
406
401
402
+ ogrLayer = setSubsetString ( ogrOrigLayer, ogrDataSource );
407
403
if ( !ogrLayer )
408
404
{
409
405
pushError ( tr ( " OGR[%1] error %2: %3" ).arg ( CPLGetLastErrorType () ).arg ( CPLGetLastErrorNo () ).arg ( CPLGetLastErrorMsg () ) );
@@ -2415,6 +2411,26 @@ OGRwkbGeometryType QgsOgrProvider::ogrWkbSingleFlatten( OGRwkbGeometryType type
2415
2411
}
2416
2412
}
2417
2413
2414
+ OGRLayerH QgsOgrProvider::setSubsetString ( OGRLayerH layer, OGRDataSourceH ds )
2415
+ {
2416
+ QByteArray layerName = OGR_FD_GetName ( OGR_L_GetLayerDefn ( layer ) );
2417
+ if ( ogrDriverName == " ODBC" ) // the odbc driver does not like schema names for subset
2418
+ {
2419
+ QString layerNameString = mEncoding ->toUnicode ( layerName );
2420
+ int dotIndex = layerNameString.indexOf ( " ." );
2421
+ if ( dotIndex > 1 )
2422
+ {
2423
+ QString modifiedLayerName = layerNameString.right ( layerNameString.size () - dotIndex - 1 );
2424
+ layerName = mEncoding ->fromUnicode ( modifiedLayerName );
2425
+ }
2426
+ }
2427
+ QByteArray sql = " SELECT * FROM " + quotedIdentifier ( layerName );
2428
+ sql += " WHERE " + mEncoding ->fromUnicode ( mSubsetString );
2429
+
2430
+ QgsDebugMsg ( QString ( " SQL: %1" ).arg ( mEncoding ->toUnicode ( sql ) ) );
2431
+ return OGR_DS_ExecuteSQL ( ds, sql.constData (), NULL , NULL );
2432
+ }
2433
+
2418
2434
// ---------------------------------------------------------------------------
2419
2435
2420
2436
QGISEXTERN QgsVectorLayerImport::ImportError createEmptyLayer (
0 commit comments