Opened 16 years ago

Closed 15 years ago

#2685 closed defect (fixed)

5.2beta4 breaks simple filters on SDE layers

Reported by: bartvde Owned by: assefa
Priority: normal Milestone: 5.2.1 release
Component: WFS Server Version: unspecified
Severity: normal Keywords:
Cc: jmckenna

Description

Hi list, WFS filters with simple attribute filters are broken in beta4. Btw sorry for taking so long to participate in the beta process, but the person who does our building was on holidays. Even for SDE layers Mapserver now sets the filter in mapogcfilter.c: Line 1047: msLoadExpressionString(&lp->filter, pszBuffer); which causes this. The expression which it is trying to set looks like: ([KM] <= 13) which works for shapefiles but not for SDE. <?xml version='1.0' encoding="ISO-8859-1" ?> <ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org /2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wfs /1.0.0/OGC-exception.xsd">  <ServiceException code="NoApplicableCode" locator="mapserv"> msWFSGetFeature(): WFS server error. FLTApplyFilterToLayer() failed msSDELayerNextShape(): SDE error. SE_stream_fetch(): Underlying DBMS error. (-51) </ServiceException> </ServiceExceptionReport> Best regards, Bart

Attachments (1)

ms_ticket2685.patch (584 bytes ) - added by bartvde 16 years ago.
patch fixing this issue

Download all attachments as: .zip

Change History (9)

by bartvde, 16 years ago

Attachment: ms_ticket2685.patch added

patch fixing this issue

comment:1 by bartvde, 16 years ago

Component: MapServer C LibraryWFS Server
Owner: changed from sdlime to mapserverbugs

comment:2 by jmckenna, 16 years ago

Cc: jmckenna added

comment:3 by aalbarello, 16 years ago

I'd also check for lp->connectiontype == MS_PLUGIN while we're at it. That's most likely needed for this to work with SDO/SDE/MSSQL when plugin libraries are used.

Andreas

comment:4 by assefa, 16 years ago

Owner: changed from mapserverbugs to assefa
Status: newassigned

I was exactly thinking that (the case of MS_PLUGIN ) when I saw the comment. We could possibly parse the plugin value (...msplugin_sde_91.dll) to determine the layer type although I am not sure it would always be safe to do it. What do you think?

comment:5 by aalbarello, 16 years ago

Indeed, using the plugin's name doesn't seem the cleanest thing to do. Best thing of course would be to move this logic entirely into each driver, but that's obviously not possible at this stage. Given the fact though that plugins seem to be available for Oracle Spatial, SDE and MSSQL only (correct me if I'm wrong) I'd say let's just generally check for MS_PLUGIN layers and treat them the same as all the database layers.

Andreas

comment:6 by assefa, 16 years ago

Milestone: 5.2 release

works for me. In that case I will apply the patch provided + lp->connectiontype == MS_PLUGIN if there are no objections.

comment:7 by assefa, 16 years ago

patch committed. Please close after testing. Thx

comment:8 by bartvde, 15 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.