Changes between Version 1 and Version 2 of FDORfc8


Ignore:
Timestamp:
Aug 3, 2007, 12:17:16 PM (17 years ago)
Author:
thomasknoell
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc8

    v1 v2  
    2626Providers currently can support any number of functions used in the expressions passed to them. Capability methods are available to advertise which functions are supported and their parameters. This RFC adds a set of functions to a number of the current FDO providers using a standard set of names, parameters, parameter types and return types. These functions are commonly used functions in a number of domains and include standard string and numeric type functions. This will allow application developers to start using standard function names knowing that a large number of providers will be supporting those functions. It is hoped that other provider developers will consider adding support for these functions to other FDO providers.
    2727
    28 The list of supported functions and their signatures will be defined with the Expression Engine. The Expression Engine will also have a default implementation of those functions. Any provider can retrieve the list of supported functions and their signatures by executing the FDO interface GetWellKnownFunctions. Once the list is retrieved a provider can either enhance the list to add provider-specific functions or remove functions and/or signatures if the provider does not support them.
     28The list of supported functions and their signatures will be defined with the Expression Engine. The Expression Engine will also have a default implementation of those functions. Any provider can retrieve the list of supported functions and their signatures by executing the FDO interface ''!GetWellKnownFunctions''. Once the list is retrieved a provider can either enhance the list to add provider-specific functions or remove functions and/or signatures if the provider does not support them.
    2929
    3030The following sections list all newly added functions only. Functions already supported (like Max, Min, Sum) are not listed.
     
    140140== Required FDO Enhancements ==
    141141
    142 Some of the functions take parameters for which values have to come from a pre-defined set of values. For example, the function TRIM takes a string to be processed and a parameter to identify whether the leading, trailing or leading and trailing blanks should be removed. The FDO argument definition class does not allow the specification of such an argument value list. Therefore, to properly implement the function signatures this RFC proposes to enhance the class FdoArgumentDefinition to allow for the specification of argument value list data. This enhancement will introduce a new property and two functions to the named class. None of the existing functions - constructors included - will be changed. The enhancement will take advantage of already existing FDO classes to define value lists. By default, the argument value list will be set to NULL hence providing backward compatibility. No changes in any provider are required unless the provider wants to use this feature.
     142Some of the functions take parameters for which values have to come from a pre-defined set of values. For example, the function TRIM takes a string to be processed and a parameter to identify whether the leading, trailing or leading and trailing blanks should be removed. The FDO argument definition class does not allow the specification of such an argument value list. Therefore, to properly implement the function signatures this RFC proposes to enhance the class ''!FdoArgumentDefinition'' to allow for the specification of argument value list data. This enhancement will introduce a new property and two functions to the named class. None of the existing functions - constructors included - will be changed. The enhancement will take advantage of already existing FDO classes to define value lists. By default, the argument value list will be set to NULL hence providing backward compatibility. No changes in any provider are required unless the provider wants to use this feature.
    143143
    144144Under no circumstances should this enhancement be seen as an implementation of general argument constraints capabilities.