@@ -95,6 +95,8 @@ class QgsCPLErrorHandler
95
95
}
96
96
};
97
97
98
+ static const QByteArray ORIG_OGC_FID = " orig_ogc_fid" ;
99
+
98
100
99
101
bool QgsOgrProvider::convertField( QgsField &field, const QTextCodec &encoding )
100
102
{
@@ -1031,7 +1033,7 @@ void QgsOgrProviderUtils::setRelevantFields( OGRLayerH ogrLayer, int fieldCount,
1031
1033
{
1032
1034
// add to ignored fields
1033
1035
const char *fieldName = OGR_Fld_GetNameRef ( OGR_FD_GetFieldDefn ( featDefn, firstAttrIsFid ? i - 1 : i ) );
1034
- if ( qstrcmp ( fieldName, " orig_ogc_fid " ) != 0 )
1036
+ if ( qstrcmp ( fieldName, ORIG_OGC_FID ) != 0 )
1035
1037
{
1036
1038
ignoredFields.append ( fieldName );
1037
1039
}
@@ -3470,15 +3472,15 @@ OGRLayerH QgsOgrProviderUtils::setSubsetString( OGRLayerH layer, OGRDataSourceH
3470
3472
fidColumn = " FID" ;
3471
3473
}
3472
3474
3473
- QByteArray sql = sqlPart1 + " , " + fidColumn + " as orig_ogc_fid " + sqlPart3;
3475
+ QByteArray sql = sqlPart1 + " , " + fidColumn + " as " + ORIG_OGC_FID + sqlPart3;
3474
3476
QgsDebugMsg ( QString ( " SQL: %1" ).arg ( encoding->toUnicode ( sql ) ) );
3475
3477
subsetLayer = GDALDatasetExecuteSQL ( ds, sql.constData (), nullptr , nullptr );
3476
3478
3477
3479
// See https://lists.osgeo.org/pipermail/qgis-developer/2017-September/049802.html
3478
3480
// If execute SQL fails because it did not find the fidColumn, retry with hardcoded FID
3479
3481
if ( !subsetLayer )
3480
3482
{
3481
- QByteArray sql = sqlPart1 + " , " + " FID as orig_ogc_fid " + sqlPart3;
3483
+ QByteArray sql = sqlPart1 + " , " + " FID as " + ORIG_OGC_FID + sqlPart3;
3482
3484
QgsDebugMsg ( QString ( " SQL: %1" ).arg ( encoding->toUnicode ( sql ) ) );
3483
3485
subsetLayer = GDALDatasetExecuteSQL ( ds, sql.constData (), nullptr , nullptr );
3484
3486
}
@@ -3500,7 +3502,7 @@ OGRLayerH QgsOgrProviderUtils::setSubsetString( OGRLayerH layer, OGRDataSourceH
3500
3502
if ( fieldCount > 0 )
3501
3503
{
3502
3504
OGRFieldDefnH fldDef = OGR_FD_GetFieldDefn ( fdef, fieldCount - 1 );
3503
- origFidAdded = qstrcmp ( OGR_Fld_GetNameRef ( fldDef ), " orig_ogc_fid " ) == 0 ;
3505
+ origFidAdded = qstrcmp ( OGR_Fld_GetNameRef ( fldDef ), ORIG_OGC_FID ) == 0 ;
3504
3506
}
3505
3507
}
3506
3508
0 commit comments