Joel Odom wrote:
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.
Joel,
Yes, I think you are right. I imagine this:
this->pszQuery = CPLStrdup( pszQuery );
should be replaced with:
if( pszQuery )
this->pszQuery = CPLStrdup(pszQuery);
else
this->pszQuery = NULL;
Could you file a ticket on this issue at http://trac.osgeo.org/gdal?
Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmer...@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Programmer for Rent
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev