[mapserver-commits] r12551 - trunk/docs/en/development/rfc
svn at osgeo.org
svn at osgeo.org
Sat Sep 17 17:07:36 EDT 2011
Author: jmckenna
Date: 2011-09-17 14:07:36 -0700 (Sat, 17 Sep 2011)
New Revision: 12551
Added:
trunk/docs/en/development/rfc/ms-rfc-74.txt
Modified:
trunk/docs/en/development/rfc/index.txt
Log:
add Mike's DBINCLUDE rfc doc
Modified: trunk/docs/en/development/rfc/index.txt
===================================================================
--- trunk/docs/en/development/rfc/index.txt 2011-09-17 20:36:10 UTC (rev 12550)
+++ trunk/docs/en/development/rfc/index.txt 2011-09-17 21:07:36 UTC (rev 12551)
@@ -83,3 +83,4 @@
ms-rfc-71
ms-rfc-72
ms-rfc-73
+ ms-rfc-74
Added: trunk/docs/en/development/rfc/ms-rfc-74.txt
===================================================================
--- trunk/docs/en/development/rfc/ms-rfc-74.txt (rev 0)
+++ trunk/docs/en/development/rfc/ms-rfc-74.txt 2011-09-17 21:07:36 UTC (rev 12551)
@@ -0,0 +1,132 @@
+.. _rfc74:
+
+=========================================================================
+MS RFC 74: Includes from non-file connections (eg Databases)
+=========================================================================
+
+:Date: 2011/07/29
+:Author: Michael Smith, Daniel Morissette
+:Contact: michael.smith at usace.army.mil, dmorissette at mapgears.com
+:Last Edited: 09/17/2011
+:Status: Draft
+:Version: MapServer 6.2
+
+1. Overview
+-----------
+
+MapServer 4.10 introduced the concept of INCLUDE files. When this directive is encountered parsing switches to the included file immediately.
+As a result the included file can be comprised of any valid mapfile syntax.
+For example, one could write:
+
+::
+
+ INCLUDE 'myLayer.map'
+
+This would include the contents in the mapfile at runtime.
+
+It would be useful to extend this to allow INCLUDEs from database connections. This provides another mechanism for dynamic mapfiles
+without requiring MapScript.
+
+
+2. The proposed solution
+------------------------
+
+This RFC proposes to add a new DBINCLUDE mapfile item. This item would have a number of associated mapfile items including:
+
+ CONNECTIONTYPE
+ CONNECTION
+ DATA
+ INCLUDEITEM
+ FILTER
+ METADATA
+
+And be closed with an END keyword.
+
+Example
+
+.. code-block:: mapfile
+
+ DBINCLUDE
+ CONNECTIONTYPE oraclespatial
+ CONNECTION "%uid%/%passwd%@tns_connection"
+ DATA "MAPLAYER_TABLE_NAME"
+ INCLUDEITEM "MAPLAYERS"
+ FILTER "condition=%layer_variable%"
+ METADATA
+ "layer_variable_validation_pattern" "^condition1|condition2$"
+ END
+ END
+
+The only new item, beside the DBINCLUDE keyword, is the INCLUDEITEM. It defines the attribute from which to to pull
+the layers definitions. It functions similarly to TILEITEM.
+
+Allowed CONNECTIONTYPEs would include OGR, POSTGIS, ORACLESPATIAL.
+
+An Example of the query would be
+
+ select maplayers from maplayer_table_name where condition = condition1;
+
+The content of the MAPLAYERS content would be strings to include in the mapfile just and INCLUDE would do. One difference
+is that the query could return a resultset of strings to add, and would be equivalent to N INCLUDE statements.
+
+2.5 Use Cases
+----------------------
+
+A common use case is providing a custom classed layer for an individual. Currently, this is very difficult to do without MapScript.
+
+For example, in a table one column would be username and the second column would be the layer class level text string.
+
+.. csv-table:: Example Table
+
+ user,class
+ jeff,CLASS Name "Jeff Layer" STYLE OUTLINECOLOR 255 0 0 SYMBOL 0 COLOR 0 0 255 END END
+ daniel,CLASS Name "Daniel Layer" STYLE OUTLINECOLOR 122 180 200 SYMBOL 0 END END
+ steve,CLASS Name "Steve Layer" EXPRESSION "type=brewery" STYLE SYMBOL 0 COLOR 0 255 255 WIDTH 4 END END
+
+Another common case is dynamically classifying a layer as the data changes. With SQL, a text string can be calculated on
+the fly from the data itself, by looking at the DISTINCT values of a dataset to generate the classes that will be
+used to display that data.
+
+
+3. Implementation Details
+-------------------------
+
+
+3.1 Files affected
+------------------
+
+The following files will be modified/created by this RFC:
+
+::
+
+ mapfile.c
+ mapogr.c
+ maplayer.c
+ maplexer.l
+ mapparser.y
+
+3.2 MapScript Issues
+--------------------
+
+There should be no mapscript issues, this is really only useful for CGI
+
+
+3.3 Security Issues
+-------------------
+
+The security issues should be the same as any existing database connection layer
+
+3.4 Backwards Compatibility Issues
+---------------------------------
+
+This change provides a new functionality with no backwards compatibility issues being considered.
+
+4. Bug ID
+---------
+
+None assigned.
+
+5. Voting history
+-----------------
+
+None
More information about the mapserver-commits
mailing list