MS RFC 125: Support for CONNECTIONOPTIONS in mapfiles¶
- Date:
- 2019-09-30 
- Author:
- Even Rouault 
- Contact:
- Status:
- Adopted 
- Last update:
- 2019-10-10 
- Version:
- MapServer 8.0 
Overview¶
Since GDAL 2.0, GDAL/OGR raster and vector drivers can accept open options, that control certain aspects of te behaviour of the drivers. Those options are driver specific, and can be specified with the GDALOpenEx() C API. Currently, MapServer has no straightforward way of specifying such options, and people have to fallback to workarounds such as using a GDAL or OGR .vrt file, in which they embed the open option(s).
Proposed solution¶
A CONNECTIONOPTIONS keyword is added as a child of the LAYER object in MapFile syntax and defines a new block that must be ended with END. It can accept a sequence of "KEY" "VALUE" open options. This syntax is similar to the METADATA block.
Example¶
LAYER
    NAME "test"
    CONNECTIONTYPE OGR
    CONNECTION "./data/nested_attrs.geojson"
    CONNECTIONOPTIONS
        "FLATTEN_NESTED_ATTRIBUTES" "YES"
    END
    [...]
END
Implementation Details¶
The following files are modified:
- mapfile.c: load and serialize CONNECTIONOPTIONS 
- mapfile.h: define a value for CONNECTIONOPTIONS 
- mapgdal.c: add msGetStringListFromHashTable() to transform a hash table in a char** list expected by GDAL 
- maplexer.l: modified to recognize CONNECTIONOPTIONS 
- mapogr.cpp: use CONNECTIONOPTIONS when opening a vector dataset 
- mapraster.c: use CONNECTIONOPTIONS when opening a raster dataset 
- maprasterquery.c: use CONNECTIONOPTIONS when opening a raster dataset 
- mapserver.h: layerObj structure extended to hold a hashTableObj connectionoptions 
- mapuvraster.c: use CONNECTIONOPTIONS when opening a raster dataset 
- mapwcs.c: use CONNECTIONOPTIONS when opening a raster dataset 
- mapwcs20.c: use CONNECTIONOPTIONS when opening a raster dataset 
The following files are added:
- msautotest/gdal/connectionoptions.map: test CONNECTIONOPTIONS for raster 
- msautotest/wxs/ogr_connectionoptions.map: test CONNECTIONOPTIONS for vetor 
- msautotest/wxs/expected/ogr_connectionoptions.xml: test data 
- msautotest/wxs/data/nested_attrs.geojson: expected result 
Limitations¶
Current implementation is limited to the GDAL and OGR drivers. But CONNECTIONOPTIONS could be used by other datasource backends.
Backwards Compatibility Issues¶
None.
Security implications¶
None.
Performance implications¶
None.
Documentation needs¶
The documentation page of the LAYER object will be extended to document CONNECTIONOPTIONS.
Ticket ID and references¶
Pull request available at: https://github.com/MapServer/MapServer/pull/5883
Voting history¶
+1 from PSC members Even Rouault, Tom Kralidis, Mickael Smith, Seth Girvin, Daniel Morissette, Steve Lime and Jukka Rahkonen.
Credits¶
Thanks to funding from the French Ministry of Defense.









 
        
          
            



