Changes between Version 13 and Version 14 of FDORfc34


Ignore:
Timestamp:
Apr 15, 2009, 2:00:44 PM (15 years ago)
Author:
gregboone
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc34

    v13 v14  
    2222== Motivation ==
    2323
    24 To Provide faster access to data returned from readers in the FDO API.
     24To provide faster access to data returned from feature, data and SQL readers though the FDO API.
    2525
    2626== Overview ==
    2727
    28 Currently, data returned in Feature readers or Data readers can only be accessed using named properties. In the following example, the feature reader returned from the select command has to be accessed using the !GetDouble method, with an input parameter that is the property name. In such an implementation, there is an associated cost to determining which property is being requested. Such a cost is typically encountered in performing a lookup based on the name, which inevitably results in some form of a costly string comparison.
     28Currently, data returned in Feature readers, data or SQL readers can only be accessed using named parameters that reflect the name exact name of the property or column being read. In the following example, the feature reader returned from the select command has to be accessed using the !GetDouble method, with an input parameter that is the property name. In such an implementation, there is an associated cost to determining which property is being requested. Such a cost is typically encountered in performing a lookup based on the parameter name, which inevitably results in some form of a string comparison.
    2929
    3030{{{
     
    4343}}}
    4444
    45 The goal of this RFC is to add overloaded methods to the various FDO reader interfaces that will accept an integer argument representing the indexed location of the property in the reader's in-memory representation of the feature. It is expected that this will speed up processing and provide a better end-user experience. Users will be able to access their data using an index into the feature reader collection as follows:
     45The goal of this RFC is to add overloaded methods to the various FDO reader interfaces that will accept an integer argument representing the indexed location of the property in the reader's in-memory representation of the feature. Readers will return the total count of the properties being returned and be able to indicate which property or column is indexed a specified location. It is expected that this will speed up processing and provide a better end-user experience. Users will be able to access their data using an index into the feature reader collection as follows:
    4646
    4747{{{
     
    6363== Requirements ==
    6464
    65 The following FDo interfaces will be updated to allow for indexed access:
     65The following FDO capability interface will be updated to expose a capability method that indicates if indexed access is supported by the provider. The default implementation of this property will be 'false'. Providers will not be required to implement this method.
     66
     67=== Interface ICommandCapabilities ===
     68
     69{{{
     70/// \brief
     71/// The FdoICommandCapabilities interface declares the feature
     72/// provider's level of support for Commands.
     73class FdoICommandCapabilities : public FdoIDisposable
     74{
     75public:
     76...
     77...
     78...
     79    /// \brief
     80    /// Determines if the provider supports accessing reader properties by index.
     81    /// The default access method is by name.
     82    ///
     83    /// \return
     84    /// Returns true if the provider supports ExecuteFeatureReader.
     85    ///
     86    FDO_API virtual bool SupportsReaderPropertyAccessByIndex()
     87};
     88}}}
     89
     90The following FDO reader interfaces will be updated to allow for indexed access. The default implementation of these properties will throw a Not Implemented exception. Providers will not be required to implement this method. Clients are required to use the above !SupportsReaderPropertyAccessByIndex method to determine if they can use these newly added index operations.
    6691
    6792=== Interface IReader ===
     
    626651== Provider Implementation ==
    627652
     653Providers will not be required to implement this functions, although they will be encouraged to do so. These methods will be added with a default implementation that throws an exception stating that the property is not supported.
     654
     655It is expected that resourcing will be supplied to modify the SQLite, SDF and SHP providers. Resourcing for other provider enhancements will be determined at a latter date.
     656
    628657== Test Plan ==
    629658
    630 Existing FDO Core unit tests will be expanded to test the proposed enhancements defined above.
     659Existing FDO Core and Provider level unit tests will be expanded to test the proposed enhancements defined above.
    631660
    632661== Funding/Resources ==