wiki:FDORfc46

Version 1 (modified by jng, 14 years ago) ( diff )

rfc46 draft

FDO RFC 46 - Schema Attributes Capability

This page contains a request for comments document (RFC) for the FDO Open Source project. More FDO RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission Date(Dec. 23 2009)
Last Modified(Jackie Ng) Timestamp
Author(Jackie Ng)
RFC Status(draft)
Implementation Status(draft)
Proposed Milestone(3.5.0.0)
Assigned PSC guide(s)(when determined)
Voting History(vote date)
+1
+0
-0
-1

Overview

The RFC extends the FDO capability API so that providers can indicate support for persistence of custom schema attributes.

Motivation

Quoting the API description of FdoSchemaAttributeDictionary:

The FdoSchemaAttributeDictionary class maintains a dictionary of named attributes that provide a generic extensibility mechanism for objects in the feature schema. This mechanism can be used to dynamically extend schema elements in either an application or provider-specific manner.

It has come to my attention that not all providers support the persistence of custom schema attributes. At the moment there is no way for a client application to determine if a given provider has the ability to persist any custom attributes/metadata that would be attached to a Feature Schema (that is used for a FdoIApplySchema command)

Proposed Solution

Add a new API to FdoISchemaCapabilities:

        /// \brief
	/// Determines if the provider supports persistence of custom attributes in schema
	/// elements (Feature Schema, Class Definition, Property Definition)
	///
	/// \return
	/// Returns true if the provider supports custom schema attributes
	///
	FDO_API virtual bool SupportsCustomSchemaAttributes() = 0;

Providers will need to implement this new API and indicate their support.

Providers that can persist custom schema attributes would return true. Providers that can't would return false.

To my current knowledge, the current level of support is as follows:

ProviderSupports custom attributes
SDFfalse
SHPfalse
ArcSDEfalse
WFSfalse
WMSfalse
ODBCfalse
MySQLtrue
GDALfalse
OGRfalse
PostGISfalse
King.Oraclefalse
SQL Servertrue
SQLitefalse

This table is based on the assumption that providers based on the Generic RDBMS framework that utilise f_* metaschema tables (MySQL, SQL Server) would support custom attributes since they are stored in the f_sad table. OGR and ODBC are assumed to not support them due to the "catch-all" nature of these providers. Support in other providers is currently unknown and assumed to be false.

A formal capability API would greatly clear such assumptions.

Implications

This is an API addition. This only affects client applications that wish to extend FDO feature schemas with custom metadata. It is unknown how much MapGuide will be affected. More discussions will reveal the extent that these changes will affect.

Funding/Resources

TBD

Note: See TracWiki for help on using the wiki.