Re: [gnome-db] Branch 5.x series?
Daniel Espinosa <[email protected]>
| Newsgroups | gmane.comp.gnome.db,gmane.comp.programming.vala,gmane.comp.lib.gee |
|---|---|
| Message-ID | <CAHirWtL4sqJWaY5K7Ma8Y0Yn6YKNbciEQZTNVw_vFjKFV+iNHg@mail.gmail.com> |
2011/12/13 Vivien Malerba <[email protected]>: > > > On 13 December 2011 18:22, Daniel Espinosa <[email protected]> wrote: >> >> I'm continue in development of Vala extensions on libgda-vala branch, >> I can't tell that is API stable, then I don't merge soon. >> >> But what about to branch 5.0 development and make master point to 6.0 >> unstable. May we can make API/ABI changes like the ones on GdaNumeric, >> I would like to do the same for most GDA structs (GdaBlob and others) >> to add API to access its members. > > > I've just created the LIBGDA_5.0 branch for the next 5.0.x releases, and now > the master branch will be used for the 5.2 release later on, so you'll have > to merge your branch into master without any perturbation to the 5.0.x > versions. > Thanks I'll do it ASAP. >> >> >> Even I figure out how to make GdaDataModel a Gee Collection like or >> even add LINQ[1] features to Vala using Gee interfaces and GDA as >> backend. > > > I'm afraid you'll have to illustrate with an example so I can understand > fully what you did. > I did: * Added a DataModelIterable, this object can be used in foreach instructions in Vala or using while instrucctions using standard Gee Iterators, to filter GValues or chop a number of GValues. This makes a DataModel a linear collection of GValue where you can traverse through one per one. This is a proof of concept about to use Gee Collection interfaces. * Added a DataObject to create persistence database objects, you derive objects form Gda.DataObject to modify values in a row in a table. Work in progress: * Implementing GdaDataModel Interface in the iterable object (just wraps an internal reference to a GdaDataModel) * Implementing Gee.Collection interface to manage DataModel's GValue as a Collection Future Ideas: * How to make use of GDA a Collection provider. Programers will be able to: - Access GValue stored in a table by using Gee interfaces - Access Rows in the table and filter them by using fields value expressions. This may requires to modify or add a new interface to Gee like a Collection of Hashes, each hash have field name as key and a GValue as value - Filter Data from a database using commands like LINQ by compling using Vala. GDA can be called by Vala to pass a string representation of the query to execute a query to the database and return a Gee.Collection. This may require for GDA to parse these kind of SQL commands. A LINQ example code from Wikipedia is: int someValue = 5; var results = from c in SomeCollection where c.SomeProperty < someValue * 2 select new {c.SomeProperty, c.OtherProperty}; foreach (var result in results) { Console.WriteLine(result); } * Ideally All providers could return just Iterable and Collection DataModels, but that requires to modify providers implementation. As Vala can create C code to refer to, may be using conditionals is possible to include libgdadata.h to return iterable objects. * May be more to come :-)