Mauro,

That's actually a very interesting use-case, and not one that I'd though of
before (although it makes a lot of sense!)

I'm not sure that PPPFSV prevents what you're describing from happening,
however.  I think it's more about how the DataStore handles what the PPPFSV
returns.

PPPFSV takes a FilterCapabilities (a description of what sorts of things a
datastore can do DB-side) and a Filter.  It will then split the filter into
two parts:  a 'supported' part and an 'unsupported' part.

What you *do* with the supported and unsupported parts (well, by *you* I
probably me *a datastore*) is up to you.  You could do a cool optimization
like you describe, or you could just do the more-standard (and less
efficient) in-memory split.

One thing that jumps to my mind is this:

FilterCapabilities dbWithSpatialCaps = <filtercapabilities with db-based
spatial operator>
FilterCapabilities dbNoSpatialCaps = <filtercapabilities with NO db-based
spatial operator>

PPPFSV dbSideSplitter = new PPPFSV(dbWithSpatialCaps);
PPPFSV clientSideSplitter = new PPPFSV(dbNoSpatialCaps);

Filter myPartiallySupportedFilter = ...

dbSideSplitter.accept(myPartiallySupportedFilter);
Filter sendThisFilterToDB = dbSideSplitter.getSupported();

clientSideSplitter.accept(myPartiallySupportedFilter);
Filter filterTheResultWithThisFilter = clientSideSplitter.getUnsupported();


But I'm pretty sure this is a DataStore optimization, and not something that
would need to be changed in PPPFSV.

Am I understanding your issue correctly Mauro?  Does what I just wrote make
any sense?

--saul




Mauro Bartolomeoli wrote:
> 
> I recently had the necessity to write an hacked version of the class in 
> the subject.
> My problem was to split a single filter (SpatialBBOX) in 2 parts, one 
> executed one the server (the database): this part returns an approximate 
> (by excess) result, which needs to be filtered again to give the final 
> result: this filter is accomplished by the second part.
> This particular filter then has both a preProcessing and a 
> postProcessing part.
> In the original visitor, a filter can be pre-processed or 
> post-processed, but not both.
> Are there any official plans to support filters that need both pre and 
> post processing?
> 
> Thanks,
> Mauro Bartolomeoli
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Geotools-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
> 
> 

-- 
View this message in context: 
http://www.nabble.com/PostPreProcessFilterSplittingVisitor-and-mixed-situations-tf4315906.html#a12294735
Sent from the geotools-devel mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to