Changes between Initial Version and Version 1 of FDORfc44


Ignore:
Timestamp:
11/10/09 10:28:22 (15 years ago)
Author:
oresthalustchak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc44

    v1 v1  
     1= FDO RFC 44 - Add IF Expression Function =
     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|| Nov. 10, 2009 ||
     11||Last Modified|| Orest Halustchak [[Timestamp]]||
     12||Author||Orest Halustchak||
     13||RFC Status||Not Ready for Review||
     14||Implementation Status||draft||
     15||Proposed Milestone||3.5.0.0||
     16||Assigned PSC guide(s)||Orest Halustchak||
     17||'''Voting History'''|| ||
     18||+1|| ||
     19||+0|| ||
     20||-0|| ||
     21||-1|| ||
     22 
     23== Motivation ==
     24
     25This enhancement is to allow an application using an FDO expression to generate different values from a boolean expression. Typically this is to generate a different string value from a boolean expression. The MapGuide stylization engine includes a similar function, but it is not available at the FDO level and will be useful for users at this level.
     26
     27== Overview ==
     28
     29This RFC proposes a new FDO expression function called IF that takes a boolean expression and chooses between two data values for the output. This function will be based on the stylization function and will be a migration of that implementation.
     30
     31== Proposed Solution ==
     32
     33Define a new FDO Expression function called IF.
     34
     35{{{
     36    /// 
     37    /// Result, ValueIfTrue, and ValueIfFalse are the same data type. They can be any FDO numeric, string, or date/time data type.
     38    /// If Boolean Expression evaluates to true, then ValueIfTrue is returned. If Boolean Expression evaluates to false or is null,
     39    /// then ValueIfFalse is returned.
     40
     41    Result = IF(Boolean Expression, ValueIfTrue, ValueIfFalse)
     42 
     43    ///
     44    /// E.g. IF(BoolProperty, ‘Oui’, ‘Non’) would generate ‘Oui’ if BoolProperty is true, otherwise ‘Non’.
     45    /// E.g. IF(BoolProperty, 1, -1) would generate 1 or -1.
     46
     47}}}
     48
     49
     50== Provider Implementation ==
     51
     52TBD.
     53
     54== Test Plan ==
     55Expand unit tests to test the proposed enhancements defined above.
     56
     57== Funding/Resources ==
     58
     59Autodesk to provide resources / funding.
     60