Opened 15 years ago

Last modified 14 years ago

#2889 reopened defect

SLD: always try to set the FILTER element of a Layer

Reported by: assefa Owned by: assefa
Priority: normal Milestone: 6.0 release
Component: WMS Server Version: unspecified
Severity: critical Keywords: wms sld filter
Cc: bartvde@…

Description

Reported initially by Bart,

I am tracking down a problem with an SLD on an Oracle layer where Mapserver does the evaluation of the Filter using classes instead of setting a FILTER on the layer. The SLD Filter is a simple PropertyIsEqualTo on the primary key.

I wonder about the following part of mapogcsld.c (line 683 in trunk):

if (FLTHasSpatialFilter(psNode))

psLayer->layerinfo = (void *)psNode;

Why is this only done when there is a spatial filter? If I comment out this line, all goes well and the FILTER is set.

Change History (6)

comment:1 by assefa, 15 years ago

Cc: bartvde@… added
Resolution: fixed
Status: newclosed

committed in r8549

comment:2 by assefa, 15 years ago

Resolution: fixed
Status: closedreopened

I found that this change would have an effect when several rules are defined in the same sld and that each rule try to set the FILTER element of the layer. In this particular case, we should not try to set the FILTER element. Need to recheck this before 5.4

comment:3 by assefa, 15 years ago

Severity: normalcritical

comment:4 by bartvde, 15 years ago

Assefa, that makes sense, but we can't combine them with ORs in the FILTER?

comment:5 by assefa, 15 years ago

yes we should. I reopened so that I can address it before the 5.4 release

comment:6 by assefa, 14 years ago

Milestone: 5.6 release6.0 release
Note: See TracTickets for help on using tickets.