[gdal-dev] Clearing OGR Attribute Filter on ESRI Personal Geodatabase

Joel Odom joelodom at gmail.com
Fri Jul 30 07:37:40 EDT 2010


I'm encountering an issue where once I've set an attribute filter on an ESRI
personal geodatabase, I cannot clear that filter.  If I pass NULL to
SetAttributeFilter, the filter is internally set to "", which makes future
queries return zero results instead of all rows.  Examining the personal
geodatabase driver code, I find:

OGRErr OGRPGeoTableLayer::SetAttributeFilter( const char *pszQuery )
{
    if( (pszQuery == NULL && this->pszQuery == NULL)
        || (pszQuery != NULL && this->pszQuery != NULL
            && EQUAL(pszQuery,this->pszQuery)) )
        return OGRERR_NONE;

    CPLFree( this->pszQuery );
    this->pszQuery = CPLStrdup( pszQuery );

    ClearStatement();

    return OGRERR_NONE;
}

Around the line, "this->pszQuery = CPLStrdup( pszQuery );" should there be
an additional bit of logic that sets this->pszQuery to NULL if pszQuery is
NULL?  I've searched this mailing list and find no reference to this.  Is
there a possible work around?  Thanks.



-- 
http://www.operationliberate.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20100730/ede8ace8/attachment.html


More information about the gdal-dev mailing list