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/
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev