Ticket #2685 (assigned defect)

Opened 2 months ago

Last modified 2 months ago

5.2beta4 breaks simple filters on SDE layers

Reported by: bartvde Assigned to: assefa (accepted)
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

ms_ticket2685.patch (0.6 kB) - added by bartvde on 07/08/08 07:59:00.
patch fixing this issue

Change History

07/08/08 07:59:00 changed by bartvde

  • attachment ms_ticket2685.patch added.

patch fixing this issue

07/08/08 07:59:46 changed by bartvde

  • owner changed from sdlime to mapserverbugs.
  • component changed from MapServer C Library to WFS Server.

07/08/08 09:08:10 changed by jmckenna

  • cc set to jmckenna.

07/08/08 09:30:21 changed by aalbarello

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

07/08/08 09:44:45 changed by assefa

  • status changed from new to assigned.
  • owner changed from mapserverbugs to assefa.

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?

07/08/08 10:18:52 changed by aalbarello

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

07/08/08 10:31:30 changed by assefa

  • milestone set to 5.2 release.

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

07/08/08 16:39:24 changed by assefa

patch committed. Please close after testing. Thx