[mapserver-dev] [performance] mapserver list expressions

Daniel Morissette dmorissette at mapgears.com
Thu Apr 4 10:21:08 PDT 2013


Thank you!

BTW, will string delimiters be honoured inside the list expression? e.g.

LAYER
    ...
    CLASSITEM "type"
    CLASS
      EXPRESSION {"a","b","a,b","4,500"}
      ...
    END
END



On 13-04-04 12:39 PM, thomas bonfort wrote:
> Daniel,
>
> done:
> https://github.com/mapserver/docs/blob/branch-6-2/en/development/rfc/ms-rfc-95.txt
> (will appear on the website shortly)
>
> I don't think it's worth calling for a new vote on the actual RFC, this
> email thread should suffice.
>
> regards,
> thomas
>
>
>
> On 4 April 2013 16:18, Daniel Morissette <dmorissette at mapgears.com
> <mailto:dmorissette at mapgears.com>> wrote:
>
>     +1 on the addition.
>
>     Bonus points if we could get a simple RFC to document and keep a
>     trace of the addition. The contents of this email with a tiny bit of
>     editing might be enough, it's just that having it in a RFC would be
>     easier than looking for it in a ticket or the list archives, and
>     would allow us to refer to this RFC as a one of the new features at
>     release time.
>
>     My 0.02$
>
>     Daniel
>
>
>
>     On 13-04-03 11:16 AM, thomas bonfort wrote:
>
>         While profiling the openstreetmap renderings, I found a
>         relatively low
>         hanging performance speedup related to expressions when doing class
>         filtering. The context relates to when you'd need to apply a
>         given CLASS
>         to multiple attribute values.
>         Currently, to apply a single class to multiple values of an
>         attribute,
>         you can either use regular expressions, or use the IN operator,
>         like this:
>
>         LAYER
>             ...
>             CLASSITEM "type"
>             CLASS
>               EXPRESSION /primary|secondary|tertiary/  #regular
>         expression on
>         CLASSITEM
>               EXPRESSION ("[type]" IN "primary,secondary,tertiary")
>         #"complex"
>         parser expression
>               ...
>             END
>         END
>
>         Both methods require quite a bit of overhead, either in the
>         regex system
>         calls, or by using quite a few mallocs when going through the IN
>         parser
>         operation.
>
>         We can cut down on this overhead by adding a "list" expression type,
>         denoted by the { } delimiters, where the previous layer
>         definition becomes:
>
>            LAYER
>             ...
>             CLASSITEM "type"
>             CLASS
>               EXPRESSION {primary,secondary,tertiary}
>               ...
>             END
>         END
>
>         The modifications to the code are fairly straightforward, and no
>         backwards incompatibilities are expected as this is a new
>         functionality
>         that does not collide with previous mapserver expressions.
>         The changes can be seen here:
>         https://github.com/tbonfort/__mapserver/commit/__fae435d17b099485ab6792bfae3a7d__8dd8992b4c
>         <https://github.com/tbonfort/mapserver/commit/fae435d17b099485ab6792bfae3a7d8dd8992b4c>
>         . (you can ignore the changes to mapparser.*, they correct a bug
>         in the
>         IN parser and aren't related to the list operator)
>
>         Our parser guru is OK with these changes, so I would like to vote to
>         include this new expression for our 6.4 release.
>
>         I'll start with my +1
>
>         best regards,
>         thomas
>
>
>         _________________________________________________
>         mapserver-dev mailing list
>         mapserver-dev at lists.osgeo.org <mailto:mapserver-dev at lists.osgeo.org>
>         http://lists.osgeo.org/__mailman/listinfo/mapserver-dev
>         <http://lists.osgeo.org/mailman/listinfo/mapserver-dev>
>
>
>
>     --
>     Daniel Morissette
>     http://www.mapgears.com/
>     Provider of Professional MapServer Support since 2000
>
>
>     _________________________________________________
>     mapserver-dev mailing list
>     mapserver-dev at lists.osgeo.org <mailto:mapserver-dev at lists.osgeo.org>
>     http://lists.osgeo.org/__mailman/listinfo/mapserver-dev
>     <http://lists.osgeo.org/mailman/listinfo/mapserver-dev>
>
>
>
>
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>


-- 
Daniel Morissette
http://www.mapgears.com/
Provider of Professional MapServer Support since 2000



More information about the mapserver-dev mailing list