[fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index

Klain Qin klain.qin at autodesk.com
Tue Sep 15 23:30:37 EDT 2009


Yes, I do agree with you. Why we proposed the default implementation is mainly for time limitation that we can't have that much time to fix all provider implementation at this time. E.g the default feature reader implementation can utilize GetClassDefinition() which means least change for providers. But yes, if all provider implementation can be fixed as you suggested it doesn't need the GetProviderIndex() at all.

The current proposal is just a tradeoff. At least it provides a correct and convenient solution with least efforts. Otherwise if without GetPropertyIndex() the clients will have difficulty in using the access by index functions (which was the main purpose of this RFC. ) for feature/data readers.

Some potential use cases have been discussed for this API. E.g. the clients may only need to access a few portion of the properties like ID, geometry, where in this case it shouldn't be a burden for client codes. Another use case is data table in MAP. With the new API, MAP can save the index returned by GetPropertyIndex() in the existing internal data structure for once. Later on when it needs to read data, MAP can call access by index functions for each column to speed up reading.

Klain

From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Traian Stanev
Sent: Wednesday, September 16, 2009 10:45 AM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index


Sure it may be easier from the point of view of the RFC implementer, but if it puts a bigger burden on the application developer to make use of it, the API will hardly get used, at which point, it would make any effort on part of the RFC implementer a wasted effort. That was my point.

The providers that cannot guarantee the same order in the class definition as in the select row can implement the look up table we are talking about internal to the provider, instead of making the application developer implement the same thing whenever he has to loop over the properties when reading data, don't you agree?

Traian


From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Klain Qin
Sent: Tuesday, September 15, 2009 9:34 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index

To fix all of the providers internally would be hard and involve much work. One example is: there are several providers like sqllite/rdbms which have delay loading readers in some cases meaning the first property being accessed will be first cached for class definition. There are other complexities to ensure the consistency. So to provide an API like GetPropertyIndex() would be easier for the users to use the new API conveniently and correctly. The only concern is, as you mentioned, the client codes have to keep a property name->index map by themselves. But still providing this new API will be the easiest and least efforts at this time.

Klain

From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Traian Stanev
Sent: Tuesday, September 15, 2009 10:25 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index


How hard would it be to fix the providers internally so that the index of the properties in the collection returned with GetClassDefinition corresponds to the index needed for getting the property by index? I suspect it is not too hard since it would involve the same amount of work as implementing this new GetPropertyIndex API, but will not add new API that one has to call before getting the properties by index.


Traian


From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Klain Qin
Sent: Monday, September 14, 2009 11:02 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index

Hi all,

While this RFC is being voted, I've updated it again in order to use access by index API more efficiently and correctly.

Previously in order to use access by index functions for FdoIFeatureReader or FdoIDataReader, the API users will have to know beforehand how index is mapping to property name. And mapping is different for different provider implementations like SqlLite/SDF and RDBMS. E.g. with the same FDO schema definition, SqlLite and RDBMS will arrange the property order returned from GetClassDefinition() differently:


a.       If you don't set selected property names be returned from an FdoISelect command



SqlLite provider will arrange the properties in the order: Identity property -> Geometry property -> the left will be arranged in the order of how they are added into the class definition, like ID -> geometry -> datetime-> double

For RDBMS provider the order is: identity property -> the left is ordered by the first character of the property name like ID -> datetime-> double -> geometry



b.      If you do set selected property names to be returned from an FdoISelect command



SqlLite provider will respect the order of how they are added to selected properties.

SDF provider will respect the order of corresponding properties defined in the original class definition(without setting selected properties)

So to resolve this inconvenience, RFC 34 is updated again to add another function for getting the index of a specific property name. Now both of the property name and index related functions are moved to FdoIReader as they are needed for both FdoIFeatureReader and FdoIDataReader.
FdoString* GetPropertyName(FdoInt32 index);
FdoInt32 GetPropertyIndex(FdoString* propertyName);
Can you take a look again at this RFC?

http://trac.osgeo.org/fdo/wiki/FDORfc34

Thanks,
Klain

From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Greg Boone
Sent: Monday, September 14, 2009 11:33 PM
To: FDO Internals Mail List
Subject: [fdo-internals] MOTION: FDO RFC 34 - FDO Reader Access By Index

Hi all,

There were no further comments on RFC 34: http://trac.osgeo.org/fdo/wiki/FDORfc34  - FDO Reader Access By Index.

I would like to motion a vote to accept this RFC.

Thanks,
Greg.



From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Greg Boone
Sent: Wednesday, September 09, 2009 12:41 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: FDO RFC 34 - FDO Reader Access By Index

Hi All,

FDO RFC 34 - Access By Index: http://trac.osgeo.org/fdo/wiki/FDORfc34 has been updated and is ready for a secondary review.

Please refer to the section labeled: "Provider Implementation"

Please respond with comments by end of day, Friday September 11.

Greg

From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Greg Boone
Sent: Thursday, August 06, 2009 9:39 AM
To: FDO Internals Mail List
Subject: [fdo-internals] FDO RFC 34 - FDO Reader Access By Index

Hi All,

FDO RFC 34, http://trac.osgeo.org/fdo/wiki/FDORfc34, is ready for review.

Please review and respond with comments.

Greg




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/fdo-internals/attachments/20090915/b5e788f8/attachment-0001.html


More information about the fdo-internals mailing list