You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that when using wfs gml:Polygon filter requests, polygon geometry is not passed to Oracle SQL query. Mapserver simply send default layer extent to Oracle. Which significantly increases the response time of Oracle on big layers.
Mapserver should send the polygon geometry (or perhaps the bounding box of the polygon geometry) in the SQL query.
This is a known limitation. The problem is handling more complex queries across the suite of drivers we support. Only a few can handle things natively and even then it's not consistent. Presently WFS queries are transformed into a standard representation (SQL-like tokens) that MapServer itself can handle. What's needed is a next step where drivers can take this and represent it natively. I'm hoping this can happen for the next release but it will be tedious work. I will probably make sense to handle the common use cases like this right away and then bail back to MapServer on the edge cases.
I noticed that when using wfs gml:Polygon filter requests, polygon geometry is not passed to Oracle SQL query. Mapserver simply send default layer extent to Oracle. Which significantly increases the response time of Oracle on big layers.
Mapserver should send the polygon geometry (or perhaps the bounding box of the polygon geometry) in the SQL query.
The following request :
http://myserve/mapserv?map=/mymap.map&version=1.1.0&service=WFS&REQUEST=GetFeature&TYPENAME=ms:mylayer&Filter= Geometrygml:Polygongml:outerBoundaryIsgml:LinearRinggml:coordinates772507,70056 889500,70056 889500,66553 772507,66553 772507,70056/gml:coordinates/gml:LinearRing/gml:outerBoundaryIs/gml:Polygon
Generates the following Oracle query:
SELECT UNIQUE_ID, rownum, GEOM FROM ( SELECT GEOM, UNIQUE_ID FROM MYLAYER ) WHERE SDO_FILTER( GEOM, MDSYS.SDO_GEOMETRY(2003, :srid, NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),:ordinates ),'querytype=window') = 'TRUE'
where ordinates = default extent of the layer
I would be great if Mapserver could send the polygon geometry or the bounding box of the polygon geometry in the SQL query.
The text was updated successfully, but these errors were encountered: