WFS GET bbox support builds unencodable filters
------------------------------------------------
Key: GEOS-809
URL: http://jira.codehaus.org/browse/GEOS-809
Project: GeoServer
Issue Type: Bug
Components: WFS
Affects Versions: 1.4.0-RC3, 1.3.4
Reporter: Andrea Aime
Assigned To: Andrea Aime
Fix For: 1.5.0-beta1
WFS GET request can use the BBOX parameter to express a filter on data.
The WfsKvpRequestReader.readFilters method builds a geometry filter where the left value is a null expression, hoping that encoders will turn that filter into a intersection against the default geometry (there's a comment stating so in the code).
What happens instead is that PostPreProcessFilterSplittingVisitor puts every filter that has a null left or right expression into the post filter stack, thus making the query run against the full table and having an in memory post filter handle it (and boy this is slow!)
The GeometryFilter interface does not state any contract about the handling of null expressions, and falling back on the default geometry is just implemented, but not even commented, in the GeometryFilterImpl, so I don't think we can rely on such a behaviour.
Yet, when we do build the bbox filter we don't always have the feature type at hand, so doing it properly is not easy, neither. Quite a few changes have to be performed in all WFS GET handlers in order to do the right thing, that is, getting the schema, extracting the default geometry attribute, and use it to build a proper filter.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira