Changes between Initial Version and Version 1 of FDORfc36


Ignore:
Timestamp:
Jun 9, 2009, 10:40:31 AM (15 years ago)
Author:
danstoica
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc36

    v1 v1  
     1= FDO RFC 36 - Schema Preview enhancement =
     2
     3This page contains an change request (RFC) for the FDO Open Source project. 
     4More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page.
     5
     6
     7== Status ==
     8 
     9||RFC Template Version||(1.0)||
     10||Submission Date|| June 08, 2009 ||
     11||Last Modified|| Dan Stoica[[Timestamp]]||
     12||Author||Dan Stoica, Orest Halustchak ||
     13||RFC Status||draft||
     14||Implementation Status||draft||
     15||Proposed Milestone||3.5.0.0||
     16||Assigned PSC guide(s)||Greg Boone||
     17||'''Voting History'''|| ||
     18||+1|| ||
     19||+0|| ||
     20||-0|| ||
     21||-1|| ||
     22 
     23== Overview ==
     24
     25This RFC is for adding the ability to preview the resulting schema definition before applying it.
     26
     27== Motivation ==
     28
     29When the FDO user creates a new schema he doesn't know how the provider will mangle the class and property names. An example:
     30
     31 * A bulk copy utility, when copies from one provider to another, will duplicate the input class in the output. But the names might not be valid for the target. The utility needs to preview the target schema and with user's input the names mangling can be prevented.
     32
     33Automatic mangling, while convenient, raises readability issues. A specific case is SHP provider where the name of a property is limited to 11 characters. The names are truncated and added a unique numerical suffix, like "_N". The resulting name may contain just 2 or 3 useful multibyte characters instead of up to 5 characters.
     34
     35== Proposed Solution ==
     36
     37The preferred solution is to add a new method on FdoIApplySchema command:
     38
     39{{{
     40class FdoIApplySchema : public FdoICommand
     41{
     42...
     43public:
     44     FDO_API virtual FdoFeatureSchema* ExecutePreview() = 0;
     45}}}
     46
     47The method will return a new schema object in case the provider is mangling the names (e.g. SHP).
     48The method will return a deep copy of the input schema in case the provider doesn't mangle the names (e.g. SDF). This is the default behavior.
     49
     50== Implications ==
     51
     52All the providers will have to implement the new method:
     53 * Implement the method in SHP to return mangled names if the case.
     54 * Implement the default behavior for the rest of open source providers.
     55
     56== Test Plan ==
     57
     58Enhance existing unit tests and make sure the method always returns a schema identical to Describe Schema output.
     59Test SHP provider with input names larger than 11 characters.
     60
     61== Funding/Resources ==
     62
     63Autodesk to provide resources / funding.