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

Orest Halustchak orest.halustchak at autodesk.com
Wed Sep 16 08:01:49 EDT 2009


HI,

I agree that it would be much easier if the properties index matches the order in the returned class definition. However, since this isn't an existing specified requirement, do we know if there are any providers that do not follow such a convention? It seems logical that the two would match, so maybe there aren't many cases where it would have to be changed? Do we want to issue a new RFC requiring these two to match? We would have to (a) check the existing open source providers and fix the cases where they don't follow this rule, and (b) document for non-open source provider developers that to move to fdo 3.5, they have to update their providers if necessary to follow this rule.

Thanks,
Orest.

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

H,
I am travelling and don't have internet connection often, so sorry If I missed some parts of discussion.

I agree with Traian. I think that providers should be fixed to support such index access which corresponds to class definition.
If providers are not able to do it ,  then better to have this index lookup inside providers.

I think it would be important to encourage writing good FDO client code. Having tables and index lookups and ... on client for accessing data trough FDO, doesn't look good to me.

Haris




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 20:39
To: FDO Internals Mail List
Subject: [fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index


I'd rather have such index->index lookup table inside one or two providers than make every application programmer have to make such lookup table in client code, because it seems like instances of such loops would be more common than providers that cannot implement such table internally.

Traian


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

See inline...

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 1:58 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: MOTION: FDO RFC 34 - FDO Reader Access By Index


There is no technical reason making this impossible, since this is new API and presumably all existing providers that want to add support for this will have to comply with the RFC. If the RFC says that the order has to match the one returned by GetClassDefinition, then why would you expect future providers to not honor that?

[GB] I am sure that they could do this, but I would not wish to force them to do so for existing providers.  Especially those providers outside the Open Source community.

A common use case is that one gets the class definition from the reader and then loops over its properties using a for loop inside the reader's ReadNext() loop. Such loop would be a prime candidate for using the indexed Get calls. If the index of the properties in the class definition does not match the index to use in Get by index, then this common use case cannot effectively benefit from this RFC, significantly reducing the value of the Get by index APIs. I guess a workaround for this would be for the application programmer to create an index->index lookup table in such cases before looping, but that sounds worksome to do too often, which would be an obstacle to adoption of the indexed Get APIs.

[GB] I agree that in this situation, a client index->index lookup will be required. Depending on the number of different queries being executed this may be problematic. It may be the case that it would have to be done for all queries.

Traian


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

I think we will still require these methods since we can never guarantee that all existing and future providers will behave in the expected manner in all select scenarios.

Greg

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 AM
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/20090916/6a65a1c8/attachment-0001.html


More information about the fdo-internals mailing list