[Geoserver-devel] Sending Filters down to Datastore (WMS/Style)

I've upgraded the StreamingRenderer so that it smarter about sending <Filter> in the datastore. Jessie did the original work, I just generalized it a bit.

You can set a renderer hint "maxFiltersToSendToDatastore" (Integer) to limit the number of Filters that get sent to the datastore. The default is currently 5.

For access to postgis datastore (or any DB datastore) this tends to do quite well in speeding things up if you're not going to be rendering all your rows.

dave

David:

Forgive my ignorance, but this sounds like work directly related to
http://jira.codehaus.org/browse/GEOS-529, correct?

If so, this is outstanding.

Alex

On 4/12/06, David Blasby <dblasby@...13...> wrote:

I've upgraded the StreamingRenderer so that it smarter about sending
<Filter> in the datastore. Jessie did the original work, I just
generalized it a bit.

You can set a renderer hint "maxFiltersToSendToDatastore" (Integer) to
limit the number of Filters that get sent to the datastore. The default
is currently 5.

For access to postgis datastore (or any DB datastore) this tends to do
quite well in speeding things up if you're not going to be rendering all
your rows.

dave

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Alexander Petkov wrote:

David:

Forgive my ignorance, but this sounds like work directly related to
http://jira.codehaus.org/browse/GEOS-529, correct?

If so, this is outstanding.

Its not quite this, its just sending the Filter's inside Rule down to the datastore. The Filter/Rules are defined in the SLD, not in the request.

NOTE: if you make an SLD-POST request, then those Fitlers will be sent down to the datastore.

dave

David Blasby wrote:

Alexander Petkov wrote:

David:

Forgive my ignorance, but this sounds like work directly related to
http://jira.codehaus.org/browse/GEOS-529, correct?

If so, this is outstanding.

Its not quite this, its just sending the Filter's inside Rule down to the datastore. The Filter/Rules are defined in the SLD, not in the request.

NOTE: if you make an SLD-POST request, then those Fitlers will be sent down to the datastore.

Good stuff Dave!

NB You can also put an SLD in the WMS GET request using the SLD_BODY parameter. This actually gives you all the functionality of an inline filter, with additional capability to determine which properties you want to style on and conditional styleing rules. So, in that sens I believe it does potentially supercede

http://jira.codehaus.org/browse/GEOS-529

.

Q? just for interest, how smart is it? if for example you have two clauses (A AND B), (A AND C) will it send

(A AND B) or (A AND C)
A
or
A AND (B OR C)

(A AND B)....process... then ... (A AND C)

to the datastore ?

dave

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Q? just for interest, how smart is it? if for example you have two clauses (A AND B), (A AND C) will it send

(A AND B) or (A AND C)
A
or
A AND (B OR C)

(A AND B)....process... then ... (A AND C)

its dumb - it just sends "(A AND B) or (A AND C)" to the datastore.

NOTE: your database is probably smarter at optimizing this than geotools will be (geotools doesnt have statistical data).

dave

David Blasby wrote:

Q? just for interest, how smart is it? if for example you have two clauses (A AND B), (A AND C) will it send

(A AND B) or (A AND C)
A
or
A AND (B OR C)

(A AND B)....process... then ... (A AND C)

its dumb - it just sends "(A AND B) or (A AND C)" to the datastore.

NOTE: your database is probably smarter at optimizing this than geotools will be (geotools doesnt have statistical data).

Absolutely right. This does suggest that we should prioritise unit tests of the data store implmentations to handle such filters though :slight_smile:

dave