[gdal-dev] OGR FileGDB driver: 'OBJECTID' not recognised as an available field

Tamas Szekeres szekerest at gmail.com
Wed Sep 4 13:13:40 PDT 2019


It looks like  the sql queries with -dialect "OGRSQL" doesn't seem to work
as expected. When I specify the FID in the where clause, it doesn't filter
anything. The same query is also described as a solution in the following
ticket https://trac.osgeo.org/gdal/ticket/4253 but I doubt if that works at

The code causing this problem is fairly generic (ogr_gensql.cpp)

if( psSelectInfo->where_expr && pszDialect != nullptr &&
            EQUAL(pszDialect, "OGRSQL") )
            int nMinIndexForSpecialField =
            bForwardWhereToSourceLayer =
        if (bForwardWhereToSourceLayer)
            pszWHERE = CPLStrdup(pszWHEREIn);
            pszWHERE = nullptr;

In the "where" expression, the FID field is thanslated to OBJECTID and it
is now treated as a special field, therefore the "where" expression is not
being passed to the driver.

I'm also unsure if that is a correct action to omit passing "where" to the
layer instead of providing an error message.

Is this a bug that should be fixed, or the OGRSQL dialect is considered as
unsupported with OpenFileGDB?

Best regards,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20190904/8038f557/attachment.html>

More information about the gdal-dev mailing list