Robert Sanson wrote:
Hi Frank
I have an OpenLayers / Mapserver system, where some of the data comes from a SQL-Server database via OGR. Trying to understand where a FILTER condition is applied. Here is a snippet from my Mapfile: LAYER
  # name of layer
  NAME "apiariestm"
  TYPE POINT
  UNITS METERS
  # actual data pointer
  CONNECTION "./apiariestm.ovf"
  CONNECTIONTYPE OGR
  DATA "apiariestm"
  FILTER "WHERE apiary_id = '%apiaryid%'"
  STATUS ON
Here is the OGR .ovf file: <OGRVRTDataSource>
        <OGRVRTLayer name="apiariestm">
        <SrcDataSource>ODBC:user/pas...@apiary</SrcDataSource>
        <SrcLayer>vw_ogr_apiary_layer</SrcLayer>
        <GeometryType>wkbPoint</GeometryType>
        <LayerSRS>EPSG:2193</LayerSRS>
        <GeometryField encoding="PointFromColumns" x="x_nztm" y="y_nztm"/>
        <FID>apiary_id</FID>
        </OGRVRTLayer>
</OGRVRTDataSource>
The SrcLayer is a view. Does the filter get applied at the Mapserver end, i.e. all the points in the map window get retrieved, and then the filter is applied, or does Mapserver send the filter through to OGR?

Robert,

A few (1-4) years ago we modified the OGR connection type to push the filter
into OGR if the filter starts with "WHERE ".  So in your case it should get
pushed all the way through to SQL Server which is where you would want it.

If you can run your map via "shp2img" you could do the following:

set CPL_DEBUG=ON
shp2img -m yourmap -o out.png

and you should see a bunch GDAL/OGR debug output in the terminal, including
(hopefully) the actual SQL statement issued against SQL Server.

Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmer...@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent

_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to