Opened 13 years ago

Last modified 13 years ago

#3613 assigned defect

Implementation of RFC 64 - Parser Overhaul

Reported by: sdlime Owned by: sdlime
Priority: normal Milestone:
Component: Documentation - MapServer Version: unspecified
Severity: normal Keywords:
Cc: assefa, jmckenna, havatv

Description

This is a ticket to track the implementation of RFC 64, a major overhaul of the MapServer expression parser.

Steve

Change History (13)

comment:1 by sdlime, 13 years ago

Cc: assefa added

Initial merge done with r10792. Assefa needs to merge his WXS modifications and I still have the following tasks:

  • context expressions (e.g. requires/labelrequires)
  • raster expressions
  • GEOMTRANSFORM writing

Steve

comment:2 by sdlime, 13 years ago

FYI... r10793 contains a couple of file changes I missed with r10792.

comment:3 by sdlime, 13 years ago

Status: newassigned

comment:4 by jmckenna, 13 years ago

Cc: jmckenna added

comment:5 by sdlime, 13 years ago

Nuts, I forgot to merge the query changes (new method) with that original batch. r10827 and r10828 contain those changes. Basically this adds msQueryByFilter() to mapquery.c and exposes it (mostly for testing) via SWIG MapScript as queryByFilter for map and layer objects.

Steve

comment:6 by assefa, 13 years ago

merge for the filter encoding done on r10916 and r10917

comment:7 by assefa, 13 years ago

Steve,

what operators should I use for case insensitve filter requests for Equal and isLike? I use now == for PropertyIsEqualTo and ~* for PropertyIsLike

Thx

in reply to:  7 comment:8 by sdlime, 13 years ago

Replying to assefa:

Steve,

what operators should I use for case insensitve filter requests for Equal and isLike? I use now == for PropertyIsEqualTo and ~* for PropertyIsLike

Thx

For use =* for is PropertyIsEqualTo and ~* PropertyIsLike. The * signals the case-insensitive comparison. Note the ~ is a regex operator... Make sense?

Steve

comment:9 by assefa, 13 years ago

Steve I am not I understand since my tests do not work for PropertyIsLike case sensitive

PropertyIsEqualTo works as expected with the following settings:

"[Attribue]" =* "value"  /*for case insenstive*/
"[Attribue]" == "value"  /*for case senstive*/

For PropertyIsLike I tried to set the filters like this

"[Attribue]" ~* "value-regex"  /*for case insensitive*/: works
"[Attribue]" =~ "value-regex"  /*for case sensitive*/ : does not work

Note that the by "value-regex", I mean that things like wild card '*', ... are included in it. What is the operator I need to use for case sensitive?

comment:10 by sdlime, 13 years ago

Use =, ~ to do case sensitive (== works but is deprecated in my mind). Use =*, ~* to do case insensitive.

Steve

comment:11 by assefa, 13 years ago

Thanks. It works. committed in r10918

comment:12 by sdlime, 13 years ago

Component: MapServer C LibraryMapServer Documentation

Moving this to documentation. Need to figure out how best to do that... -Steve

comment:13 by havatv, 13 years ago

Cc: havatv added

I have been doing some updates to the expression document, and also to related documents (in r11858, r11889, r11895, r11973, r11974). It would be good if Steve could have a look and say what remains to be done before we can close this ticket.

Note: See TracTickets for help on using tickets.