Migration from 1.X versions

GdaValue and GdaDataModel changes

Libgda values were stored in GdaValue structures, this is no longer the case as the standard GValue container is now used. As a consequence data types are now identified by their GType identifier, there is thus no more any GdaType definition.

The GdaDataModel has been transformed into an interface (as defined by the Glib object system), and the old GdaDataModel has been replaced by the GdaDataModelRow class. No code using the GdaDataModel should assume that data is internally stored as rows (vectors) of values as it was the case in the previous stable release.

In the new version, many objects implement the GdaDataModel interface for various usages which did not exist in the previous version such as data import and filtering. GdaDataModel objects should now be considered as non writable, and if they need to be modified, the modifications permissions should be checked using the gda_data_model_get_attributes_at() function. See the section about the various data models for more information.

The following UML schema shows the various implementations of the GdaDataModel interface and what they are for. Note that the GdaDataModelRow should not be instantiated directly but either used as a base class, or used through its children classes.

Various implementations of the GdaDataModel interface