Re: [gnome-db] Branch 5.x series?

Vivien Malerba <[email protected]>
Newsgroups gmane.comp.gnome.db,gmane.comp.programming.vala
Message-ID <CAEP1ZN=LPj+GZK7uR+UjT52xW3XS5hfg6zvHSb=E79BPg3MHNg@mail.gmail.com>
On 13 December 2011 22:39, Daniel Espinosa <[email protected]> wrote:

> 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.
>

The GdaDataModelIter object is an iterator over data models. Did you "wrap"
it or create a new object?


>
> * Added a DataObject to create persistence database objects, you
> derive objects form Gda.DataObject to modify values in a row in a
> table.
>

Could you illustrate its usage with an example?


>
> 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.
>

All providers return a GdaDataSelect object, which can be used to write
data back to the database. This object is quite complicated, and I don't
plan to remove it, but if you need some more features out of it, it can of
course be modified.

There is one last question I have: are your extensions to be used only by
programmers using Vala, or (as Vala generates C code) are they also
available to any language like Libgda currently is (through GObject
introspection)?

Regards,

Vivien

_______________________________________________
gnome-db-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-db-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.