[gnome-db] Re: Gda# Tests



Daniel Espinosa wrote:
And the code generated by api2-codegen use:

                [DllImport("gda-3")]
		static extern GLib.Value gda_value_new_string(IntPtr val);

		public static GLib.Value NewString(string val) {
			IntPtr val_as_native = GLib.Marshaller.StringToPtrGStrdup (val);
			GLib.Value raw_ret = gda_value_new_string(val_as_native);
			GLib.Value ret = raw_ret;
			GLib.Marshaller.Free (val_as_native);
			return ret;
		}

This is broken. The problem is that gtk# considers GLib.Value to be a value type (meaning it's always allocated on the stack), but gda is using GValue as a reference type (allocated on the heap and explicitly allocated/freed). You're probably going to have to wrap Gda.Value by hand, obscuring the fact that it's really a GLib.Value underneath.

Meanwhile, the attached patches should probably be committed to get the rest of the gda# bindings up-to-date with respect to libgda.

-- Dan
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/libgda/ChangeLog,v
retrieving revision 1.841
diff -u -r1.841 ChangeLog
--- ChangeLog	7 Oct 2005 13:15:12 -0000	1.841
+++ ChangeLog	11 Oct 2005 17:46:49 -0000
@@ -1,3 +1,14 @@
+2005-10-11  Dan Winship  <danw novell com>
+
+	* libgda/gda-data-model.h, etc: Rename GInterface-related macros,
+	structures, etc to correspond to the standard naming conventions
+	so the gtk-sharp parser will interpret them correctly.
+
+	* gda-sharp/gda-api.raw: Regen, picking up GdaDataModel's signals
+
+	* gda-sharp/Gda.metadata: update for various API changes since
+	this was written.
+
 2005-10-07  Vivien Malerba <malerba gnome-db org>
 
 	* libgda/gda-value.c: bug fixed
Index: libgda/gda-data-model-base.c
===================================================================
RCS file: /cvs/gnome/libgda/libgda/gda-data-model-base.c,v
retrieving revision 1.10
diff -u -r1.10 gda-data-model-base.c
--- libgda/gda-data-model-base.c	27 Sep 2005 16:57:57 -0000	1.10
+++ libgda/gda-data-model-base.c	11 Oct 2005 17:46:52 -0000
@@ -51,7 +51,7 @@
 static void gda_data_model_base_finalize   (GObject *object);
 
 /* GdaDataModel interface */
-static void                 gda_data_model_base_data_model_init (GdaDataModelIface *iface);
+static void                 gda_data_model_base_data_model_init (GdaDataModelClass *iface);
 static gint                 gda_data_model_base_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_model_base_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_model_base_describe_column (GdaDataModel *model, gint col);
@@ -94,7 +94,7 @@
 }
 
 static void
-gda_data_model_base_data_model_init (GdaDataModelIface *iface)
+gda_data_model_base_data_model_init (GdaDataModelClass *iface)
 {
 	iface->i_get_n_rows = gda_data_model_base_get_n_rows;
 	iface->i_get_n_columns = gda_data_model_base_get_n_columns;
Index: libgda/gda-data-model.c
===================================================================
RCS file: /cvs/gnome/libgda/libgda/gda-data-model.c,v
retrieving revision 1.63
diff -u -r1.63 gda-data-model.c
--- libgda/gda-data-model.c	27 Sep 2005 16:57:57 -0000	1.63
+++ libgda/gda-data-model.c	11 Oct 2005 17:46:53 -0000
@@ -34,7 +34,7 @@
 #define CLASS(model) (GDA_DATA_MODEL_CLASS (G_OBJECT_GET_CLASS (model)))
 
 
-static void gda_data_model_iface_init (gpointer g_class);
+static void gda_data_model_class_init (gpointer g_class);
 
 /* signals */
 enum {
@@ -60,8 +60,8 @@
 
 	if (!type) {
 		static const GTypeInfo info = {
-			sizeof (GdaDataModelIface),
-			(GBaseInitFunc) gda_data_model_iface_init,
+			sizeof (GdaDataModelClass),
+			(GBaseInitFunc) gda_data_model_class_init,
 			(GBaseFinalizeFunc) NULL,
 			(GClassInitFunc) NULL,
 			NULL,
@@ -78,7 +78,7 @@
 }
 
 static void
-gda_data_model_iface_init (gpointer g_class)
+gda_data_model_class_init (gpointer g_class)
 {
 	static gboolean initialized = FALSE;
 
@@ -87,7 +87,7 @@
 			g_signal_new ("changed",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, changed),
+				      G_STRUCT_OFFSET (GdaDataModelClass, changed),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__VOID,
 				      G_TYPE_NONE, 0);
@@ -95,7 +95,7 @@
 			g_signal_new ("row_inserted",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, row_inserted),
+				      G_STRUCT_OFFSET (GdaDataModelClass, row_inserted),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -103,7 +103,7 @@
 			g_signal_new ("row_updated",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, row_updated),
+				      G_STRUCT_OFFSET (GdaDataModelClass, row_updated),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -111,7 +111,7 @@
 			g_signal_new ("row_removed",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, row_removed),
+				      G_STRUCT_OFFSET (GdaDataModelClass, row_removed),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -119,7 +119,7 @@
 			g_signal_new ("column_inserted",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, column_inserted),
+				      G_STRUCT_OFFSET (GdaDataModelClass, column_inserted),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -127,7 +127,7 @@
 			g_signal_new ("column_updated",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, column_updated),
+				      G_STRUCT_OFFSET (GdaDataModelClass, column_updated),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -135,7 +135,7 @@
 			g_signal_new ("column_removed",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, column_removed),
+				      G_STRUCT_OFFSET (GdaDataModelClass, column_removed),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -143,7 +143,7 @@
 			g_signal_new ("begin_update",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, begin_update),
+				      G_STRUCT_OFFSET (GdaDataModelClass, begin_update),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__VOID,
 				      G_TYPE_NONE, 0);
@@ -151,7 +151,7 @@
 			g_signal_new ("cancel_update",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, cancel_update),
+				      G_STRUCT_OFFSET (GdaDataModelClass, cancel_update),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__VOID,
 				      G_TYPE_NONE, 0);
@@ -159,7 +159,7 @@
 			g_signal_new ("commit_update",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelIface, commit_update),
+				      G_STRUCT_OFFSET (GdaDataModelClass, commit_update),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__VOID,
 				      G_TYPE_NONE, 0);
@@ -172,8 +172,8 @@
 do_notify_changes (GdaDataModel *model)
 {
 	gboolean notify_changes = TRUE;
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_notify)
-		notify_changes = (GDA_DATA_MODEL_GET_IFACE (model)->i_get_notify) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_notify)
+		notify_changes = (GDA_DATA_MODEL_GET_CLASS (model)->i_get_notify) (model);
 	return notify_changes;
 }
 
@@ -290,8 +290,8 @@
 {
 	g_return_if_fail (GDA_IS_DATA_MODEL (model));
 	
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_set_notify)
-		(GDA_DATA_MODEL_GET_IFACE (model)->i_set_notify) (model, FALSE);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_set_notify)
+		(GDA_DATA_MODEL_GET_CLASS (model)->i_set_notify) (model, FALSE);
 	else
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 }
@@ -307,8 +307,8 @@
 {
 	g_return_if_fail (GDA_IS_DATA_MODEL (model));
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_set_notify)
-		(GDA_DATA_MODEL_GET_IFACE (model)->i_set_notify) (model, TRUE);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_set_notify)
+		(GDA_DATA_MODEL_GET_CLASS (model)->i_set_notify) (model, TRUE);
 	else
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 }
@@ -324,8 +324,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), -1);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_n_rows)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_get_n_rows) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_n_rows)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_get_n_rows) (model);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return -1;
@@ -343,8 +343,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), -1);
 	
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_n_columns)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_get_n_columns) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_n_columns)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_get_n_columns) (model);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return -1;
@@ -371,8 +371,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_describe_column)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_describe_column) (model, col);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_describe_column)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_describe_column) (model, col);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return NULL;
@@ -436,8 +436,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_row)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_get_row) (model, row);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_row)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_get_row) (model, row);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return NULL;
@@ -468,8 +468,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_value_at)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_get_value_at) (model, col, row);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_value_at)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_get_value_at) (model, col, row);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return NULL;
@@ -489,8 +489,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_is_updatable)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_is_updatable) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_is_updatable)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_is_updatable) (model);
 	else 
 		return FALSE;
 }
@@ -511,9 +511,9 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_append_values) {
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_append_values) {
 		GdaRow *row;
-		row = (GDA_DATA_MODEL_GET_IFACE (model)->i_append_values) (model, values);
+		row = (GDA_DATA_MODEL_GET_CLASS (model)->i_append_values) (model, values);
 		gda_data_model_row_inserted (model, gda_row_get_number ((GdaRow *) row));
 		return row;
 	}
@@ -546,8 +546,8 @@
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 	g_return_val_if_fail (row != NULL, FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_append_row) {
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_append_row) (model, row);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_append_row) {
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_append_row) (model, row);
 	}
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
@@ -579,8 +579,8 @@
         g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
         g_return_val_if_fail (row != NULL, FALSE);
 
-        if (GDA_DATA_MODEL_GET_IFACE (model)->i_update_row) {
-                return (GDA_DATA_MODEL_GET_IFACE (model)->i_update_row) (model, row);
+        if (GDA_DATA_MODEL_GET_CLASS (model)->i_update_row) {
+                return (GDA_DATA_MODEL_GET_CLASS (model)->i_update_row) (model, row);
         }
         else {
                 g_warning ("%s() method not supported\n", __FUNCTION__);
@@ -606,8 +606,8 @@
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 	g_return_val_if_fail (row != NULL, FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_remove_row) {
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_remove_row) (model, row);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_remove_row) {
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_remove_row) (model, row);
 	}
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
@@ -630,8 +630,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
 	
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_append_column) 
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_append_column) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_append_column) 
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_append_column) (model);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return NULL;
@@ -654,8 +654,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_remove_column) 
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_remove_column) (model, col);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_remove_column) 
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_remove_column) (model, col);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return FALSE;
@@ -720,8 +720,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_has_changed) 
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_has_changed) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_has_changed) 
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_has_changed) (model);
 	else {
 		g_warning ("%s() method not supported\n", __FUNCTION__);
 		return FALSE;
@@ -747,8 +747,8 @@
 		return FALSE;
 	}
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_begin_changes) 
-		(GDA_DATA_MODEL_GET_IFACE (model)->i_begin_changes) (model);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_begin_changes) 
+		(GDA_DATA_MODEL_GET_CLASS (model)->i_begin_changes) (model);
 	
 	g_signal_emit (G_OBJECT (model),
 		       gda_data_model_signals[BEGIN_UPDATE], 0);
@@ -770,9 +770,9 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_cancel_changes) {
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_cancel_changes) {
 		gboolean status;
-		status = (GDA_DATA_MODEL_GET_IFACE (model)->i_cancel_changes) (model);
+		status = (GDA_DATA_MODEL_GET_CLASS (model)->i_cancel_changes) (model);
 		if (status)
 			g_signal_emit (G_OBJECT (model),
 				       gda_data_model_signals[CANCEL_UPDATE], 0);
@@ -798,9 +798,9 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_commit_changes) {
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_commit_changes) {
 		gboolean status;
-		status = (GDA_DATA_MODEL_GET_IFACE (model)->i_commit_changes) (model);
+		status = (GDA_DATA_MODEL_GET_CLASS (model)->i_commit_changes) (model);
 		if (status)
 			g_signal_emit (G_OBJECT (model),
 				       gda_data_model_signals[COMMIT_UPDATE], 0);
@@ -1160,8 +1160,8 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_command)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_get_command) (model, NULL);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_command)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_get_command) (model, NULL);
 	else
 		return NULL;
 }
@@ -1181,8 +1181,8 @@
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
 	g_return_val_if_fail (txt != NULL, FALSE);
 	
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_set_command)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_set_command) (model, txt, -1);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_set_command)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_set_command) (model, txt, -1);
 	else
 		return FALSE;
 }
@@ -1200,9 +1200,9 @@
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), GDA_COMMAND_TYPE_INVALID);
 
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_get_command) {
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_get_command) {
 		GdaCommandType type;
-		(GDA_DATA_MODEL_GET_IFACE (model)->i_get_command) (model, &type);
+		(GDA_DATA_MODEL_GET_CLASS (model)->i_get_command) (model, &type);
 		return type;
 	}
 	else
@@ -1222,8 +1222,8 @@
 gda_data_model_set_command_type (GdaDataModel *model, GdaCommandType type)
 {
 	g_return_val_if_fail (GDA_IS_DATA_MODEL (model), FALSE);
-	if (GDA_DATA_MODEL_GET_IFACE (model)->i_set_command)
-		return (GDA_DATA_MODEL_GET_IFACE (model)->i_set_command) (model, NULL, type);
+	if (GDA_DATA_MODEL_GET_CLASS (model)->i_set_command)
+		return (GDA_DATA_MODEL_GET_CLASS (model)->i_set_command) (model, NULL, type);
 	else
 		return FALSE;
 }
Index: libgda/gda-data-model.h
===================================================================
RCS file: /cvs/gnome/libgda/libgda/gda-data-model.h,v
retrieving revision 1.33
diff -u -r1.33 gda-data-model.h
--- libgda/gda-data-model.h	27 Sep 2005 16:57:57 -0000	1.33
+++ libgda/gda-data-model.h	11 Oct 2005 17:46:53 -0000
@@ -37,14 +37,14 @@
 #define GDA_TYPE_DATA_MODEL            (gda_data_model_get_type())
 #define GDA_DATA_MODEL(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GDA_TYPE_DATA_MODEL, GdaDataModel))
 #define GDA_IS_DATA_MODEL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GDA_TYPE_DATA_MODEL))
-#define GDA_DATA_MODEL_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_TYPE_DATA_MODEL, GdaDataModelIface))
+#define GDA_DATA_MODEL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_TYPE_DATA_MODEL, GdaDataModelClass))
 
 typedef gboolean (* GdaDataModelForeachFunc) (GdaDataModel *model,
 					      GdaRow *row,
 					      gpointer user_data);
 
 /* struct for the interface */
-struct _GdaDataModelIface {
+struct _GdaDataModelClass {
 	GTypeInterface           g_iface;
 
 	/* virtual table */
Index: libgda/global-decl.h
===================================================================
RCS file: /cvs/gnome/libgda/libgda/global-decl.h,v
retrieving revision 1.2
diff -u -r1.2 global-decl.h
--- libgda/global-decl.h	3 Mar 2005 10:10:00 -0000	1.2
+++ libgda/global-decl.h	11 Oct 2005 17:46:53 -0000
@@ -22,7 +22,7 @@
 #define __GLOBAL_DECL_H_
 
 typedef struct _GdaRow              GdaRow;
-typedef struct _GdaDataModelIface   GdaDataModelIface;
+typedef struct _GdaDataModelClass   GdaDataModelClass;
 typedef struct _GdaDataModel        GdaDataModel;
 
 #endif
Index: gda-sharp/Gda.metadata
===================================================================
RCS file: /cvs/gnome/libgda/gda-sharp/Gda.metadata,v
retrieving revision 1.1
diff -u -r1.1 Gda.metadata
--- gda-sharp/Gda.metadata	11 Aug 2005 13:28:19 -0000	1.1
+++ gda-sharp/Gda.metadata	11 Oct 2005 17:46:50 -0000
@@ -2,21 +2,10 @@
 <metadata>
   <attr path="/api/namespace/class[ cname='GdaType_']" name="hidden">1</attr>
   <attr path="/api/namespace/interface[ cname='GdaDataModel']/method[ name='Foreach']/*/*[ name='func']" name="scope">call</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='Changed']" name="name">DataChanged</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='BeginEdit']" name="name">BeginEditing</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='CancelEdit']" name="name">CancelEditing</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='EndEdit']" name="name">EndEditing</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='RowInserted']" name="name">RowInsertedEvent</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='RowUpdated']" name="name">RowUpdatedEvent</attr>
-  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='RowRemoved']" name="name">RowRemovedEvent</attr>
+  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='BeginUpdate']" name="name">BeganUpdate</attr>
+  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='CancelUpdate']" name="name">CanceledUpdat</attr>
+  <attr path="/api/namespace/interface[ cname='GdaDataModel']/signal[ name='CommitUpdate']" name="name">CommittedUpdate</attr>
   <attr path="/api/namespace/object[ cname='GdaDataModelArray']/method[ name='SetNColumns']" name="new_flag">1</attr>
   <attr path="/api/namespace/object[ cname='GdaDataModelHash']/method[ name='SetNColumns']" name="new_flag">1</attr>
-  <attr path="/api/namespace/object[ cname='GdaExport']" name="hidden">1</attr>
-  <attr path="/api/namespace/object[ cname='GdaXmlDatabase']/signal[ name='Changed']" name="name">DataChanged</attr>
-  <attr path="/api/namespace/struct[ cname='GdaCommand']" name="opaque">1</attr>
-  <attr path="/api/namespace/struct[ cname='GdaFieldAttributes']" name="opaque">1</attr>
-  <attr path="/api/namespace/struct[ cname='GdaParameter']" name="opaque">1</attr>
-  <attr path="/api/namespace/struct[ cname='GdaValue']" name="opaque">1</attr>
-  <attr path="/api/namespace/struct[ cname='GdaValue']/method[ cname='gda_value_get_type']" name="name">GetGdaType</attr>
 </metadata>
 
Index: gda-sharp/gda-api.raw
===================================================================
RCS file: /cvs/gnome/libgda/gda-sharp/gda-api.raw,v
retrieving revision 1.1
diff -u -r1.1 gda-api.raw
--- gda-sharp/gda-api.raw	11 Aug 2005 13:28:19 -0000	1.1
+++ gda-sharp/gda-api.raw	11 Oct 2005 17:46:52 -0000
@@ -7,12 +7,12 @@
 
 -->
   <namespace name="Gda" library="gda-3">
-    <enum name="BlobMode" cname="GdaBlobMode" type="flags">
+    <enum name="BlobMode" cname="GdaBlobMode" gtype="gda_blob_mode_get_type" type="flags">
       <member cname="GDA_BLOB_MODE_READ" name="Read" value="1" />
       <member cname="GDA_BLOB_MODE_WRITE" name="Write" value="1 &lt;&lt; 1" />
       <member cname="GDA_BLOB_MODE_RDWR" name="Rdwr" value="0x03" />
     </enum>
-    <enum name="ClientEvent" cname="GdaClientEvent" type="enum">
+    <enum name="ClientEvent" cname="GdaClientEvent" gtype="gda_client_event_get_type" type="enum">
       <member cname="GDA_CLIENT_EVENT_INVALID" name="Invalid" />
       <member cname="GDA_CLIENT_EVENT_ERROR" name="Error" />
       <member cname="GDA_CLIENT_EVENT_CONNECTION_OPENED" name="ConnectionOpened" />
@@ -21,16 +21,16 @@
       <member cname="GDA_CLIENT_EVENT_TRANSACTION_COMMITTED" name="TransactionCommitted" />
       <member cname="GDA_CLIENT_EVENT_TRANSACTION_CANCELLED" name="TransactionCancelled" />
     </enum>
-    <enum name="ClientSpecsType" cname="GdaClientSpecsType" type="enum">
+    <enum name="ClientSpecsType" cname="GdaClientSpecsType" gtype="gda_client_specs_type_get_type" type="enum">
       <member cname="GDA_CLIENT_SPECS_CREATE_DATABASE" name="CreateDatabase" />
       <member cname="GDA_CLIENT_SPECS_DROP_DATABASE" name="DropDatabase" />
     </enum>
-    <enum name="CommandOptions" cname="GdaCommandOptions" type="flags">
+    <enum name="CommandOptions" cname="GdaCommandOptions" gtype="gda_command_options_get_type" type="flags">
       <member cname="GDA_COMMAND_OPTION_IGNORE_ERRORS" name="IgnoreErrors" value="1" />
       <member cname="GDA_COMMAND_OPTION_STOP_ON_ERRORS" name="StopOnErrors" value="1 &lt;&lt; 1" />
       <member cname="GDA_COMMAND_OPTION_BAD_OPTION" name="BadOption" value="1 &lt;&lt; 2" />
     </enum>
-    <enum name="CommandType" cname="GdaCommandType" type="enum">
+    <enum name="CommandType" cname="GdaCommandType" gtype="gda_command_type_get_type" type="enum">
       <member cname="GDA_COMMAND_TYPE_SQL" name="Sql" />
       <member cname="GDA_COMMAND_TYPE_XML" name="Xml" />
       <member cname="GDA_COMMAND_TYPE_PROCEDURE" name="Procedure" />
@@ -38,7 +38,7 @@
       <member cname="GDA_COMMAND_TYPE_SCHEMA" name="Schema" />
       <member cname="GDA_COMMAND_TYPE_INVALID" name="Invalid" />
     </enum>
-    <enum name="ConnectionEventCode" cname="GdaConnectionEventCode" type="enum">
+    <enum name="ConnectionEventCode" cname="GdaConnectionEventCode" gtype="gda_connection_event_code_get_type" type="enum">
       <member cname="GDA_CONNECTION_EVENT_CODE_CONSTRAINT_VIOLATION" name="ConstraintViolation" />
       <member cname="GDA_CONNECTION_EVENT_CODE_RESTRICT_VIOLATION" name="RestrictViolation" />
       <member cname="GDA_CONNECTION_EVENT_CODE_NOT_NULL_VIOLATION" name="NotNullViolation" />
@@ -59,12 +59,12 @@
       <member cname="GDA_CONNECTION_EVENT_CODE_SYNTAX_ERROR" name="SyntaxError" />
       <member cname="GDA_CONNECTION_EVENT_CODE_UNKNOWN" name="Unknown" />
     </enum>
-    <enum name="ConnectionEventType" cname="GdaConnectionEventType" type="enum">
-      <member cname="GDA_CONNNECTION_EVENT_NOTICE" name="Notice" />
-      <member cname="GDA_CONNNECTION_EVENT_WARNING" name="Warning" />
-      <member cname="GDA_CONNNECTION_EVENT_FATAL" name="Fatal" />
+    <enum name="ConnectionEventType" cname="GdaConnectionEventType" gtype="gda_connection_event_type_get_type" type="enum">
+      <member cname="GDA_CONNECTION_EVENT_NOTICE" name="Notice" />
+      <member cname="GDA_CONNECTION_EVENT_WARNING" name="Warning" />
+      <member cname="GDA_CONNECTION_EVENT_ERROR" name="Error" />
     </enum>
-    <enum name="ConnectionFeature" cname="GdaConnectionFeature" type="enum">
+    <enum name="ConnectionFeature" cname="GdaConnectionFeature" gtype="gda_connection_feature_get_type" type="enum">
       <member cname="GDA_CONNECTION_FEATURE_AGGREGATES" name="Aggregates" />
       <member cname="GDA_CONNECTION_FEATURE_BLOBS" name="Blobs" />
       <member cname="GDA_CONNECTION_FEATURE_INDEXES" name="Indexes" />
@@ -80,11 +80,11 @@
       <member cname="GDA_CONNECTION_FEATURE_VIEWS" name="Views" />
       <member cname="GDA_CONNECTION_FEATURE_XML_QUERIES" name="XmlQueries" />
     </enum>
-    <enum name="ConnectionOptions" cname="GdaConnectionOptions" type="flags">
+    <enum name="ConnectionOptions" cname="GdaConnectionOptions" gtype="gda_connection_options_get_type" type="flags">
       <member cname="GDA_CONNECTION_OPTIONS_READ_ONLY" name="ReadOnly" value="1 &lt;&lt; 0" />
       <member cname="GDA_CONNECTION_OPTIONS_DONT_SHARE" name="DontShare" value="2 &lt;&lt; 0" />
     </enum>
-    <enum name="ConnectionSchema" cname="GdaConnectionSchema" type="enum">
+    <enum name="ConnectionSchema" cname="GdaConnectionSchema" gtype="gda_connection_schema_get_type" type="enum">
       <member cname="GDA_CONNECTION_SCHEMA_AGGREGATES" name="Aggregates" />
       <member cname="GDA_CONNECTION_SCHEMA_DATABASES" name="Databases" />
       <member cname="GDA_CONNECTION_SCHEMA_FIELDS" name="Fields" />
@@ -100,18 +100,18 @@
       <member cname="GDA_CONNECTION_SCHEMA_USERS" name="Users" />
       <member cname="GDA_CONNECTION_SCHEMA_VIEWS" name="Views" />
     </enum>
-    <enum name="Sorting" cname="GdaSorting" type="enum">
+    <enum name="Sorting" cname="GdaSorting" gtype="gda_sorting_get_type" type="enum">
       <member cname="GDA_SORTING_ASCENDING" name="Ascending" />
       <member cname="GDA_SORTING_DESCENDING" name="Descending" />
     </enum>
-    <enum name="TransactionIsolation" cname="GdaTransactionIsolation" type="enum">
+    <enum name="TransactionIsolation" cname="GdaTransactionIsolation" gtype="gda_transaction_isolation_get_type" type="enum">
       <member cname="GDA_TRANSACTION_ISOLATION_UNKNOWN" name="Unknown" />
       <member cname="GDA_TRANSACTION_ISOLATION_READ_COMMITTED" name="ReadCommitted" />
       <member cname="GDA_TRANSACTION_ISOLATION_READ_UNCOMMITTED" name="ReadUncommitted" />
       <member cname="GDA_TRANSACTION_ISOLATION_REPEATABLE_READ" name="RepeatableRead" />
       <member cname="GDA_TRANSACTION_ISOLATION_SERIALIZABLE" name="Serializable" />
     </enum>
-    <enum name="ValueType" cname="GdaValueType" type="enum">
+    <enum name="ValueType" cname="GdaValueType" gtype="gda_value_type_get_type" type="enum">
       <member cname="GDA_VALUE_TYPE_NULL" name="Null" />
       <member cname="GDA_VALUE_TYPE_BIGINT" name="Bigint" />
       <member cname="GDA_VALUE_TYPE_BIGUINT" name="Biguint" />
@@ -168,198 +168,188 @@
       </parameters>
     </callback>
     <interface name="DataModel" cname="GdaDataModel">
-      <virtual_method name="IGetNRows" cname="i_get_n_rows">
-        <return-type type="gint" />
+      <signal name="Changed" cname="changed" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IGetNColumns" cname="i_get_n_columns">
-        <return-type type="gint" />
+      </signal>
+      <signal name="RowInserted" cname="row_inserted" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
+          <parameter type="gint" name="row" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IDescribeColumn" cname="i_describe_column">
-        <return-type type="GdaColumn*" />
+      </signal>
+      <signal name="RowUpdated" cname="row_updated" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="col" />
+          <parameter type="gint" name="row" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="ISetColumnTitle" cname="i_set_column_title">
+      </signal>
+      <signal name="RowRemoved" cname="row_removed" when="LAST">
         <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="col" />
-          <parameter type="const-gchar*" name="title" />
+          <parameter type="gint" name="row" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IGetColumnPos" cname="i_get_column_pos">
-        <return-type type="gint" />
+      </signal>
+      <signal name="ColumnInserted" cname="column_inserted" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="const-gchar*" name="title" />
+          <parameter type="gint" name="col" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IIsUpdatable" cname="i_is_updatable">
-        <return-type type="gboolean" />
+      </signal>
+      <signal name="ColumnUpdated" cname="column_updated" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
+          <parameter type="gint" name="col" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IHasChanged" cname="i_has_changed">
-        <return-type type="gboolean" />
+      </signal>
+      <signal name="ColumnRemoved" cname="column_removed" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
+          <parameter type="gint" name="col" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IBeginChanges" cname="i_begin_changes">
+      </signal>
+      <signal name="BeginUpdate" cname="begin_update" when="LAST">
         <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="ICommitChanges" cname="i_commit_changes">
-        <return-type type="gboolean" />
+      </signal>
+      <signal name="CancelUpdate" cname="cancel_update" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="ICancelChanges" cname="i_cancel_changes">
-        <return-type type="gboolean" />
+      </signal>
+      <signal name="CommitUpdate" cname="commit_update" when="LAST">
+        <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
         </parameters>
-      </virtual_method>
-      <virtual_method name="IAppendRow" cname="i_append_row">
-        <return-type type="gboolean" />
+      </signal>
+      <virtual_method name="IGetNRows" cname="i_get_n_rows">
+        <return-type type="gint" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="IRemoveRow" cname="i_remove_row">
-        <return-type type="gboolean" />
+      <virtual_method name="IGetNColumns" cname="i_get_n_columns">
+        <return-type type="gint" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="const-GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="IUpdateRow" cname="i_update_row">
-        <return-type type="gboolean" />
+      <virtual_method name="IDescribeColumn" cname="i_describe_column">
+        <return-type type="GdaColumn*" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="const-GdaRow*" name="row" />
+          <parameter type="gint" name="col" />
         </parameters>
       </virtual_method>
-      <virtual_method name="IAppendColumn" cname="i_append_column">
-        <return-type type="gboolean" />
+      <virtual_method name="IGetRow" cname="i_get_row">
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="const-GdaColumn*" name="attrs" />
+          <parameter type="gint" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="IUpdateColumn" cname="i_update_column">
+      <virtual_method name="IIsUpdatable" cname="i_is_updatable">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="col" />
-          <parameter type="const-GdaColumn*" name="attrs" />
         </parameters>
       </virtual_method>
-      <virtual_method name="IRemoveColumn" cname="i_remove_column">
+      <virtual_method name="IHasChanged" cname="i_has_changed">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="col" />
         </parameters>
       </virtual_method>
-      <virtual_method name="ISetNotify" cname="i_set_notify">
+      <virtual_method name="IBeginChanges" cname="i_begin_changes">
         <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gboolean" name="do_notify_changes" />
         </parameters>
       </virtual_method>
-      <virtual_method name="IGetNotify" cname="i_get_notify">
+      <virtual_method name="ICommitChanges" cname="i_commit_changes">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
         </parameters>
       </virtual_method>
-      <virtual_method name="ISetCommand" cname="i_set_command">
+      <virtual_method name="ICancelChanges" cname="i_cancel_changes">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="const-gchar*" name="txt" />
-          <parameter type="GdaCommandType" name="type" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="Changed" cname="changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaDataModel*" name="model" />
         </parameters>
       </virtual_method>
-      <virtual_method name="RowInserted" cname="row_inserted">
-        <return-type type="void" />
+      <virtual_method name="IAppendValues" cname="i_append_values">
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="row" />
+          <parameter type="const-GList*" name="values" />
         </parameters>
       </virtual_method>
-      <virtual_method name="RowUpdated" cname="row_updated">
-        <return-type type="void" />
+      <virtual_method name="IAppendRow" cname="i_append_row">
+        <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="row" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="RowRemoved" cname="row_removed">
-        <return-type type="void" />
+      <virtual_method name="IUpdateRow" cname="i_update_row">
+        <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="row" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="ColumnInserted" cname="column_inserted">
-        <return-type type="void" />
+      <virtual_method name="IRemoveRow" cname="i_remove_row">
+        <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="col" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="ColumnUpdated" cname="column_updated">
-        <return-type type="void" />
+      <virtual_method name="IAppendColumn" cname="i_append_column">
+        <return-type type="GdaColumn*" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="col" />
         </parameters>
       </virtual_method>
-      <virtual_method name="ColumnRemoved" cname="column_removed">
-        <return-type type="void" />
+      <virtual_method name="IRemoveColumn" cname="i_remove_column">
+        <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
           <parameter type="gint" name="col" />
         </parameters>
       </virtual_method>
-      <virtual_method name="BeginUpdate" cname="begin_update">
+      <virtual_method name="ISetNotify" cname="i_set_notify">
         <return-type type="void" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
+          <parameter type="gboolean" name="do_notify_changes" />
         </parameters>
       </virtual_method>
-      <virtual_method name="CancelUpdate" cname="cancel_update">
-        <return-type type="void" />
+      <virtual_method name="IGetNotify" cname="i_get_notify">
+        <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
         </parameters>
       </virtual_method>
-      <virtual_method name="CommitUpdate" cname="commit_update">
-        <return-type type="void" />
+      <virtual_method name="ISetCommand" cname="i_set_command">
+        <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModel*" name="model" />
+          <parameter type="const-gchar*" name="txt" />
+          <parameter type="GdaCommandType" name="type" />
         </parameters>
       </virtual_method>
       <method name="AddDataFromXmlNode" cname="gda_data_model_add_data_from_xml_node">
@@ -369,10 +359,7 @@
         </parameters>
       </method>
       <method name="AppendColumn" cname="gda_data_model_append_column">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-GdaColumn*" name="attrs" />
-        </parameters>
+        <return-type type="GdaColumn*" />
       </method>
       <method name="AppendRow" cname="gda_data_model_append_row">
         <return-type type="gboolean" />
@@ -381,7 +368,7 @@
         </parameters>
       </method>
       <method name="AppendValues" cname="gda_data_model_append_values">
-        <return-type type="const-GdaRow*" />
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="const-GList*" name="values" />
         </parameters>
@@ -392,27 +379,6 @@
       <method name="CancelUpdate" cname="gda_data_model_cancel_update">
         <return-type type="gboolean" />
       </method>
-      <method name="Changed" cname="gda_data_model_changed">
-        <return-type type="void" />
-      </method>
-      <method name="ColumnInserted" cname="gda_data_model_column_inserted">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="col" />
-        </parameters>
-      </method>
-      <method name="ColumnRemoved" cname="gda_data_model_column_removed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="col" />
-        </parameters>
-      </method>
-      <method name="ColumnUpdated" cname="gda_data_model_column_updated">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="col" />
-        </parameters>
-      </method>
       <method name="CommitUpdate" cname="gda_data_model_commit_update">
         <return-type type="gboolean" />
       </method>
@@ -441,24 +407,12 @@
       <method name="Freeze" cname="gda_data_model_freeze">
         <return-type type="void" />
       </method>
-      <method name="GetColumnPosition" cname="gda_data_model_get_column_position">
-        <return-type type="gint" />
-        <parameters>
-          <parameter type="const-gchar*" name="title" />
-        </parameters>
-      </method>
       <method name="GetColumnTitle" cname="gda_data_model_get_column_title">
         <return-type type="const-gchar*" />
         <parameters>
           <parameter type="gint" name="col" />
         </parameters>
       </method>
-      <method name="GetCommandText" cname="gda_data_model_get_command_text">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetCommandType" cname="gda_data_model_get_command_type">
-        <return-type type="GdaCommandType" />
-      </method>
       <method name="GetNColumns" cname="gda_data_model_get_n_columns">
         <return-type type="gint" />
       </method>
@@ -466,7 +420,7 @@
         <return-type type="gint" />
       </method>
       <method name="GetRow" cname="gda_data_model_get_row">
-        <return-type type="const-GdaRow*" />
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="gint" name="row" />
         </parameters>
@@ -496,25 +450,7 @@
       <method name="RemoveRow" cname="gda_data_model_remove_row">
         <return-type type="gboolean" />
         <parameters>
-          <parameter type="const-GdaRow*" name="row" />
-        </parameters>
-      </method>
-      <method name="RowInserted" cname="gda_data_model_row_inserted">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="row" />
-        </parameters>
-      </method>
-      <method name="RowRemoved" cname="gda_data_model_row_removed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="row" />
-        </parameters>
-      </method>
-      <method name="RowUpdated" cname="gda_data_model_row_updated">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="row" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </method>
       <method name="SetColumnTitle" cname="gda_data_model_set_column_title">
@@ -524,18 +460,6 @@
           <parameter type="const-gchar*" name="title" />
         </parameters>
       </method>
-      <method name="SetCommandText" cname="gda_data_model_set_command_text">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="txt" />
-        </parameters>
-      </method>
-      <method name="SetCommandType" cname="gda_data_model_set_command_type">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaCommandType" name="type" />
-        </parameters>
-      </method>
       <method name="Thaw" cname="gda_data_model_thaw">
         <return-type type="void" />
       </method>
@@ -563,73 +487,160 @@
           <parameter type="const-gchar*" name="name" />
         </parameters>
       </method>
-      <method name="UpdateColumn" cname="gda_data_model_update_column">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gint" name="col" />
-          <parameter type="const-GdaColumn*" name="attrs" />
-        </parameters>
-      </method>
       <method name="UpdateRow" cname="gda_data_model_update_row">
         <return-type type="gboolean" />
         <parameters>
-          <parameter type="const-GdaRow*" name="row" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </method>
     </interface>
-    <object name="Client" cname="GdaClient" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaClientPrivate*" />
-      <signal name="EventNotification" cname="event_notification" when="LAST">
-        <return-type type="void" />
+    <object name="Blob" cname="GdaBlob" parent="GObject">
+      <virtual_method name="Open" cname="open">
+        <return-type type="gint" />
         <parameters>
-          <parameter type="GdaClient*" name="client" />
-          <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaClientEvent" name="event" />
-          <parameter type="GdaParameterList*" name="params" />
+          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="GdaBlobMode" name="mode" />
         </parameters>
-      </signal>
-      <method name="BeginTransaction" cname="gda_client_begin_transaction">
-        <return-type type="gboolean" />
+      </virtual_method>
+      <virtual_method name="Read" cname="read">
+        <return-type type="gint" />
         <parameters>
-          <parameter type="GdaTransaction*" name="xaction" />
+          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="gpointer" name="buf" />
+          <parameter type="gint" name="size" />
+          <parameter type="gint*" name="bytes_read" />
         </parameters>
-      </method>
-      <method name="CloseAllConnections" cname="gda_client_close_all_connections">
-        <return-type type="void" />
-      </method>
-      <method name="CommitTransaction" cname="gda_client_commit_transaction">
-        <return-type type="gboolean" />
+      </virtual_method>
+      <virtual_method name="Write" cname="write">
+        <return-type type="gint" />
         <parameters>
-          <parameter type="GdaTransaction*" name="xaction" />
+          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="gpointer" name="buf" />
+          <parameter type="gint" name="size" />
+          <parameter type="gint*" name="bytes_written" />
         </parameters>
-      </method>
-      <method name="CreateDatabase" cname="gda_client_create_database">
-        <return-type type="gboolean" />
+      </virtual_method>
+      <virtual_method name="Lseek" cname="lseek">
+        <return-type type="gint" />
         <parameters>
-          <parameter type="const-gchar*" name="provider" />
-          <parameter type="GdaParameterList*" name="params" />
-          <parameter type="GError**" name="error" />
+          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="gint" name="offset" />
+          <parameter type="gint" name="whence" />
         </parameters>
-      </method>
-      <method name="DropDatabase" cname="gda_client_drop_database">
-        <return-type type="gboolean" />
+      </virtual_method>
+      <virtual_method name="Close" cname="close">
+        <return-type type="gint" />
         <parameters>
-          <parameter type="const-gchar*" name="provider" />
-          <parameter type="GdaParameterList*" name="params" />
-          <parameter type="GError**" name="error" />
+          <parameter type="GdaBlob*" name="blob" />
         </parameters>
-      </method>
-      <method name="FindConnection" cname="gda_client_find_connection">
-        <return-type type="GdaConnection*" />
+      </virtual_method>
+      <virtual_method name="Remove" cname="remove">
+        <return-type type="gint" />
         <parameters>
-          <parameter type="const-gchar*" name="dsn" />
-          <parameter type="const-gchar*" name="username" />
-          <parameter type="const-gchar*" name="password" />
+          <parameter type="GdaBlob*" name="blob" />
         </parameters>
-      </method>
-      <method name="GetConnections" cname="gda_client_get_connections">
-        <return-type type="const-GList*" />
-      </method>
+      </virtual_method>
+      <virtual_method name="GetSqlId" cname="get_sql_id">
+        <return-type type="gchar*" />
+        <parameters>
+          <parameter type="GdaBlob*" name="blob" />
+        </parameters>
+      </virtual_method>
+      <method name="Close" cname="gda_blob_close">
+        <return-type type="gint" />
+      </method>
+      <method name="GetSqlId" cname="gda_blob_get_sql_id">
+        <return-type type="gchar*" />
+      </method>
+      <method name="GetType" cname="gda_blob_get_type" shared="true">
+        <return-type type="GType" />
+      </method>
+      <method name="Lseek" cname="gda_blob_lseek">
+        <return-type type="gint" />
+        <parameters>
+          <parameter type="gint" name="offset" />
+          <parameter type="gint" name="whence" />
+        </parameters>
+      </method>
+      <method name="Open" cname="gda_blob_open">
+        <return-type type="gint" />
+        <parameters>
+          <parameter type="GdaBlobMode" name="mode" />
+        </parameters>
+      </method>
+      <method name="Read" cname="gda_blob_read">
+        <return-type type="gint" />
+        <parameters>
+          <parameter type="gpointer" name="buf" />
+          <parameter type="gint" name="size" />
+          <parameter type="gint*" name="bytes_read" />
+        </parameters>
+      </method>
+      <method name="Remove" cname="gda_blob_remove">
+        <return-type type="gint" />
+      </method>
+      <method name="Write" cname="gda_blob_write">
+        <return-type type="gint" />
+        <parameters>
+          <parameter type="gpointer" name="buf" />
+          <parameter type="gint" name="size" />
+          <parameter type="gint*" name="bytes_written" />
+        </parameters>
+      </method>
+    </object>
+    <object name="Client" cname="GdaClient" parent="GObject">
+      <field name="Priv" cname="priv" type="GdaClientPrivate*" />
+      <signal name="EventNotification" cname="event_notification" when="LAST">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="GdaClient*" name="client" />
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="GdaClientEvent" name="event" />
+          <parameter type="GdaParameterList*" name="params" />
+        </parameters>
+      </signal>
+      <method name="BeginTransaction" cname="gda_client_begin_transaction">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="GdaTransaction*" name="xaction" />
+        </parameters>
+      </method>
+      <method name="CloseAllConnections" cname="gda_client_close_all_connections">
+        <return-type type="void" />
+      </method>
+      <method name="CommitTransaction" cname="gda_client_commit_transaction">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="GdaTransaction*" name="xaction" />
+        </parameters>
+      </method>
+      <method name="CreateDatabase" cname="gda_client_create_database">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="const-gchar*" name="provider" />
+          <parameter type="GdaParameterList*" name="params" />
+          <parameter type="GError**" name="error" />
+        </parameters>
+      </method>
+      <method name="DropDatabase" cname="gda_client_drop_database">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="const-gchar*" name="provider" />
+          <parameter type="GdaParameterList*" name="params" />
+          <parameter type="GError**" name="error" />
+        </parameters>
+      </method>
+      <method name="FindConnection" cname="gda_client_find_connection">
+        <return-type type="GdaConnection*" />
+        <parameters>
+          <parameter type="const-gchar*" name="dsn" />
+          <parameter type="const-gchar*" name="username" />
+          <parameter type="const-gchar*" name="password" />
+        </parameters>
+      </method>
+      <method name="GetConnections" cname="gda_client_get_connections">
+        <return-type type="const-GList*" />
+      </method>
       <method name="GetDsnSpecs" cname="gda_client_get_dsn_specs">
         <return-type type="gchar*" />
         <parameters>
@@ -730,6 +741,14 @@
           <parameter type="const-gchar*" name="old_name" />
         </parameters>
       </signal>
+      <signal name="GdaTypeChanged" cname="gda_type_changed" when="LAST">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="GdaColumn*" name="column" />
+          <parameter type="GdaValueType" name="old_type" />
+          <parameter type="GdaValueType" name="new_type" />
+        </parameters>
+      </signal>
       <method name="Copy" cname="gda_column_copy">
         <return-type type="GdaColumn*" owned="true" />
       </method>
@@ -739,9 +758,6 @@
           <parameter type="const-GdaColumn*" name="rhs" />
         </parameters>
       </method>
-      <method name="Free" cname="gda_column_free">
-        <return-type type="void" />
-      </method>
       <method name="GetAllowNull" cname="gda_column_get_allow_null">
         <return-type type="gboolean" />
       </method>
@@ -781,6 +797,9 @@
       <method name="GetTable" cname="gda_column_get_table">
         <return-type type="const-gchar*" />
       </method>
+      <method name="GetTitle" cname="gda_column_get_title">
+        <return-type type="const-gchar*" />
+      </method>
       <method name="GetType" cname="gda_column_get_type" shared="true">
         <return-type type="GType" />
       </method>
@@ -866,6 +885,12 @@
           <parameter type="const-gchar*" name="table" />
         </parameters>
       </method>
+      <method name="SetTitle" cname="gda_column_set_title">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="const-gchar*" name="title" />
+        </parameters>
+      </method>
       <method name="SetUniqueKey" cname="gda_column_set_unique_key">
         <return-type type="void" />
         <parameters>
@@ -884,9 +909,6 @@
           <parameter type="const-GdaColumnIndex*" name="rhs" />
         </parameters>
       </method>
-      <method name="Free" cname="gda_column_index_free">
-        <return-type type="void" />
-      </method>
       <method name="GetColumnName" cname="gda_column_index_get_column_name">
         <return-type type="const-gchar*" />
       </method>
@@ -934,7 +956,7 @@
         <return-type type="void" />
         <parameters>
           <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GList*" name="error_list" />
+          <parameter type="GdaConnectionEvent*" name="error" />
         </parameters>
       </signal>
       <method name="AddEvent" cname="gda_connection_add_event">
@@ -943,17 +965,17 @@
           <parameter type="GdaConnectionEvent*" name="error" />
         </parameters>
       </method>
-      <method name="AddEventList" cname="gda_connection_add_event_list">
+      <method name="AddEventString" cname="gda_connection_add_event_string">
         <return-type type="void" />
         <parameters>
-          <parameter type="GList*" name="error_list" />
+          <parameter type="const-gchar*" name="str" />
+          <parameter ellipsis="true" />
         </parameters>
       </method>
-      <method name="AddEventString" cname="gda_connection_add_event_string">
+      <method name="AddEventsList" cname="gda_connection_add_events_list">
         <return-type type="void" />
         <parameters>
-          <parameter type="const-gchar*" name="str" />
-          <parameter ellipsis="true" />
+          <parameter type="GList*" name="events_list" />
         </parameters>
       </method>
       <method name="BeginTransaction" cname="gda_connection_begin_transaction">
@@ -981,10 +1003,7 @@
         </parameters>
       </method>
       <method name="CreateBlob" cname="gda_connection_create_blob">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaBlob*" name="blob" />
-        </parameters>
+        <return-type type="GdaBlob*" />
       </method>
       <method name="CreateIndex" cname="gda_connection_create_index">
         <return-type type="gboolean" />
@@ -1039,6 +1058,12 @@
           <parameter type="GError**" name="error" />
         </parameters>
       </method>
+      <method name="FetchBlobById" cname="gda_connection_fetch_blob_by_id">
+        <return-type type="GdaBlob*" />
+        <parameters>
+          <parameter type="const-gchar*" name="sql_id" />
+        </parameters>
+      </method>
       <method name="GetClient" cname="gda_connection_get_client">
         <return-type type="GdaClient*" />
       </method>
@@ -1096,6 +1121,7 @@
           <parameter type="const-gchar*" name="username" />
           <parameter type="const-gchar*" name="password" />
           <parameter type="GdaConnectionOptions" name="options" />
+          <parameter type="GError**" name="error" />
         </parameters>
       </constructor>
       <method name="Reset" cname="gda_connection_reset">
@@ -1164,7 +1190,11 @@
           <parameter type="GList*" name="events" />
         </parameters>
       </method>
-      <constructor cname="gda_connection_event_new" />
+      <constructor cname="gda_connection_event_new">
+        <parameters>
+          <parameter type="GdaConnectionEventType" name="type" />
+        </parameters>
+      </constructor>
       <method name="SetCode" cname="gda_connection_event_set_code">
         <return-type type="void" />
         <parameters>
@@ -1242,11 +1272,11 @@
           <parameter type="GdaDataModelBase*" name="model" />
         </parameters>
       </virtual_method>
-      <virtual_method name="DescribeColumn" cname="describe_column">
-        <return-type type="GdaColumn*" />
+      <virtual_method name="GetRow" cname="get_row">
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="GdaDataModelBase*" name="model" />
-          <parameter type="gint" name="col" />
+          <parameter type="gint" name="row" />
         </parameters>
       </virtual_method>
       <virtual_method name="IsUpdatable" cname="is_updatable">
@@ -1255,40 +1285,38 @@
           <parameter type="GdaDataModelBase*" name="model" />
         </parameters>
       </virtual_method>
-      <virtual_method name="AppendRow" cname="append_row">
-        <return-type type="gboolean" />
+      <virtual_method name="AppendValues" cname="append_values">
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="GdaDataModelBase*" name="model" />
-          <parameter type="GdaRow*" name="row" />
+          <parameter type="const-GList*" name="values" />
         </parameters>
       </virtual_method>
-      <virtual_method name="RemoveRow" cname="remove_row">
+      <virtual_method name="AppendRow" cname="append_row">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModelBase*" name="model" />
-          <parameter type="const-GdaRow*" name="row" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
       <virtual_method name="UpdateRow" cname="update_row">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModelBase*" name="model" />
-          <parameter type="const-GdaRow*" name="row" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="AppendColumn" cname="append_column">
+      <virtual_method name="RemoveRow" cname="remove_row">
         <return-type type="gboolean" />
         <parameters>
           <parameter type="GdaDataModelBase*" name="model" />
-          <parameter type="const-GdaColumn*" name="attrs" />
+          <parameter type="GdaRow*" name="row" />
         </parameters>
       </virtual_method>
-      <virtual_method name="UpdateColumn" cname="update_column">
-        <return-type type="gboolean" />
+      <virtual_method name="AppendColumn" cname="append_column">
+        <return-type type="GdaColumn*" />
         <parameters>
           <parameter type="GdaDataModelBase*" name="model" />
-          <parameter type="gint" name="col" />
-          <parameter type="const-GdaColumn*" name="attrs" />
         </parameters>
       </virtual_method>
       <virtual_method name="RemoveColumn" cname="remove_column">
@@ -1335,7 +1363,7 @@
     <object name="DataModelList" cname="GdaDataModelList" parent="GdaDataModelBase">
       <field name="Priv" cname="priv" type="GdaDataModelListPrivate*" />
       <method name="AppendValue" cname="gda_data_model_list_append_value">
-        <return-type type="const-GdaRow*" />
+        <return-type type="GdaRow*" />
         <parameters>
           <parameter type="const-GdaValue*" name="value" />
         </parameters>
@@ -1350,6 +1378,104 @@
         </parameters>
       </constructor>
     </object>
+    <object name="Row" cname="GdaRow" parent="GObject">
+      <field name="Priv" cname="priv" type="GdaRowPrivate*" />
+      <signal name="ValueChanged" cname="value_changed" when="LAST">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="GdaRow*" name="row" />
+          <parameter type="gint" name="num" />
+          <parameter type="const-GdaValue*" name="old_value" />
+          <parameter type="const-GdaValue*" name="new_value" />
+        </parameters>
+      </signal>
+      <signal name="ValueToChange" cname="value_to_change" when="LAST">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="GdaRow*" name="row" />
+          <parameter type="gint" name="num" />
+          <parameter type="const-GdaValue*" name="current" />
+          <parameter type="const-GdaValue*" name="proposed" />
+        </parameters>
+      </signal>
+      <property name="Model" cname="model" type="gpointer" readable="true" writeable="true" />
+      <property name="Values" cname="values" type="gpointer" writeable="true" />
+      <property name="NbValues" cname="nb_values" type="gint" writeable="true" />
+      <method name="Copy" cname="gda_row_copy">
+        <return-type type="GdaRow*" owned="true" />
+      </method>
+      <method name="GetId" cname="gda_row_get_id">
+        <return-type type="const-gchar*" />
+      </method>
+      <method name="GetIsDefault" cname="gda_row_get_is_default">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="gint" name="num" />
+        </parameters>
+      </method>
+      <method name="GetLength" cname="gda_row_get_length">
+        <return-type type="gint" />
+      </method>
+      <method name="GetModel" cname="gda_row_get_model">
+        <return-type type="GdaDataModel*" />
+      </method>
+      <method name="GetNumber" cname="gda_row_get_number">
+        <return-type type="gint" />
+      </method>
+      <method name="GetType" cname="gda_row_get_type" shared="true">
+        <return-type type="GType" />
+      </method>
+      <method name="GetValue" cname="gda_row_get_value">
+        <return-type type="GdaValue*" />
+        <parameters>
+          <parameter type="gint" name="num" />
+        </parameters>
+      </method>
+      <constructor cname="gda_row_new">
+        <parameters>
+          <parameter type="GdaDataModel*" name="model" />
+          <parameter type="gint" name="count" />
+        </parameters>
+      </constructor>
+      <constructor cname="gda_row_new_from_list">
+        <parameters>
+          <parameter type="GdaDataModel*" name="model" />
+          <parameter type="const-GList*" name="values" />
+        </parameters>
+      </constructor>
+      <method name="SetId" cname="gda_row_set_id">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="const-gchar*" name="id" />
+        </parameters>
+      </method>
+      <method name="SetIsDefault" cname="gda_row_set_is_default">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="gint" name="num" />
+          <parameter type="gboolean" name="is_default" />
+        </parameters>
+      </method>
+      <method name="SetModel" cname="gda_row_set_model">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="GdaDataModel*" name="model" />
+        </parameters>
+      </method>
+      <method name="SetNumber" cname="gda_row_set_number">
+        <return-type type="void" />
+        <parameters>
+          <parameter type="gint" name="number" />
+        </parameters>
+      </method>
+      <method name="SetValue" cname="gda_row_set_value">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="gint" name="num" />
+          <parameter type="const-GdaValue*" name="value" />
+        </parameters>
+      </method>
+    </object>
     <object name="Select" cname="GdaSelect" parent="GdaDataModelArray">
       <field name="Priv" cname="priv" type="GdaSelectPrivate*" />
       <method name="AddSource" cname="gda_select_add_source">
@@ -1541,11 +1667,18 @@
         </parameters>
       </virtual_method>
       <virtual_method name="CreateBlob" cname="create_blob">
-        <return-type type="gboolean" />
+        <return-type type="GdaBlob*" />
         <parameters>
           <parameter type="GdaServerProvider*" name="provider" />
           <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaBlob*" name="blob" />
+        </parameters>
+      </virtual_method>
+      <virtual_method name="FetchBlob" cname="fetch_blob">
+        <return-type type="GdaBlob*" />
+        <parameters>
+          <parameter type="GdaServerProvider*" name="provider" />
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="const-gchar*" name="sql_id" />
         </parameters>
       </virtual_method>
       <virtual_method name="ValueToSqlString" cname="value_to_sql_string">
@@ -1584,10 +1717,9 @@
         </parameters>
       </method>
       <method name="CreateBlob" cname="gda_server_provider_create_blob">
-        <return-type type="gboolean" />
+        <return-type type="GdaBlob*" />
         <parameters>
           <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaBlob*" name="blob" />
         </parameters>
       </method>
       <method name="CreateDatabaseCnc" cname="gda_server_provider_create_database_cnc">
@@ -1645,6 +1777,13 @@
           <parameter type="GdaParameterList*" name="params" />
         </parameters>
       </method>
+      <method name="FetchBlobById" cname="gda_server_provider_fetch_blob_by_id">
+        <return-type type="GdaBlob*" />
+        <parameters>
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="const-gchar*" name="sql_id" />
+        </parameters>
+      </method>
       <method name="GetDatabase" cname="gda_server_provider_get_database">
         <return-type type="const-gchar*" />
         <parameters>
@@ -1667,1122 +1806,138 @@
         </parameters>
       </method>
       <method name="GetServerVersion" cname="gda_server_provider_get_server_version">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="GdaConnection*" name="cnc" />
-        </parameters>
-      </method>
-      <method name="GetSpecs" cname="gda_server_provider_get_specs">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="GdaClientSpecsType" name="action_type" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="gda_server_provider_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="GetVersion" cname="gda_server_provider_get_version">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="OpenConnection" cname="gda_server_provider_open_connection">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaQuarkList*" name="params" />
-          <parameter type="const-gchar*" name="username" />
-          <parameter type="const-gchar*" name="password" />
-        </parameters>
-      </method>
-      <method name="PerformActionParams" cname="gda_server_provider_perform_action_params">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaParameterList*" name="params" />
-          <parameter type="GdaClientSpecsType" name="action_type" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ResetConnection" cname="gda_server_provider_reset_connection">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaConnection*" name="cnc" />
-        </parameters>
-      </method>
-      <method name="RollbackTransaction" cname="gda_server_provider_rollback_transaction">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaTransaction*" name="xaction" />
-        </parameters>
-      </method>
-      <method name="Supports" cname="gda_server_provider_supports">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaConnectionFeature" name="feature" />
-        </parameters>
-      </method>
-      <method name="ValueToSqlString" cname="gda_server_provider_value_to_sql_string">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="GdaConnection*" name="cnc" />
-          <parameter type="GdaValue*" name="from" />
-        </parameters>
-      </method>
-    </object>
-    <object name="Table" cname="GdaTable" parent="GdaDataModelArray">
-      <field name="Priv" cname="priv" type="GdaTablePrivate*" />
-      <signal name="NameChanged" cname="name_changed" when="LAST">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaTable*" name="table" />
-          <parameter type="const-gchar*" name="old_name" />
-        </parameters>
-      </signal>
-      <method name="AddDataFromModel" cname="gda_table_add_data_from_model">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-GdaDataModel*" name="model" />
-        </parameters>
-      </method>
-      <method name="AddField" cname="gda_table_add_field">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-GdaColumn*" name="column" />
-        </parameters>
-      </method>
-      <method name="FindColumn" cname="gda_table_find_column">
-        <return-type type="GdaColumn*" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </method>
-      <method name="GetColumns" cname="gda_table_get_columns">
-        <return-type type="GList*" />
-      </method>
-      <method name="GetName" cname="gda_table_get_name">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetType" cname="gda_table_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_table_new">
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_table_new_from_model">
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-GdaDataModel*" name="model" />
-          <parameter type="gboolean" name="add_data" />
-        </parameters>
-      </constructor>
-      <method name="SetName" cname="gda_table_set_name">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </method>
-    </object>
-    <object name="Threader" cname="GdaThreader" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaThreaderPrivate*" />
-      <signal name="Finished" cname="finished" when="FIRST">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaThreader*" name="thread" />
-          <parameter type="guint" name="job_id" />
-          <parameter type="gpointer" name="arg_data" />
-        </parameters>
-      </signal>
-      <signal name="Cancelled" cname="cancelled" when="FIRST">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaThreader*" name="thread" />
-          <parameter type="guint" name="job_id" />
-          <parameter type="gpointer" name="arg_data" />
-        </parameters>
-      </signal>
-      <method name="Cancel" cname="gda_threader_cancel">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="guint" name="job_id" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="gda_threader_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_threader_new" />
-      <method name="StartThread" cname="gda_threader_start_thread">
-        <return-type type="guint" />
-        <parameters>
-          <parameter type="GThreadFunc" name="func" />
-          <parameter type="gpointer" name="func_arg" />
-          <parameter type="GdaThreaderFunc" name="ok_callback" />
-          <parameter type="GdaThreaderFunc" name="cancel_callback" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-    </object>
-    <object name="Transaction" cname="GdaTransaction" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaTransactionPrivate*" />
-      <method name="GetIsolationLevel" cname="gda_transaction_get_isolation_level">
-        <return-type type="GdaTransactionIsolation" />
-      </method>
-      <method name="GetName" cname="gda_transaction_get_name">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetType" cname="gda_transaction_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_transaction_new">
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </constructor>
-      <method name="SetIsolationLevel" cname="gda_transaction_set_isolation_level">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaTransactionIsolation" name="level" />
-        </parameters>
-      </method>
-      <method name="SetName" cname="gda_transaction_set_name">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </method>
-    </object>
-    <object name="XmlConnection" cname="GdaXmlConnection" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaXmlConnectionPrivate*" />
-      <method name="GetDsn" cname="gda_xml_connection_get_dsn">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetPassword" cname="gda_xml_connection_get_password">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetType" cname="gda_xml_connection_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="GetUsername" cname="gda_xml_connection_get_username">
-        <return-type type="const-gchar*" />
-      </method>
-      <constructor cname="gda_xml_connection_new" />
-      <constructor cname="gda_xml_connection_new_from_file">
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xml_connection_new_from_string">
-        <parameters>
-          <parameter type="const-gchar*" name="string" />
-        </parameters>
-      </constructor>
-      <method name="SetDsn" cname="gda_xml_connection_set_dsn">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="dsn" />
-        </parameters>
-      </method>
-      <method name="SetFromFile" cname="gda_xml_connection_set_from_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="SetFromString" cname="gda_xml_connection_set_from_string">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="string" />
-        </parameters>
-      </method>
-      <method name="SetPassword" cname="gda_xml_connection_set_password">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="password" />
-        </parameters>
-      </method>
-      <method name="SetUsername" cname="gda_xml_connection_set_username">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="username" />
-        </parameters>
-      </method>
-    </object>
-    <object name="XmlDatabase" cname="GdaXmlDatabase" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaXmlDatabasePrivate*" />
-      <signal name="Changed" cname="changed" when="LAST">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXmlDatabase*" name="xmldb" />
-        </parameters>
-      </signal>
-      <method name="Changed" cname="gda_xml_database_changed">
-        <return-type type="void" />
-      </method>
-      <method name="FindTable" cname="gda_xml_database_find_table">
-        <return-type type="GdaTable*" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </method>
-      <method name="FreeTableList" cname="gda_xml_database_free_table_list" shared="true">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GList*" name="list" />
-        </parameters>
-      </method>
-      <method name="GetName" cname="gda_xml_database_get_name">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetTables" cname="gda_xml_database_get_tables">
-        <return-type type="GList*" />
-      </method>
-      <method name="GetType" cname="gda_xml_database_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="GetUri" cname="gda_xml_database_get_uri">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetUserVersion" cname="gda_xml_database_get_user_version">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetVersion" cname="gda_xml_database_get_version">
-        <return-type type="const-gchar*" />
-      </method>
-      <constructor cname="gda_xml_database_new" />
-      <constructor cname="gda_xml_database_new_from_uri">
-        <parameters>
-          <parameter type="const-gchar*" name="uri" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xml_database_new_table">
-        <parameters>
-          <parameter type="GdaXmlDatabase*" name="xmldb" />
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xml_database_new_table_from_model">
-        <parameters>
-          <parameter type="GdaXmlDatabase*" name="xmldb" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-GdaDataModel*" name="model" />
-          <parameter type="gboolean" name="add_data" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xml_database_new_table_from_node">
-        <parameters>
-          <parameter type="GdaXmlDatabase*" name="xmldb" />
-          <parameter type="xmlNodePtr" name="node" />
-        </parameters>
-      </constructor>
-      <method name="Reload" cname="gda_xml_database_reload">
-        <return-type type="void" />
-      </method>
-      <method name="RemoveTable" cname="gda_xml_database_remove_table">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </method>
-      <method name="Save" cname="gda_xml_database_save">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="uri" />
-        </parameters>
-      </method>
-      <method name="SetName" cname="gda_xml_database_set_name">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-        </parameters>
-      </method>
-      <method name="SetUri" cname="gda_xml_database_set_uri">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="uri" />
-        </parameters>
-      </method>
-      <method name="SetUserVersion" cname="gda_xml_database_set_user_version">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="user_version" />
-        </parameters>
-      </method>
-      <method name="ToString" cname="gda_xml_database_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </object>
-    <object name="XmlDocument" cname="GdaXmlDocument" parent="GObject">
-      <field name="Doc" cname="doc" type="xmlDocPtr" />
-      <field name="Dtd" cname="dtd" type="xmlDtdPtr" />
-      <field name="Root" cname="root" type="xmlNodePtr" />
-      <field name="Context" cname="context" type="xmlValidCtxtPtr" />
-      <signal name="Warning" cname="warning" when="LAST">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXmlDocument*" name="q" />
-          <parameter type="const-char*" name="msg" />
-        </parameters>
-      </signal>
-      <signal name="Error" cname="error" when="LAST">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXmlDocument*" name="q" />
-          <parameter type="const-char*" name="msg" />
-        </parameters>
-      </signal>
-      <method name="Construct" cname="gda_xml_document_construct">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="root_doc" />
-        </parameters>
-      </method>
-      <method name="GetCompressMode" cname="gda_xml_document_get_compress_mode">
-        <return-type type="gint" />
-      </method>
-      <method name="GetType" cname="gda_xml_document_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xml_document_new">
-        <parameters>
-          <parameter type="const-gchar*" name="root_doc" />
-        </parameters>
-      </constructor>
-      <method name="SetCompressMode" cname="gda_xml_document_set_compress_mode">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="mode" />
-        </parameters>
-      </method>
-      <method name="Stringify" cname="gda_xml_document_stringify">
-        <return-type type="gchar*" />
-      </method>
-      <method name="ToFile" cname="gda_xml_document_to_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="uri" />
-        </parameters>
-      </method>
-    </object>
-    <object name="XqlAtom" cname="GdaXqlAtom" parent="GdaXqlItem">
-      <method name="GetType" cname="gda_xql_atom_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_atom_new">
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlBin" cname="GdaXqlBin" parent="GdaXqlItem">
-      <field name="Priv" cname="priv" type="GdaXqlBinPrivate*" />
-      <method name="GetChild" cname="gda_xql_bin_get_child">
-        <return-type type="GdaXqlItem*" />
-      </method>
-      <method name="GetType" cname="gda_xql_bin_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_bin_new">
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-          <parameter type="gchar*" name="sqlfmt" />
-          <parameter type="gchar*" name="sqlop" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_bin_new_exists" />
-      <constructor cname="gda_xql_bin_new_having" />
-      <constructor cname="gda_xql_bin_new_having_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="data" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_bin_new_intersect" />
-      <constructor cname="gda_xql_bin_new_minus" />
-      <constructor cname="gda_xql_bin_new_not" />
-      <constructor cname="gda_xql_bin_new_not_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="data" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_bin_new_null" />
-      <constructor cname="gda_xql_bin_new_null_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="data" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_bin_new_on" />
-      <constructor cname="gda_xql_bin_new_union" />
-      <constructor cname="gda_xql_bin_new_unionall" />
-      <constructor cname="gda_xql_bin_new_where" />
-      <constructor cname="gda_xql_bin_new_where_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="data" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_bin_new_with_data">
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-          <parameter type="gchar*" name="sqlfmt" />
-          <parameter type="gchar*" name="sqlop" />
-          <parameter type="GdaXqlItem*" name="child" />
-        </parameters>
-      </constructor>
-      <method name="SetChild" cname="gda_xql_bin_set_child">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </method>
-    </object>
-    <object name="XqlColumn" cname="GdaXqlColumn" parent="GdaXqlAtom">
-      <method name="GetType" cname="gda_xql_column_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_column_new" />
-      <constructor cname="gda_xql_column_new_with_data">
-        <parameters>
-          <parameter type="gint" name="num" />
-          <parameter type="gboolean" name="asc" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlConst" cname="GdaXqlConst" parent="GdaXqlAtom">
-      <method name="GetType" cname="gda_xql_const_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_const_new" />
-      <constructor cname="gda_xql_const_new_with_data">
-        <parameters>
-          <parameter type="gchar*" name="value" />
-          <parameter type="gchar*" name="alias" />
-          <parameter type="gchar*" name="type" />
-          <parameter type="gchar*" name="null" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlDelete" cname="GdaXqlDelete" parent="GdaXqlDml">
-      <method name="GetType" cname="gda_xql_delete_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_delete_new" />
-    </object>
-    <object name="XqlDml" cname="GdaXqlDml" parent="GdaXqlItem">
-      <field name="Priv" cname="priv" type="GdaXqlDmlPrivate*" />
-      <virtual_method name="AddTargetFromText" cname="add_target_from_text">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="gchar*" name="name" />
-          <parameter type="GdaXqlItem*" name="join" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddFieldFromText" cname="add_field_from_text">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="gchar*" name="id" />
-          <parameter type="gchar*" name="name" />
-          <parameter type="gchar*" name="alias" />
-          <parameter type="gboolean" name="group" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddConstFromText" cname="add_const_from_text">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="gchar*" name="value" />
-          <parameter type="gchar*" name="type" />
-          <parameter type="gboolean" name="null" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddFunc" cname="add_func">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddQuery" cname="add_query">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddRowCondition" cname="add_row_condition">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="GdaXqlItem*" name="cond" />
-          <parameter type="gchar*" name="type" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddGroupCondition" cname="add_group_condition">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="GdaXqlItem*" name="cond" />
-          <parameter type="gchar*" name="type" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddOrder" cname="add_order">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="gint" name="column" />
-          <parameter type="gboolean" name="asc" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddSet" cname="add_set">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="AddSetConst" cname="add_set_const">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlDml*" name="xqldml" />
-          <parameter type="gchar*" name="field" />
-          <parameter type="gchar*" name="value" />
-          <parameter type="gchar*" name="type" />
-          <parameter type="gboolean" name="null" />
-        </parameters>
-      </virtual_method>
-      <method name="AddConstFromText" cname="gda_xql_dml_add_const_from_text">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="gchar*" name="value" />
-          <parameter type="gchar*" name="type" />
-          <parameter type="gboolean" name="null" />
-        </parameters>
-      </method>
-      <method name="AddFieldFromText" cname="gda_xql_dml_add_field_from_text">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="gchar*" name="id" />
-          <parameter type="gchar*" name="name" />
-          <parameter type="gchar*" name="alias" />
-          <parameter type="gboolean" name="group" />
-        </parameters>
-      </method>
-      <method name="AddFunc" cname="gda_xql_dml_add_func">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </method>
-      <method name="AddGroupCondition" cname="gda_xql_dml_add_group_condition">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="cond" />
-          <parameter type="gchar*" name="type" />
-        </parameters>
-      </method>
-      <method name="AddOrder" cname="gda_xql_dml_add_order">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="column" />
-          <parameter type="gboolean" name="asc" />
-        </parameters>
-      </method>
-      <method name="AddQuery" cname="gda_xql_dml_add_query">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </method>
-      <method name="AddRowCondition" cname="gda_xql_dml_add_row_condition">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="cond" />
-          <parameter type="gchar*" name="type" />
-        </parameters>
-      </method>
-      <method name="AddSet" cname="gda_xql_dml_add_set">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="item" />
-        </parameters>
-      </method>
-      <method name="AddSetConst" cname="gda_xql_dml_add_set_const">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="field" />
-          <parameter type="gchar*" name="value" />
-          <parameter type="gchar*" name="type" />
-          <parameter type="gboolean" name="null" />
-        </parameters>
-      </method>
-      <method name="AddTargetFromText" cname="gda_xql_dml_add_target_from_text">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="gchar*" name="name" />
-          <parameter type="GdaXqlItem*" name="join" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="gda_xql_dml_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-    </object>
-    <object name="XqlDual" cname="GdaXqlDual" parent="GdaXqlItem">
-      <field name="Priv" cname="priv" type="GdaXqlDualPrivate*" />
-      <method name="GetLeft" cname="gda_xql_dual_get_left">
-        <return-type type="GdaXqlItem*" />
-      </method>
-      <method name="GetRight" cname="gda_xql_dual_get_right">
-        <return-type type="GdaXqlItem*" />
-      </method>
-      <method name="GetType" cname="gda_xql_dual_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_dual_new">
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-          <parameter type="gchar*" name="sqlfmt" />
-          <parameter type="gchar*" name="sqlop" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_eq" />
-      <constructor cname="gda_xql_dual_new_eq_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_ge" />
-      <constructor cname="gda_xql_dual_new_ge_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_gt" />
-      <constructor cname="gda_xql_dual_new_gt_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_in" />
-      <constructor cname="gda_xql_dual_new_in_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_le" />
-      <constructor cname="gda_xql_dual_new_le_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_like" />
-      <constructor cname="gda_xql_dual_new_like_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_lt" />
-      <constructor cname="gda_xql_dual_new_lt_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_ne" />
-      <constructor cname="gda_xql_dual_new_ne_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_set" />
-      <constructor cname="gda_xql_dual_new_set_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_dual_new_with_data">
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-          <parameter type="gchar*" name="sqlfmt" />
-          <parameter type="gchar*" name="sqlop" />
-          <parameter type="GdaXqlItem*" name="left" />
-          <parameter type="GdaXqlItem*" name="right" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlField" cname="GdaXqlField" parent="GdaXqlAtom">
-      <method name="GetType" cname="gda_xql_field_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_field_new" />
-      <constructor cname="gda_xql_field_new_with_data">
-        <parameters>
-          <parameter type="gchar*" name="source" />
-          <parameter type="gchar*" name="name" />
-          <parameter type="gchar*" name="alias" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlFunc" cname="GdaXqlFunc" parent="GdaXqlBin">
-      <method name="AddConstFromText" cname="gda_xql_func_add_const_from_text">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="value" />
-          <parameter type="gchar*" name="type" />
-          <parameter type="gchar*" name="null" />
-        </parameters>
-      </method>
-      <method name="AddFieldFromText" cname="gda_xql_func_add_field_from_text">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="id" />
-          <parameter type="gchar*" name="name" />
-          <parameter type="gchar*" name="alias" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="gda_xql_func_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_func_new" />
-      <constructor cname="gda_xql_func_new_with_data">
-        <parameters>
-          <parameter type="gchar*" name="name" />
-          <parameter type="gchar*" name="alias" />
-          <parameter type="gchar*" name="aggregate" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlInsert" cname="GdaXqlInsert" parent="GdaXqlDml">
-      <method name="GetType" cname="gda_xql_insert_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_insert_new" />
-    </object>
-    <object name="XqlItem" cname="GdaXqlItem" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaXqlItemPrivate*" />
-      <virtual_method name="ToDom" cname="to_dom">
-        <return-type type="xmlNode*" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="xqlitem" />
-          <parameter type="xmlNode*" name="parNode" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="Add" cname="add">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="xqlitem" />
-          <parameter type="GdaXqlItem*" name="child" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="FindId" cname="find_id">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="xqlitem" />
-          <parameter type="gchar*" name="id" />
-        </parameters>
-      </virtual_method>
-      <virtual_method name="FindRef" cname="find_ref">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="xqlitem" />
-          <parameter type="gchar*" name="ref" />
-        </parameters>
-      </virtual_method>
-      <method name="Add" cname="gda_xql_item_add">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="child" />
-        </parameters>
-      </method>
-      <method name="AddId" cname="gda_xql_item_add_id">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="id" />
-        </parameters>
-      </method>
-      <method name="AddRef" cname="gda_xql_item_add_ref">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="ref" />
-        </parameters>
-      </method>
-      <method name="FindId" cname="gda_xql_item_find_id">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="gchar*" name="id" />
-        </parameters>
-      </method>
-      <method name="FindRef" cname="gda_xql_item_find_ref">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="gchar*" name="ref" />
-        </parameters>
-      </method>
-      <method name="FindRoot" cname="gda_xql_item_find_root">
-        <return-type type="GdaXqlItem*" />
-      </method>
-      <method name="GetAttrib" cname="gda_xql_item_get_attrib">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="gchar*" name="attrib" />
-        </parameters>
-      </method>
-      <method name="GetParent" cname="gda_xql_item_get_parent">
-        <return-type type="GdaXqlItem*" />
-      </method>
-      <method name="GetRef" cname="gda_xql_item_get_ref">
-        <return-type type="GdaXqlItem*" />
-        <parameters>
-          <parameter type="gchar*" name="ref" />
-        </parameters>
-      </method>
-      <method name="GetTag" cname="gda_xql_item_get_tag">
-        <return-type type="gchar*" />
-      </method>
-      <method name="GetType" cname="gda_xql_item_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="SetAttrib" cname="gda_xql_item_set_attrib">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="attrib" />
-          <parameter type="gchar*" name="value" />
-        </parameters>
-      </method>
-      <method name="SetParent" cname="gda_xql_item_set_parent">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaXqlItem*" name="parent" />
-        </parameters>
-      </method>
-      <method name="SetTag" cname="gda_xql_item_set_tag">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-        </parameters>
-      </method>
-      <method name="ToDom" cname="gda_xql_item_to_dom">
-        <return-type type="xmlNode*" />
-        <parameters>
-          <parameter type="xmlNode*" name="parent" />
-        </parameters>
-      </method>
-    </object>
-    <object name="XqlJoin" cname="GdaXqlJoin" parent="GdaXqlDual">
-      <method name="GetType" cname="gda_xql_join_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_join_new" />
-      <constructor cname="gda_xql_join_new_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="target" />
-          <parameter type="GdaXqlItem*" name="cond" />
-          <parameter type="gchar*" name="type" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlList" cname="GdaXqlList" parent="GdaXqlItem">
-      <field name="Priv" cname="priv" type="GdaXqlListPrivate*" />
-      <method name="GetType" cname="gda_xql_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_list_new">
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_xql_list_new_and" />
-      <constructor cname="gda_xql_list_new_arglist" />
-      <constructor cname="gda_xql_list_new_dest" />
-      <constructor cname="gda_xql_list_new_group" />
-      <constructor cname="gda_xql_list_new_joinlist" />
-      <constructor cname="gda_xql_list_new_or" />
-      <constructor cname="gda_xql_list_new_order" />
-      <constructor cname="gda_xql_list_new_setlist" />
-      <constructor cname="gda_xql_list_new_sourcelist" />
-      <constructor cname="gda_xql_list_new_targetlist" />
-      <constructor cname="gda_xql_list_new_valuelist" />
-      <method name="UnrefList" cname="gda_xql_list_unref_list" shared="true">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GSList*" name="list" />
-        </parameters>
-      </method>
-    </object>
-    <object name="XqlQuery" cname="GdaXqlQuery" parent="GdaXqlBin">
-      <method name="GetType" cname="gda_xql_query_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_query_new" />
-      <constructor cname="gda_xql_query_new_with_data">
-        <parameters>
-          <parameter type="GdaXqlItem*" name="xqlitem" />
-        </parameters>
-      </constructor>
-    </object>
-    <object name="XqlSelect" cname="GdaXqlSelect" parent="GdaXqlDml">
-      <method name="GetType" cname="gda_xql_select_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_select_new" />
-    </object>
-    <object name="XqlStack" cname="GdaXqlStack" parent="GObject">
-      <field name="Priv" cname="priv" type="GdaXqlStackPrivate*" />
-      <method name="Empty" cname="gda_xql_stack_empty">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetType" cname="gda_xql_stack_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_stack_new" />
-      <method name="Pop" cname="gda_xql_stack_pop">
-        <return-type type="GdaXqlItem*" />
-      </method>
-      <method name="Push" cname="gda_xql_stack_push">
-        <return-type type="void" />
+        <return-type type="const-gchar*" />
         <parameters>
-          <parameter type="GdaXqlItem*" name="item" />
+          <parameter type="GdaConnection*" name="cnc" />
         </parameters>
       </method>
-    </object>
-    <object name="XqlTarget" cname="GdaXqlTarget" parent="GdaXqlBin">
-      <method name="GetType" cname="gda_xql_target_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="gda_xql_target_new" />
-      <constructor cname="gda_xql_target_new_with_data">
+      <method name="GetSpecs" cname="gda_server_provider_get_specs">
+        <return-type type="gchar*" />
         <parameters>
-          <parameter type="gchar*" name="id" />
-          <parameter type="gchar*" name="name" />
-          <parameter type="GdaXqlItem*" name="join" />
+          <parameter type="GdaClientSpecsType" name="action_type" />
         </parameters>
-      </constructor>
-    </object>
-    <object name="XqlUpdate" cname="GdaXqlUpdate" parent="GdaXqlDml">
-      <method name="GetType" cname="gda_xql_update_get_type" shared="true">
-        <return-type type="GType" />
       </method>
-      <constructor cname="gda_xql_update_new" />
-    </object>
-    <object name="XqlValue" cname="GdaXqlValue" parent="GdaXqlBin">
-      <method name="GetType" cname="gda_xql_value_get_type" shared="true">
+      <method name="GetType" cname="gda_server_provider_get_type" shared="true">
         <return-type type="GType" />
       </method>
-      <constructor cname="gda_xql_value_new" />
-      <constructor cname="gda_xql_value_new_with_data">
+      <method name="GetVersion" cname="gda_server_provider_get_version">
+        <return-type type="const-gchar*" />
+      </method>
+      <method name="OpenConnection" cname="gda_server_provider_open_connection">
+        <return-type type="gboolean" />
         <parameters>
-          <parameter type="gchar*" name="id" />
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="GdaQuarkList*" name="params" />
+          <parameter type="const-gchar*" name="username" />
+          <parameter type="const-gchar*" name="password" />
         </parameters>
-      </constructor>
-    </object>
-    <object name="XqlValueRef" cname="GdaXqlValueRef" parent="GdaXqlAtom">
-      <method name="GetType" cname="gda_xql_valueref_get_type" shared="true">
-        <return-type type="GType" />
       </method>
-      <constructor cname="gda_xql_valueref_new" />
-    </object>
-    <object name="Blob" cname="GdaBlob" parent="GObject">
-      <callback cname="open">
-        <return-type type="gint" />
+      <method name="PerformActionParams" cname="gda_server_provider_perform_action_params">
+        <return-type type="gboolean" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob," />
+          <parameter type="GdaParameterList*" name="params" />
+          <parameter type="GdaClientSpecsType" name="action_type" />
+          <parameter type="GError**" name="error" />
         </parameters>
-      </callback>
-      <callback cname="read">
-        <return-type type="gint" />
+      </method>
+      <method name="ResetConnection" cname="gda_server_provider_reset_connection">
+        <return-type type="gboolean" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob," />
+          <parameter type="GdaConnection*" name="cnc" />
         </parameters>
-      </callback>
-      <callback cname="write">
-        <return-type type="gint" />
+      </method>
+      <method name="RollbackTransaction" cname="gda_server_provider_rollback_transaction">
+        <return-type type="gboolean" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob," />
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="GdaTransaction*" name="xaction" />
         </parameters>
-      </callback>
-      <callback cname="lseek">
-        <return-type type="gint" />
+      </method>
+      <method name="Supports" cname="gda_server_provider_supports">
+        <return-type type="gboolean" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob," />
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="GdaConnectionFeature" name="feature" />
         </parameters>
-      </callback>
-      <callback cname="close">
-        <return-type type="gint" />
+      </method>
+      <method name="ValueToSqlString" cname="gda_server_provider_value_to_sql_string">
+        <return-type type="gchar*" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="GdaConnection*" name="cnc" />
+          <parameter type="GdaValue*" name="from" />
         </parameters>
-      </callback>
-      <callback cname="remove">
-        <return-type type="gint" />
+      </method>
+    </object>
+    <object name="Threader" cname="GdaThreader" parent="GObject">
+      <field name="Priv" cname="priv" type="GdaThreaderPrivate*" />
+      <signal name="Finished" cname="finished" when="FIRST">
+        <return-type type="void" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="GdaThreader*" name="thread" />
+          <parameter type="guint" name="job_id" />
+          <parameter type="gpointer" name="arg_data" />
         </parameters>
-      </callback>
-      <callback cname="stringify">
-        <return-type type="gchar*" />
+      </signal>
+      <signal name="Cancelled" cname="cancelled" when="FIRST">
+        <return-type type="void" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="GdaThreader*" name="thread" />
+          <parameter type="guint" name="job_id" />
+          <parameter type="gpointer" name="arg_data" />
         </parameters>
-      </callback>
-      <callback cname="free_data">
+      </signal>
+      <method name="Cancel" cname="gda_threader_cancel">
         <return-type type="void" />
         <parameters>
-          <parameter type="GdaBlob*" name="blob" />
+          <parameter type="guint" name="job_id" />
         </parameters>
-      </callback>
-      <field name="PrivData" cname="priv_data" type="gpointer" />
-      <field name="UserData" cname="user_data" type="gpointer" />
-      <method name="Close" cname="gda_blob_close">
-        <return-type type="gint" />
       </method>
-      <method name="FreeData" cname="gda_blob_free_data">
-        <return-type type="void" />
+      <method name="GetType" cname="gda_threader_get_type" shared="true">
+        <return-type type="GType" />
       </method>
-      <method name="Lseek" cname="gda_blob_lseek">
-        <return-type type="gint" />
+      <constructor cname="gda_threader_new" />
+      <method name="StartThread" cname="gda_threader_start_thread">
+        <return-type type="guint" />
         <parameters>
-          <parameter type="gint" name="offset" />
-          <parameter type="gint" name="whence" />
+          <parameter type="GThreadFunc" name="func" />
+          <parameter type="gpointer" name="func_arg" />
+          <parameter type="GdaThreaderFunc" name="ok_callback" />
+          <parameter type="GdaThreaderFunc" name="cancel_callback" />
+          <parameter type="GError**" name="error" />
         </parameters>
       </method>
-      <method name="Open" cname="gda_blob_open">
-        <return-type type="gint" />
+    </object>
+    <object name="Transaction" cname="GdaTransaction" parent="GObject">
+      <field name="Priv" cname="priv" type="GdaTransactionPrivate*" />
+      <method name="GetIsolationLevel" cname="gda_transaction_get_isolation_level">
+        <return-type type="GdaTransactionIsolation" />
+      </method>
+      <method name="GetName" cname="gda_transaction_get_name">
+        <return-type type="const-gchar*" />
+      </method>
+      <method name="GetType" cname="gda_transaction_get_type" shared="true">
+        <return-type type="GType" />
+      </method>
+      <constructor cname="gda_transaction_new">
         <parameters>
-          <parameter type="GdaBlobMode" name="mode" />
+          <parameter type="const-gchar*" name="name" />
         </parameters>
-      </method>
-      <method name="Read" cname="gda_blob_read">
-        <return-type type="gint" />
+      </constructor>
+      <method name="SetIsolationLevel" cname="gda_transaction_set_isolation_level">
+        <return-type type="void" />
         <parameters>
-          <parameter type="gpointer" name="buf" />
-          <parameter type="gint" name="size" />
-          <parameter type="gint*" name="bytes_read" />
+          <parameter type="GdaTransactionIsolation" name="level" />
         </parameters>
       </method>
-      <method name="Remove" cname="gda_blob_remove">
-        <return-type type="gint" />
-      </method>
-      <method name="Stringify" cname="gda_blob_stringify">
-        <return-type type="gchar*" />
-      </method>
-      <method name="Write" cname="gda_blob_write">
-        <return-type type="gint" />
+      <method name="SetName" cname="gda_transaction_set_name">
+        <return-type type="void" />
         <parameters>
-          <parameter type="gpointer" name="buf" />
-          <parameter type="gint" name="size" />
-          <parameter type="gint*" name="bytes_written" />
+          <parameter type="const-gchar*" name="name" />
         </parameters>
       </method>
     </object>
     <boxed name="Binary" cname="GdaBinary">
-      <field name="Data" cname="data" type="gpointer" />
+      <field name="Data" cname="data" type="guchar*" />
       <field name="BinaryLength" cname="binary_length" type="glong" />
       <method name="Copy" cname="gda_binary_copy" shared="true">
         <return-type type="gpointer" />
@@ -2800,11 +1955,11 @@
         <return-type type="GType" />
       </method>
     </boxed>
-    <boxed name="Command" cname="GdaCommand">
-      <field name="Text" cname="text" type="gchar*" />
-      <field name="Type" cname="type" type="GdaCommandType" />
-      <field name="Options" cname="options" type="GdaCommandOptions" />
-      <field name="Xaction" cname="xaction" type="GdaTransaction*" />
+    <boxed name="Command" cname="GdaCommand" opaque="true">
+      <field name="Text" cname="text" type="gchar*" access="public" writeable="true" />
+      <field name="Type" cname="type" type="GdaCommandType" access="public" writeable="true" />
+      <field name="Options" cname="options" type="GdaCommandOptions" access="public" writeable="true" />
+      <field name="Xaction" cname="xaction" type="GdaTransaction*" access="public" writeable="true" />
       <method name="Copy" cname="gda_command_copy">
         <return-type type="GdaCommand*" owned="true" />
       </method>
@@ -2858,13 +2013,13 @@
         </parameters>
       </method>
     </boxed>
-    <boxed name="DataModelIndex" cname="GdaDataModelIndex">
-      <field name="Name" cname="name" type="gchar*" />
-      <field name="TableName" cname="table_name" type="gchar*" />
-      <field name="PrimaryKey" cname="primary_key" type="gboolean" />
-      <field name="UniqueKey" cname="unique_key" type="gboolean" />
-      <field name="References" cname="references" type="gchar*" />
-      <field name="ColIdxList" cname="col_idx_list" type="GList*" />
+    <boxed name="DataModelIndex" cname="GdaDataModelIndex" opaque="true">
+      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
+      <field name="TableName" cname="table_name" type="gchar*" access="public" writeable="true" />
+      <field name="PrimaryKey" cname="primary_key" type="gboolean" access="public" writeable="true" />
+      <field name="UniqueKey" cname="unique_key" type="gboolean" access="public" writeable="true" />
+      <field name="References" cname="references" type="gchar*" access="public" writeable="true" />
+      <field name="ColIdxList" cname="col_idx_list" type="GList*" access="public" writeable="true" />
       <method name="Copy" cname="gda_data_model_index_copy">
         <return-type type="GdaDataModelIndex*" owned="true" />
       </method>
@@ -3038,9 +2193,9 @@
         <return-type type="GType" />
       </method>
     </boxed>
-    <boxed name="Parameter" cname="GdaParameter">
-      <field name="Name" cname="name" type="gchar*" />
-      <field name="Value" cname="value" type="GdaValue*" />
+    <boxed name="Parameter" cname="GdaParameter" opaque="true">
+      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
+      <field name="Value" cname="value" type="GdaValue*" access="public" writeable="true" />
       <method name="Copy" cname="gda_parameter_copy">
         <return-type type="GdaParameter*" owned="true" />
       </method>
@@ -3148,11 +2303,11 @@
         <return-type type="GType" />
       </method>
     </boxed>
-    <boxed name="ProviderParameterInfo" cname="GdaProviderParameterInfo">
-      <field name="Name" cname="name" type="char*" />
-      <field name="ShortDescription" cname="short_description" type="char*" />
-      <field name="LongDescription" cname="long_description" type="char*" />
-      <field name="Type" cname="type" type="GdaValueType" />
+    <boxed name="ProviderParameterInfo" cname="GdaProviderParameterInfo" opaque="true">
+      <field name="Name" cname="name" type="char*" access="public" writeable="true" />
+      <field name="ShortDescription" cname="short_description" type="char*" access="public" writeable="true" />
+      <field name="LongDescription" cname="long_description" type="char*" access="public" writeable="true" />
+      <field name="Type" cname="type" type="GdaValueType" access="public" writeable="true" />
       <method name="Copy" cname="gda_provider_parameter_info_copy">
         <return-type type="GdaProviderParameterInfo*" owned="true" />
       </method>
@@ -3210,72 +2365,6 @@
         </parameters>
       </method>
     </struct>
-    <struct name="Row" cname="GdaRow" opaque="true">
-      <method name="Copy" cname="gda_row_copy">
-        <return-type type="GdaRow*" owned="true" />
-      </method>
-      <method name="Free" cname="gda_row_free">
-        <return-type type="void" />
-      </method>
-      <method name="GetId" cname="gda_row_get_id">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetIsDefault" cname="gda_row_get_is_default">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gint" name="num" />
-        </parameters>
-      </method>
-      <method name="GetLength" cname="gda_row_get_length">
-        <return-type type="gint" />
-      </method>
-      <method name="GetModel" cname="gda_row_get_model">
-        <return-type type="GdaDataModel*" />
-      </method>
-      <method name="GetNumber" cname="gda_row_get_number">
-        <return-type type="gint" />
-      </method>
-      <method name="GetType" cname="gda_row_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="GetValue" cname="gda_row_get_value">
-        <return-type type="GdaValue*" />
-        <parameters>
-          <parameter type="gint" name="num" />
-        </parameters>
-      </method>
-      <constructor cname="gda_row_new">
-        <parameters>
-          <parameter type="GdaDataModel*" name="model" />
-          <parameter type="gint" name="count" />
-        </parameters>
-      </constructor>
-      <constructor cname="gda_row_new_from_list">
-        <parameters>
-          <parameter type="GdaDataModel*" name="model" />
-          <parameter type="const-GList*" name="values" />
-        </parameters>
-      </constructor>
-      <method name="SetId" cname="gda_row_set_id">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-gchar*" name="id" />
-        </parameters>
-      </method>
-      <method name="SetIsDefault" cname="gda_row_set_is_default">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="num" />
-          <parameter type="gboolean" name="is_default" />
-        </parameters>
-      </method>
-      <method name="SetNumber" cname="gda_row_set_number">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gint" name="number" />
-        </parameters>
-      </method>
-    </struct>
     <boxed name="Time" cname="GdaTime">
       <field name="Hour" cname="hour" type="gushort" />
       <field name="Minute" cname="minute" type="gushort" />
@@ -3555,6 +2644,21 @@
         </parameters>
       </method>
     </class>
+    <class name="Provider" cname="GdaProvider_">
+      <method name="GetSchemaNbColumns" cname="gda_provider_get_schema_nb_columns" shared="true">
+        <return-type type="gint" />
+        <parameters>
+          <parameter type="GdaConnectionSchema" name="schema" />
+        </parameters>
+      </method>
+      <method name="InitSchemaModel" cname="gda_provider_init_schema_model" shared="true">
+        <return-type type="gboolean" />
+        <parameters>
+          <parameter type="GdaDataModel*" name="model" />
+          <parameter type="GdaConnectionSchema" name="schema" />
+        </parameters>
+      </method>
+    </class>
     <class name="Type" cname="GdaType_">
       <method name="FromString" cname="gda_type_from_string" shared="true">
         <return-type type="GdaValueType" />
@@ -3584,6 +2688,18 @@
           <parameter type="GdaValue*" name="value2" />
         </parameters>
       </method>
+      <method name="ConvertGdatypeToGtype" cname="gda_value_convert_gdatype_to_gtype" shared="true">
+        <return-type type="GType" />
+        <parameters>
+          <parameter type="GdaValueType" name="type" />
+        </parameters>
+      </method>
+      <method name="ConvertGtypeToGdatype" cname="gda_value_convert_gtype_to_gdatype" shared="true">
+        <return-type type="GdaValueType" />
+        <parameters>
+          <parameter type="GType" name="type" />
+        </parameters>
+      </method>
       <method name="Copy" cname="gda_value_copy" shared="true">
         <return-type type="GdaValue*" owned="true" />
         <parameters>
@@ -3612,7 +2728,6 @@
         <return-type type="const-GdaBinary*" />
         <parameters>
           <parameter type="GdaValue*" name="value" />
-          <parameter type="glong*" name="size" />
         </parameters>
       </method>
       <method name="GetBlob" cname="gda_value_get_blob" shared="true">
@@ -3771,7 +2886,7 @@
       <method name="NewBinary" cname="gda_value_new_binary" shared="true">
         <return-type type="GdaValue*" />
         <parameters>
-          <parameter type="gconstpointer" name="val" />
+          <parameter type="guchar*" name="val" />
           <parameter type="glong" name="size" />
         </parameters>
       </method>
@@ -3942,8 +3057,7 @@
         <return-type type="void" />
         <parameters>
           <parameter type="GdaValue*" name="value" />
-          <parameter type="gconstpointer" name="val" />
-          <parameter type="glong" name="size" />
+          <parameter type="const-GdaBinary*" name="binary" />
         </parameters>
       </method>
       <method name="SetBlob" cname="gda_value_set_blob" shared="true">
@@ -4100,13 +3214,6 @@
           <parameter type="guchar" name="val" />
         </parameters>
       </method>
-      <method name="SetType" cname="gda_value_set_type" shared="true">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GdaValue*" name="value" />
-          <parameter type="GType" name="type" />
-        </parameters>
-      </method>
       <method name="SetUinteger" cname="gda_value_set_uinteger" shared="true">
         <return-type type="void" />
         <parameters>
@@ -4124,51 +3231,6 @@
         <return-type type="xmlNodePtr" />
         <parameters>
           <parameter type="GdaValue*" name="value" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Xql" cname="GdaXql_">
-      <method name="DestroyHashPair" cname="gda_xql_destroy_hash_pair" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar*" name="key" />
-          <parameter type="gpointer*" name="value" />
-          <parameter type="GFreeFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="DomToSql" cname="gda_xql_dom_to_sql" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="xmlNode*" name="node" />
-          <parameter type="gboolean" name="freedoc" />
-        </parameters>
-      </method>
-      <method name="DomToXml" cname="gda_xql_dom_to_xml" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="xmlNode*" name="node" />
-          <parameter type="gboolean" name="freedoc" />
-        </parameters>
-      </method>
-      <method name="Gensym" cname="gda_xql_gensym" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="gchar*" name="sym" />
-        </parameters>
-      </method>
-      <method name="NewAttr" cname="gda_xql_new_attr" shared="true">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gchar*" name="key" />
-          <parameter type="gchar*" name="value" />
-          <parameter type="xmlNode*" name="node" />
-        </parameters>
-      </method>
-      <method name="NewNode" cname="gda_xql_new_node" shared="true">
-        <return-type type="xmlNode*" />
-        <parameters>
-          <parameter type="gchar*" name="tag" />
-          <parameter type="xmlNode*" name="parNode" />
         </parameters>
       </method>
     </class>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]