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: [email protected] [mailto:mapserver-users- > [email protected]] Im Auftrag von Lime, Steve D (MNIT) > Gesendet: Donnerstag, 26. März 2015 15:56 > An: [email protected] > Cc: [email protected] > 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: [email protected] [mailto:[email protected]] > Sent: Thursday, March 26, 2015 9:27 AM > To: Lime, Steve D (MNIT) > Cc: [email protected] > 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)" <[email protected]> > > 2015-03-26 10:20 > > A > > "[email protected]" <[email protected]>, "mapserver- > [email protected]" <[email protected]> > > 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: [email protected] [mailto:mapserver-users- > [email protected] <mailto:[email protected]> ] > On Behalf Of [email protected] > Sent: Thursday, March 26, 2015 8:20 AM > To: [email protected] > 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! > > _______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
