#3706 closed defect (fixed)
Clearing OGR Attribute Filter on ESRI Personal Geodatabase
Reported by: | joelodom | Owned by: | Even Rouault |
---|---|---|---|
Priority: | normal | Milestone: | 1.7.3 |
Component: | OGR_SF | Version: | 1.7.2 |
Severity: | normal | Keywords: | pgeo |
Cc: | joelodom |
Description
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 );
there should there be an additional bit of logic that sets this->pszQuery to NULL if pszQuery is NULL. For example,
this->pszQuery = pszQuery ? CPLStrdup( pszQuery ) : 0;
Change History (4)
comment:1 by , 14 years ago
Cc: | added |
---|
comment:2 by , 14 years ago
Owner: | changed from | to
---|
comment:3 by , 14 years ago
Keywords: | pgeo added |
---|---|
Milestone: | 1.8.0 → 1.7.3 |
Resolution: | → fixed |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Fixed in trunk (r20190) and in branches/1.7 (r20191). Thanks