[mapserver-users] ms7 How to use FILTER

Eichner, Andreas - SID Andreas.Eichner at sid.sachsen.de
Fri Mar 27 01:36:26 PDT 2015


Days ago I voted to keep native filters in MS7 via a processing instruction. It's value is a SQL expression that is ANDed to every query MS builds. The intended use is mainly to build dynamic filters when using MapScript or the C API. This avoids parsing and modifying the DATA statement.
So into DATA goes the main query including subqueries and static WHERE clauses. The FILTER statement contains a MapServer expression either from MAP file, build dynamically by the CGI (e.g. a translated WFS filter) or set via MapScript.

HTH

> -----Ursprüngliche Nachricht-----
> Von: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-
> bounces at lists.osgeo.org] Im Auftrag von Lime, Steve D (MNIT)
> Gesendet: Donnerstag, 26. März 2015 15:56
> An: Steve.Toutant at inspq.qc.ca
> Cc: mapserver-users at lists.osgeo.org
> Betreff: Re: [mapserver-users] ms7 How to use FILTER
> 
> With Postgres I'd use the DATA statement. I don't use Oracle so someone
> else might be in a better position to comment.
> 
> 
> 
> From: Steve.Toutant at inspq.qc.ca [mailto:Steve.Toutant at inspq.qc.ca]
> Sent: Thursday, March 26, 2015 9:27 AM
> To: Lime, Steve D (MNIT)
> Cc: mapserver-users at lists.osgeo.org
> Subject: RE: [mapserver-users] ms7 How to use FILTER
> 
> 
> 
> Thanks Steve, yes it helps!
> 
> If an SQL query is needed, would you suggest to do it in the DATA
> statement as a subquery or use PROCESSING "native_filter=native SQL
> string"
> 
> steve
> 
> 
> 
> "Lime, Steve D (MNIT)" <Steve.Lime at state.mn.us>
> 
> 2015-03-26 10:20
> 
> A
> 
> "Steve.Toutant at inspq.qc.ca" <Steve.Toutant at inspq.qc.ca>, "mapserver-
> users at lists.osgeo.org" <mapserver-users at lists.osgeo.org>
> 
> cc
> 
> 
> Objet
> 
> RE: [mapserver-users] ms7 How to use FILTER
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> MapServer FILTERs are now only written using MapServer expression syntax
> (e.g. ("[someitem]" != "someval")). Drivers can support translation
> capabilities to create native SQL under the hood. This was done to
> standardize the syntax across all drivers. Prior to 7.0 the syntax varied
> by driver. In addition, FILTER values are preserved when used with WFS or
> native MapServer attribute queries.
> 
> With database backends there has been little reason to use FILTERs since
> you could often just extend the DATA statement.
> 
> Note that if need to you can still define a native SQL independently of
> the DATA statement using the processing tag "native_filter", for example:
> 
>   PROCESSING "native_filter=native SQL string"
> 
> This is also preserved with WFS. Does this help?
> 
> Steve
> 
> From: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-
> bounces at lists.osgeo.org <mailto:mapserver-users-bounces at lists.osgeo.org> ]
> On Behalf Of Steve.Toutant at inspq.qc.ca
> Sent: Thursday, March 26, 2015 8:20 AM
> To: mapserver-users at lists.osgeo.org
> Subject: [mapserver-users] ms7 How to use FILTER
> 
> I'm confused on how to use FILTER when datasource is postgis or Oracle
> Spatial (Native Connection)
> 
> In an old thread, I was told to not use FILTER, but use a WHERE clause in
> the Data statement.
> In the ms7 Mapfile-Layer-Data doc, I see for Oracle
> "Note that there are important performance impacts when using spatial
> subqueries however. Try using MapServer's FILTER
> <http://mapserver.org/mapfile/layer.html#filter>  whenever possible
> instead."
> 
> I remember I had a bug with MS6 when using FILTER using WFS. A getfeature
> on the layer with a spatial or logical filter, the FILTEr in the mapfile
> was overwritten.
> 
> Please, how should we define/use FILTER int a mapfile with postgis and
> also oracle (using native connection, not ogr)?
> 
> THANKS!
> 
> 



More information about the mapserver-users mailing list