[libgda] Add (again) GIR file to track changes



commit 4c86335951f4529f19589258558c80d54ab96472
Author: Daniel Espinosa <esodan gmail com>
Date:   Thu May 30 17:30:34 2013 -0500

    Add (again) GIR file to track changes

 libgda/Gda-5.0.gir |29232 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 29232 insertions(+), 0 deletions(-)
---
diff --git a/libgda/Gda-5.0.gir b/libgda/Gda-5.0.gir
new file mode 100644
index 0000000..3b313de
--- /dev/null
+++ b/libgda/Gda-5.0.gir
@@ -0,0 +1,29232 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0";
+            xmlns:c="http://www.gtk.org/introspection/c/1.0";
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0";>
+  <include name="GObject" version="2.0"/>
+  <include name="libxml2" version="2.0"/>
+  <c:include name="libgda/libgda.h"/>
+  <namespace name="Gda"
+             version="5.0"
+             shared-library="libgda-5.0.so.4"
+             c:identifier-prefixes="Gda"
+             c:symbol-prefixes="gda">
+    <alias name="Mutex" c:type="GdaMutex">
+      <type name="GLib.RecMutex" c:type="GRecMutex"/>
+    </alias>
+    <alias name="SqlBuilderId" c:type="GdaSqlBuilderId">
+      <type name="guint" c:type="guint"/>
+    </alias>
+    <alias name="SqlErrorType" c:type="GdaSqlErrorType">
+      <type name="SqlError" c:type="GdaSqlError"/>
+    </alias>
+    <constant name="ATTRIBUTE_AUTO_INCREMENT"
+              value="__gda_attr_autoinc"
+              c:type="GDA_ATTRIBUTE_AUTO_INCREMENT">
+      <doc xml:whitespace="preserve">The corresponding attribute specifies if the object it refers to is 
auto incremented (value has a G_TYPE_BOOLEAN type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ATTRIBUTE_DESCRIPTION"
+              value="__gda_attr_descr"
+              c:type="GDA_ATTRIBUTE_DESCRIPTION">
+      <doc xml:whitespace="preserve">The corresponding attribute is the description of the object it refers 
to (value has a G_TYPE_STRING type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ATTRIBUTE_IS_DEFAULT"
+              value="__gda_attr_is_default"
+              c:type="GDA_ATTRIBUTE_IS_DEFAULT">
+      <doc xml:whitespace="preserve">The corresponding attribute specifies if the object it refers to has 
its value to default (value has a G_TYPE_BOOLEAN type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ATTRIBUTE_NAME"
+              value="__gda_attr_name"
+              c:type="GDA_ATTRIBUTE_NAME">
+      <doc xml:whitespace="preserve">The corresponding attribute is the name of the object it refers to 
(value has a G_TYPE_STRING type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ATTRIBUTE_NUMERIC_PRECISION"
+              value="__gda_attr_numeric_precision"
+              c:type="GDA_ATTRIBUTE_NUMERIC_PRECISION">
+      <doc xml:whitespace="preserve">The corresponding attribute is the number of significant digits of the 
object it refers to (value has a G_TYPE_INT type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ATTRIBUTE_NUMERIC_SCALE"
+              value="__gda_attr_numeric_scale"
+              c:type="GDA_ATTRIBUTE_NUMERIC_SCALE">
+      <doc xml:whitespace="preserve">The corresponding attribute is the number of significant digits to the 
right of the decimal point of the object it refers to (value has a G_TYPE_INT type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ATTRIBUTE_TREE_NODE_UNKNOWN_CHILDREN"
+              value="__gda_attr_tnuchild"
+              c:type="GDA_ATTRIBUTE_TREE_NODE_UNKNOWN_CHILDREN">
+      <doc xml:whitespace="preserve">This attribute, if %TRUE specifies that a tree node may or may not have 
any children nodes (value has a G_TYPE_BOOLEAN type).</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <record name="AttributesManager"
+            c:type="GdaAttributesManager"
+            disguised="1"
+            introspectable="0">
+      <method name="clear" c:identifier="gda_attributes_manager_clear">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+          <parameter name="ptr" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy"
+              c:identifier="gda_attributes_manager_copy"
+              introspectable="0">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="from_mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+          <parameter name="from" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer*"/>
+          </parameter>
+          <parameter name="to_mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </parameter>
+          <parameter name="to" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach" c:identifier="gda_attributes_manager_foreach">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+          <parameter name="ptr" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="func" transfer-ownership="none" closure="2">
+            <type name="AttributesManagerFunc"
+                  c:type="GdaAttributesManagerFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="gda_attributes_manager_free">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get" c:identifier="gda_attributes_manager_get">
+        <return-value transfer-ownership="none">
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+          <parameter name="ptr" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="att_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set" c:identifier="gda_attributes_manager_set">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+          <parameter name="ptr" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="att_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_full" c:identifier="gda_attributes_manager_set_full">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mgr" transfer-ownership="none">
+            <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+          </instance-parameter>
+          <parameter name="ptr" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="att_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <function name="new"
+                c:identifier="gda_attributes_manager_new"
+                introspectable="0">
+        <return-value>
+          <type name="AttributesManager" c:type="GdaAttributesManager*"/>
+        </return-value>
+        <parameters>
+          <parameter name="for_objects" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="signal_func" transfer-ownership="none" closure="2">
+            <type name="AttributesManagerSignal"
+                  c:type="GdaAttributesManagerSignal"/>
+          </parameter>
+          <parameter name="signal_data" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <callback name="AttributesManagerFunc" c:type="GdaAttributesManagerFunc">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="att_name" transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="AttributesManagerSignal"
+              c:type="GdaAttributesManagerSignal">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="att_name" transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Batch"
+           c:symbol-prefix="batch"
+           c:type="GdaBatch"
+           parent="GObject.Object"
+           glib:type-name="GdaBatch"
+           glib:get-type="gda_batch_get_type"
+           glib:type-struct="BatchClass">
+      <constructor name="new" c:identifier="gda_batch_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaBatch object</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="Batch" c:type="GdaBatch*"/>
+        </return-value>
+      </constructor>
+      <function name="error_quark" c:identifier="gda_batch_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="batch" transfer-ownership="none">
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+          <parameter name="changed_stmt" transfer-ownership="none">
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_statement" c:identifier="gda_batch_add_statement">
+        <doc xml:whitespace="preserve">Add @stmt to the list of statements managed by @batch. A 
#GdaStatement object can be
+added multiple times to a #GdaBatch object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="batch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch object</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a statement to add to @batch's statements list</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="gda_batch_copy">
+        <doc xml:whitespace="preserve">Copy constructor</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a the new copy of @orig</doc>
+          <type name="Batch" c:type="GdaBatch*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="orig" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch to make a copy of</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_parameters"
+              c:identifier="gda_batch_get_parameters"
+              throws="1">
+        <doc xml:whitespace="preserve">Get a new #GdaSet object which groups all the execution parameters
+which @batch needs for all the statements it includes.
+This new object is returned though @out_params.
+
+Note that if @batch does not need any parameter, then @out_params is set to %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="batch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch object</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+          <parameter name="out_params"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a place to store a new #GdaSet object, or %NULL</doc>
+            <type name="Set" c:type="GdaSet**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_statements" c:identifier="gda_batch_get_statements">
+        <doc xml:whitespace="preserve">Get a list of the #GdaStatement objects contained in @batch</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a list of #GdaStatement which should not be modified.</doc>
+          <type name="GLib.SList" c:type="const GSList*">
+            <type name="Statement"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="batch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch object</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_statement"
+              c:identifier="gda_batch_remove_statement">
+        <doc xml:whitespace="preserve">Removes @stmt from the list of statements managed by @batch. If @stmt 
is present several
+times in @batch's statements' list, then only the first one is removed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="batch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch object</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a statement to remove from @batch's statements list</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="serialize" c:identifier="gda_batch_serialize">
+        <doc xml:whitespace="preserve">Creates a string representing the contents of @batch.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a string containing the serialized version of @batch</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="batch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch object</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="BatchPrivate" c:type="GdaBatchPrivate*"/>
+      </field>
+      <glib:signal name="changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a #GdaStatement in the @batch object 
changes</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="changed_stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the statement which has been changed</doc>
+            <type name="GObject.Object"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BatchClass"
+            c:type="GdaBatchClass"
+            glib:is-gtype-struct-for="Batch">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="changed">
+        <callback name="changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="batch" transfer-ownership="none">
+              <type name="Batch" c:type="GdaBatch*"/>
+            </parameter>
+            <parameter name="changed_stmt" transfer-ownership="none">
+              <type name="Statement" c:type="GdaStatement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="BatchError" c:type="GdaBatchError">
+      <member name="batch_conflicting_parameter_error"
+              value="0"
+              c:identifier="GDA_BATCH_CONFLICTING_PARAMETER_ERROR">
+      </member>
+    </enumeration>
+    <record name="BatchPrivate" c:type="GdaBatchPrivate" disguised="1">
+    </record>
+    <record name="Binary"
+            c:type="GdaBinary"
+            glib:type-name="GdaBinary"
+            glib:get-type="gda_binary_get_type"
+            c:symbol-prefix="binary">
+      <field name="data" writable="1">
+        <type name="guint8" c:type="guchar*"/>
+      </field>
+      <field name="binary_length" writable="1">
+        <type name="glong" c:type="glong"/>
+      </field>
+      <method name="to_string" c:identifier="gda_binary_to_string">
+        <doc xml:whitespace="preserve">Converts all the non printable characters of bin-&gt;data into the 
"\xyz" representation
+where "xyz" is the octal representation of the byte, and the '\' (backslash) character
+is converted to "\\". Printable characters (defined by g_ascii_isprint()) as well as newline
+character are not converted.
+
+Note that the backslash and newline characters are considered as printable characters and
+will not be represented by the "\xyz" representation.
+
+Use this function to get a representation as much readable by humans as possible of a binary
+chunk. Note that this function is internally called when transforming a binary value to
+a string for example when using g_value_transform() or gda_value_stringify().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string from @bin</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bin" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a correctly filled @GdaBinary structure</doc>
+            <type name="Binary" c:type="const GdaBinary*"/>
+          </instance-parameter>
+          <parameter name="maxlen" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a maximum len used to truncate, or %0 for no maximum length</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <function name="copy" c:identifier="gda_binary_copy">
+        <doc xml:whitespace="preserve">Creates a new #GdaBinary structure from an existing one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaBinary which contains a copy of information 
in @boxed.  Free-function: gda_binary_free</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="boxed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">source to get a copy from.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="free" c:identifier="gda_binary_free">
+        <doc xml:whitespace="preserve">Deallocates all memory associated to the given #GdaBinary.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="boxed" transfer-ownership="full">
+            <doc xml:whitespace="preserve">#GdaBinary to free.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <record name="Blob"
+            c:type="GdaBlob"
+            glib:type-name="GdaBlob"
+            glib:get-type="gda_blob_get_type"
+            c:symbol-prefix="blob">
+      <doc xml:whitespace="preserve">Represents some binary data, accessed through a #GdaBlobOp object.
+ op is generally set up by database providers when giving access to an existing BLOB in
+a database, but can be modified if needed using gda_blob_set_op().</doc>
+      <field name="data" writable="1">
+        <type name="Binary" c:type="GdaBinary"/>
+      </field>
+      <field name="op" writable="1">
+        <type name="BlobOp" c:type="GdaBlobOp*"/>
+      </field>
+      <method name="set_op" c:identifier="gda_blob_set_op">
+        <doc xml:whitespace="preserve">correctly assigns @op to @blob</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob value</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </instance-parameter>
+          <parameter name="op" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaBlobOp object, or %NULL</doc>
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_string" c:identifier="gda_blob_to_string">
+        <doc xml:whitespace="preserve">Converts all the non printable characters of blob-&gt;data into the 
\xxx representation
+where xxx is the octal representation of the byte, and the '\' (backslash) character
+is converted to "\\".</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string from @blob</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a correctly filled @GdaBlob structure</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </instance-parameter>
+          <parameter name="maxlen" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a maximum len used to truncate, or 0 for no maximum length</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <function name="copy" c:identifier="gda_blob_copy">
+        <doc xml:whitespace="preserve">Creates a new #GdaBlob structure from an existing one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaBlob which contains a copy of information in 
@boxed.  Free-function: gda_blob_free</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="boxed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">source to get a copy from.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="free" c:identifier="gda_blob_free">
+        <doc xml:whitespace="preserve">Deallocates all memory associated to the given #GdaBlob.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="boxed" transfer-ownership="full">
+            <doc xml:whitespace="preserve">#GdaBlob to free.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <class name="BlobOp"
+           c:symbol-prefix="blob_op"
+           c:type="GdaBlobOp"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="GdaBlobOp"
+           glib:get-type="gda_blob_op_get_type"
+           glib:type-struct="BlobOpClass">
+      <virtual-method name="get_length" invoker="get_length">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the length of the blob in bytes. In case of error, -1 is returned 
and the provider should have added an error (a #GdaConnectionEvent) to the connection.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="read" invoker="read">
+        <doc xml:whitespace="preserve">Reads a chunk of bytes from the BLOB accessible through @op into 
@blob.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of bytes actually read. In case of error, -1 is returned 
and the provider should have added an error to the connection.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob to read data to</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset to read from the start of the blob (starts at 0)</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">maximum number of bytes to read.</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="write" invoker="write">
+        <doc xml:whitespace="preserve">Writes a chunk of bytes from a @blob to the BLOB accessible through 
@op, @blob is unchanged after
+this call.
+
+If @blob has an associated #GdaBlobOp (ie. if @blob-&gt;op is not %NULL) then the data to be written
+using @op is the data fetched using @blob-&gt;op.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of bytes written. In case of error, -1 is returned and 
the provider should have added an error to the connection.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob which contains the data to write</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset to write from the start of the blob (starts at 0)</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="write_all" invoker="write_all">
+        <doc xml:whitespace="preserve">Writes the whole contents of @blob into the blob manipulated by @op. 
If necessary the resulting
+blob is truncated from its previous length.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE on success</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob which contains the data to write</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_length" c:identifier="gda_blob_op_get_length">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the length of the blob in bytes. In case of error, -1 is returned 
and the provider should have added an error (a #GdaConnectionEvent) to the connection.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an existing #GdaBlobOp</doc>
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="read" c:identifier="gda_blob_op_read">
+        <doc xml:whitespace="preserve">Reads a chunk of bytes from the BLOB accessible through @op into 
@blob.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of bytes actually read. In case of error, -1 is returned 
and the provider should have added an error to the connection.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlobOp</doc>
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob to read data to</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset to read from the start of the blob (starts at 0)</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">maximum number of bytes to read.</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read_all" c:identifier="gda_blob_op_read_all">
+        <doc xml:whitespace="preserve">Reads the whole contents of the blob manipulated by @op into 
@blob</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if @blob-&gt;data contains the whole BLOB manipulated by 
@op</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlobOp</doc>
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob to read data to</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="write" c:identifier="gda_blob_op_write">
+        <doc xml:whitespace="preserve">Writes a chunk of bytes from a @blob to the BLOB accessible through 
@op, @blob is unchanged after
+this call.
+
+If @blob has an associated #GdaBlobOp (ie. if @blob-&gt;op is not %NULL) then the data to be written
+using @op is the data fetched using @blob-&gt;op.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of bytes written. In case of error, -1 is returned and 
the provider should have added an error to the connection.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlobOp</doc>
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob which contains the data to write</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset to write from the start of the blob (starts at 0)</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="write_all" c:identifier="gda_blob_op_write_all">
+        <doc xml:whitespace="preserve">Writes the whole contents of @blob into the blob manipulated by @op. 
If necessary the resulting
+blob is truncated from its previous length.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE on success</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlobOp</doc>
+            <type name="BlobOp" c:type="GdaBlobOp*"/>
+          </instance-parameter>
+          <parameter name="blob" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBlob which contains the data to write</doc>
+            <type name="Blob" c:type="GdaBlob*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="_gda_reserved1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </class>
+    <record name="BlobOpClass"
+            c:type="GdaBlobOpClass"
+            glib:is-gtype-struct-for="BlobOp">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_length">
+        <callback name="get_length">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the blob in bytes. In case of error, -1 is returned 
and the provider should have added an error (a #GdaConnectionEvent) to the connection.</doc>
+            <type name="glong" c:type="glong"/>
+          </return-value>
+          <parameters>
+            <parameter name="op" transfer-ownership="none">
+              <type name="BlobOp" c:type="GdaBlobOp*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="read">
+        <callback name="read">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of bytes actually read. In case of error, -1 is 
returned and the provider should have added an error to the connection.</doc>
+            <type name="glong" c:type="glong"/>
+          </return-value>
+          <parameters>
+            <parameter name="op" transfer-ownership="none">
+              <type name="BlobOp" c:type="GdaBlobOp*"/>
+            </parameter>
+            <parameter name="blob" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaBlob to read data to</doc>
+              <type name="Blob" c:type="GdaBlob*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:whitespace="preserve">offset to read from the start of the blob (starts at 0)</doc>
+              <type name="glong" c:type="glong"/>
+            </parameter>
+            <parameter name="size" transfer-ownership="none">
+              <doc xml:whitespace="preserve">maximum number of bytes to read.</doc>
+              <type name="glong" c:type="glong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="write">
+        <callback name="write">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of bytes written. In case of error, -1 is returned and 
the provider should have added an error to the connection.</doc>
+            <type name="glong" c:type="glong"/>
+          </return-value>
+          <parameters>
+            <parameter name="op" transfer-ownership="none">
+              <type name="BlobOp" c:type="GdaBlobOp*"/>
+            </parameter>
+            <parameter name="blob" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaBlob which contains the data to write</doc>
+              <type name="Blob" c:type="GdaBlob*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:whitespace="preserve">offset to write from the start of the blob (starts at 0)</doc>
+              <type name="glong" c:type="glong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="write_all">
+        <callback name="write_all">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE on success</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="op" transfer-ownership="none">
+              <type name="BlobOp" c:type="GdaBlobOp*"/>
+            </parameter>
+            <parameter name="blob" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaBlob which contains the data to write</doc>
+              <type name="Blob" c:type="GdaBlob*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="Column"
+           c:symbol-prefix="column"
+           c:type="GdaColumn"
+           parent="GObject.Object"
+           glib:type-name="GdaColumn"
+           glib:get-type="gda_column_get_type"
+           glib:type-struct="ColumnClass">
+      <constructor name="new" c:identifier="gda_column_new">
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaColumn object.</doc>
+          <type name="Column" c:type="GdaColumn*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="g_type_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="old_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="new_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="name_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="old_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="copy" c:identifier="gda_column_copy">
+        <doc xml:whitespace="preserve">Creates a new #GdaColumn object from an existing one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaColumn with a copy of the data in 
@column.</doc>
+          <type name="Column" c:type="GdaColumn*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column to get a copy from.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_allow_null" c:identifier="gda_column_get_allow_null">
+        <doc xml:whitespace="preserve">Gets the 'allow null' flag of the given column.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">whether the given column allows null values or not (%TRUE or 
%FALSE).</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute" c:identifier="gda_column_get_attribute">
+        <doc xml:whitespace="preserve">Get the value associated to a named attribute.
+
+Attributes can have any name, but Libgda proposes some default names, see &lt;link 
linkend="libgda-40-Attributes-manager.synopsis"&gt;this section&lt;/link&gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a read-only #GValue, or %NULL if not attribute named @attribute has 
been set for @column</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="attribute" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute name as a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_auto_increment"
+              c:identifier="gda_column_get_auto_increment">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">whether the given column is an auto incremented one (%TRUE or 
%FALSE).</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_dbms_type" c:identifier="gda_column_get_dbms_type">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the database type of @column.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_default_value"
+              c:identifier="gda_column_get_default_value">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">@column's default value, as a #GValue object, or %NULL if column 
does not have a default value</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description" c:identifier="gda_column_get_description">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the column's description, in any</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_g_type" c:identifier="gda_column_get_g_type">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of @column.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="gda_column_get_name">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of @column.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_position" c:identifier="gda_column_get_position">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the position of the column refer to in the containing data 
model.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_allow_null" c:identifier="gda_column_set_allow_null">
+        <doc xml:whitespace="preserve">Sets the 'allow null' flag of the given column.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="allow" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the given column should allows null values or not.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_attribute" c:identifier="gda_column_set_attribute">
+        <doc xml:whitespace="preserve">Set the value associated to a named attribute. The @attribute string 
is 'stolen' by this method, and
+the memory it uses will be freed using the @destroy function when no longer needed (if @destroy is %NULL,
+then the string will not be freed at all).
+
+Attributes can have any name, but Libgda proposes some default names, 
+see &lt;link linkend="libgda-40-Attributes-manager.synopsis"&gt;this section&lt;/link&gt;.
+
+If there is already an attribute named @attribute set, then its value is replaced with the new value (@value 
is
+copied), except if @value is %NULL, in which case the attribute is removed.
+
+For example one would use it as:
+
+&lt;code&gt;
+gda_column_set_attribute (holder, g_strdup (my_attribute), g_free, my_value);
+gda_column_set_attribute (holder, GDA_ATTRIBUTE_NAME, NULL, my_value);
+&lt;/code&gt;
+
+Note: this method does not modify in any way the contents of the data model for which @column is a column 
(nor
+does it modify the table definition of the tables used by a SELECT statement is the model was created from a
+SELECT statement).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="attribute" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute name as a static string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GValue, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="destroy"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async">
+            <doc xml:whitespace="preserve">a function to be called when @attribute is not needed anymore, or 
%NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_auto_increment"
+              c:identifier="gda_column_set_auto_increment">
+        <doc xml:whitespace="preserve">Sets the auto increment flag for the given column.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="is_auto" transfer-ownership="none">
+            <doc xml:whitespace="preserve">auto increment status.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_dbms_type" c:identifier="gda_column_set_dbms_type">
+        <doc xml:whitespace="preserve">Defines @column's database type</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="dbms_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_default_value"
+              c:identifier="gda_column_set_default_value">
+        <doc xml:whitespace="preserve">Sets @column's default #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="default_value"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">default #GValue for the column</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_description" c:identifier="gda_column_set_description">
+        <doc xml:whitespace="preserve">Sets the column's description</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="title" transfer-ownership="none">
+            <doc xml:whitespace="preserve">title name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_g_type" c:identifier="gda_column_set_g_type">
+        <doc xml:whitespace="preserve">Sets the type of @column to @type.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new type of @column.</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name" c:identifier="gda_column_set_name">
+        <doc xml:whitespace="preserve">Sets the name of @column to @name.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new name of @column.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_position" c:identifier="gda_column_set_position">
+        <doc xml:whitespace="preserve">Sets the position of the column refer to in the containing
+data model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaColumn.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the wanted position of the column in the containing data 
model.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="id" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ColumnPrivate" c:type="GdaColumnPrivate*"/>
+      </field>
+      <glib:signal name="g-type-changed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted whenever @column's type has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column's previous type</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="new_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column's new type</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="name-changed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted whenever @column's name has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column's previous name</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ColumnClass"
+            c:type="GdaColumnClass"
+            glib:is-gtype-struct-for="Column">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="name_changed">
+        <callback name="name_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="column" transfer-ownership="none">
+              <type name="Column" c:type="GdaColumn*"/>
+            </parameter>
+            <parameter name="old_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="g_type_changed">
+        <callback name="g_type_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="column" transfer-ownership="none">
+              <type name="Column" c:type="GdaColumn*"/>
+            </parameter>
+            <parameter name="old_type" transfer-ownership="none">
+              <type name="GType" c:type="GType"/>
+            </parameter>
+            <parameter name="new_type" transfer-ownership="none">
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ColumnPrivate" c:type="GdaColumnPrivate" disguised="1">
+    </record>
+    <class name="Config"
+           c:symbol-prefix="config"
+           c:type="GdaConfig"
+           parent="GObject.Object"
+           glib:type-name="GdaConfig"
+           glib:get-type="gda_config_get_type"
+           glib:type-struct="ConfigClass">
+      <function name="can_modify_system_config"
+                c:identifier="gda_config_can_modify_system_config">
+        <doc xml:whitespace="preserve">Tells if the global (system) configuration can be modified 
(considering
+system permissions and settings)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if system-wide configuration can be modified</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </function>
+      <function name="define_dsn"
+                c:identifier="gda_config_define_dsn"
+                throws="1">
+        <doc xml:whitespace="preserve">Add or update a DSN from the definition in @info.
+
+This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to a filled GdaDsnInfo structure</doc>
+            <type name="DsnInfo" c:type="const GdaDsnInfo*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="dsn_needs_authentication"
+                c:identifier="gda_config_dsn_needs_authentication">
+        <doc xml:whitespace="preserve">Tells if the data source identified as @dsn_name needs any 
authentication. If a &amp;lt;username&amp;gt;
+and optionally a &amp;lt;password&amp;gt; are specified, they are ignored.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if an authentication is needed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a DSN, in the 
"[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;DSN&amp;gt;" format</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="error_quark" c:identifier="gda_config_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <function name="get" c:identifier="gda_config_get">
+        <doc xml:whitespace="preserve">Get a pointer to the global (unique) #GdaConfig object. This 
functions increments
+the reference count of the object, so you need to call g_object_unref() on it once finished.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a non %NULL pointer to the unique #GdaConfig</doc>
+          <type name="Config" c:type="GdaConfig*"/>
+        </return-value>
+      </function>
+      <function name="get_dsn_info" c:identifier="gda_config_get_dsn_info">
+        <doc xml:whitespace="preserve">Get information about the DSN named @dsn_name. 
+
+ dsn_name's format is "[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;DSN&amp;gt;" (if 
&amp;lt;username&amp;gt;
+and optionally &amp;lt;password&amp;gt; are provided, they are ignored). Also see the gda_dsn_split() utility
+function.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to read-only #GdaDsnInfo structure, or %NULL if not 
found</doc>
+          <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the DSN to look for</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_dsn_info_at_index"
+                c:identifier="gda_config_get_dsn_info_at_index">
+        <doc xml:whitespace="preserve">Get a pointer to a read-only #GdaDsnInfo at the @index position</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the pointer or %NULL if no DSN exists at position @index</doc>
+          <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an index</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_dsn_info_index"
+                c:identifier="gda_config_get_dsn_info_index">
+        <doc xml:whitespace="preserve">Get the index (starting at 0) of the DSN named @dsn_name</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the index or -1 if not found</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a DSN</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_nb_dsn" c:identifier="gda_config_get_nb_dsn">
+        <doc xml:whitespace="preserve">Get the number of defined DSN</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of defined DSN</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </function>
+      <function name="get_provider"
+                c:identifier="gda_config_get_provider"
+                throws="1">
+        <doc xml:whitespace="preserve">Get a pointer to the session-wide #GdaServerProvider for the
+provider named @provider_name. The caller must not call g_object_unref() on the
+returned object.
+
+This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the #GdaServerProvider, or %NULL if an error 
occurred</doc>
+          <type name="ServerProvider" c:type="GdaServerProvider*"/>
+        </return-value>
+        <parameters>
+          <parameter name="provider_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a database provider</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_provider_info"
+                c:identifier="gda_config_get_provider_info">
+        <doc xml:whitespace="preserve">Get some information about the a database provider (adapter) 
named</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to read-only #GdaProviderInfo structure, or %NULL if not 
found</doc>
+          <type name="ProviderInfo" c:type="GdaProviderInfo*"/>
+        </return-value>
+        <parameters>
+          <parameter name="provider_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a database provider</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="list_dsn" c:identifier="gda_config_list_dsn">
+        <doc xml:whitespace="preserve">Get a #GdaDataModel representing all the configured DSN, and keeping 
itself up to date with
+the changes in the declared DSN.
+
+The returned data model is composed of the following columns:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;DSN name&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;Provider name&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;Description&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;Connection string&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;Username if it exists&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+      </function>
+      <function name="list_providers" c:identifier="gda_config_list_providers">
+        <doc xml:whitespace="preserve">Get a #GdaDataModel representing all the installed database providers.
+
+The returned data model is composed of the following columns:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;Provider name&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;Description&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;DSN parameters&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;Authentication parameters&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;File name of the plugin&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+      </function>
+      <function name="remove_dsn"
+                c:identifier="gda_config_remove_dsn"
+                throws="1">
+        <doc xml:whitespace="preserve">Remove the DSN named @dsn_name.
+
+This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the DSN to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="dsn_added">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="conf" transfer-ownership="none">
+            <type name="Config" c:type="GdaConfig*"/>
+          </instance-parameter>
+          <parameter name="new_dsn" transfer-ownership="none">
+            <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="dsn_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="conf" transfer-ownership="none">
+            <type name="Config" c:type="GdaConfig*"/>
+          </instance-parameter>
+          <parameter name="dsn" transfer-ownership="none">
+            <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="dsn_removed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="conf" transfer-ownership="none">
+            <type name="Config" c:type="GdaConfig*"/>
+          </instance-parameter>
+          <parameter name="old_dsn" transfer-ownership="none">
+            <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="dsn_to_be_removed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="conf" transfer-ownership="none">
+            <type name="Config" c:type="GdaConfig*"/>
+          </instance-parameter>
+          <parameter name="old_dsn" transfer-ownership="none">
+            <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <property name="system-filename" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">File to use for system-wide DSN list. When changed, the whole list of 
DSN will be reloaded.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="user-filename" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">File to use for per-user DSN list. When changed, the whole list of 
DSN will be reloaded.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ConfigPrivate" c:type="GdaConfigPrivate*"/>
+      </field>
+      <glib:signal name="dsn-added" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a new DSN has been defined</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_dsn" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDsnInfo</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="dsn-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a DSN's definition has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDsnInfo</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="dsn-removed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a DSN has been removed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_dsn" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDsnInfo</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="dsn-to-be-removed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a DSN is about to be removed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_dsn" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDsnInfo</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ConfigClass"
+            c:type="GdaConfigClass"
+            glib:is-gtype-struct-for="Config">
+      <field name="object_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="dsn_added">
+        <callback name="dsn_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="conf" transfer-ownership="none">
+              <type name="Config" c:type="GdaConfig*"/>
+            </parameter>
+            <parameter name="new_dsn" transfer-ownership="none">
+              <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="dsn_to_be_removed">
+        <callback name="dsn_to_be_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="conf" transfer-ownership="none">
+              <type name="Config" c:type="GdaConfig*"/>
+            </parameter>
+            <parameter name="old_dsn" transfer-ownership="none">
+              <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="dsn_removed">
+        <callback name="dsn_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="conf" transfer-ownership="none">
+              <type name="Config" c:type="GdaConfig*"/>
+            </parameter>
+            <parameter name="old_dsn" transfer-ownership="none">
+              <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="dsn_changed">
+        <callback name="dsn_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="conf" transfer-ownership="none">
+              <type name="Config" c:type="GdaConfig*"/>
+            </parameter>
+            <parameter name="dsn" transfer-ownership="none">
+              <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="ConfigError" c:type="GdaConfigError">
+      <member name="dsn_not_found_error"
+              value="0"
+              c:identifier="GDA_CONFIG_DSN_NOT_FOUND_ERROR">
+      </member>
+      <member name="permission_error"
+              value="1"
+              c:identifier="GDA_CONFIG_PERMISSION_ERROR">
+      </member>
+      <member name="provider_not_found_error"
+              value="2"
+              c:identifier="GDA_CONFIG_PROVIDER_NOT_FOUND_ERROR">
+      </member>
+      <member name="provider_creation_error"
+              value="3"
+              c:identifier="GDA_CONFIG_PROVIDER_CREATION_ERROR">
+      </member>
+    </enumeration>
+    <record name="ConfigPrivate" c:type="GdaConfigPrivate" disguised="1">
+    </record>
+    <class name="Connection"
+           c:symbol-prefix="connection"
+           c:type="GdaConnection"
+           parent="GObject.Object"
+           glib:type-name="GdaConnection"
+           glib:get-type="gda_connection_get_type"
+           glib:type-struct="ConnectionClass">
+      <implements name="Lockable"/>
+      <constructor name="new_from_dsn"
+                   c:identifier="gda_connection_new_from_dsn"
+                   version="5.0.2"
+                   throws="1">
+        <doc xml:whitespace="preserve">This function is similar to gda_connection_open_from_dsn(), except it 
does not actually open the
+connection, you have to open it using gda_connection_open().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaConnection if connection opening was successful or %NULL 
if there was an error.</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data source name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="auth_string"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">authentication string, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">options for the connection (see #GdaConnectionOptions).</doc>
+            <type name="ConnectionOptions" c:type="GdaConnectionOptions"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_string"
+                   c:identifier="gda_connection_new_from_string"
+                   version="5.0.2"
+                   throws="1">
+        <doc xml:whitespace="preserve">This function is similar to gda_connection_open_from_string(), except 
it does not actually open the
+connection, you have to open it using gda_connection_open().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaConnection if connection opening was successful or %NULL 
if there was an error.</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="provider_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">provider ID to connect to, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cnc_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">connection string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="auth_string"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">authentication string, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">options for the connection (see #GdaConnectionOptions).</doc>
+            <type name="ConnectionOptions" c:type="GdaConnectionOptions"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="gda_connection_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <function name="open_from_dsn"
+                c:identifier="gda_connection_open_from_dsn"
+                throws="1">
+        <doc xml:whitespace="preserve">This function is the way of opening database connections with libgda, 
using a pre-defined data source (DSN),
+see gda_config_define_dsn() for more information about how to define a DSN. If you don't want to define
+a DSN, it is possible to use gda_connection_open_from_string() instead of this method.
+
+The @dsn string must have the following format: "[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] 
]&amp;lt;DSN&amp;gt;" 
+(if &amp;lt;username&amp;gt; and/or &amp;lt;password&amp;gt; are provided, and @auth_string is %NULL, then 
these username
+and passwords will be used). Note that if provided, &amp;lt;username&amp;gt; and &amp;lt;password&amp;gt; 
+must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.
+
+The @auth_string can contain the authentication information for the server
+to accept the connection. It is a string containing semi-colon seperated named value, usually 
+like "USERNAME=...;PASSWORD=..." where the ... are replaced by actual values. Note that each
+name and value must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.
+
+The actual named parameters required depend on the provider being used, and that list is available
+as the &lt;parameter&gt;auth_params&lt;/parameter&gt; member of the #GdaProviderInfo structure for each 
installed
+provider (use gda_config_get_provider_info() to get it). Also one can use the "gda-sql-5.0 -L" command to 
+list the possible named parameters.
+
+This method may fail with a GDA_CONNECTION_ERROR domain error (see the #GdaConnectionError error codes) 
+or a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaConnection if connection opening was successful or %NULL 
if there was an error.</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="dsn" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data source name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="auth_string"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">authentication string, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">options for the connection (see #GdaConnectionOptions).</doc>
+            <type name="ConnectionOptions" c:type="GdaConnectionOptions"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="open_from_string"
+                c:identifier="gda_connection_open_from_string"
+                throws="1">
+        <doc xml:whitespace="preserve">Opens a connection given a provider ID and a connection string. This
+allows applications to open connections without having to create
+a data source (DSN) in the configuration. The format of @cnc_string is
+similar to PostgreSQL and MySQL connection strings. It is a semicolumn-separated
+series of &amp;lt;key&amp;gt;=&amp;lt;value&amp;gt; pairs, where each key and value are encoded as per RFC 
1738, 
+see gda_rfc1738_encode() for more information.
+
+The possible keys depend on the provider, the "gda-sql-5.0 -L" command
+can be used to list the actual keys for each installed database provider.
+
+For example the connection string to open an SQLite connection to a database
+file named "my_data.db" in the current directory would be 
&lt;constant&gt;"DB_DIR=.;DB_NAME=my_data"&lt;/constant&gt;.
+
+The @cnc_string string must have the following format: 
+"[&amp;lt;provider&amp;gt;://][&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] 
]&amp;lt;connection_params&amp;gt;"
+(if &amp;lt;username&amp;gt; and/or &amp;lt;password&amp;gt; are provided, and @auth_string is %NULL, then 
these username
+and passwords will be used, and if &amp;lt;provider&amp;gt; is provided and @provider_name is %NULL then this
+provider will be used). Note that if provided, &amp;lt;username&amp;gt;, &amp;lt;password&amp;gt; and  
&amp;lt;provider&amp;gt;
+must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.
+
+The @auth_string must contain the authentication information for the server
+to accept the connection. It is a string containing semi-colon seperated named values, usually 
+like "USERNAME=...;PASSWORD=..." where the ... are replaced by actual values. Note that each
+name and value must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.
+
+The actual named parameters required depend on the provider being used, and that list is available
+as the &lt;parameter&gt;auth_params&lt;/parameter&gt; member of the #GdaProviderInfo structure for each 
installed
+provider (use gda_config_get_provider_info() to get it). Similarly to the format of the connection
+string, use the "gda-sql-5.0 -L" command to list the possible named parameters.
+
+Additionally, it is possible to have the connection string
+respect the "&amp;lt;provider_name&amp;gt;://&amp;lt;real cnc string&amp;gt;" format, in which case the 
provider name
+and the real connection string will be extracted from that string (note that if @provider_name
+is not %NULL then it will still be used as the provider ID).\
+
+This method may fail with a GDA_CONNECTION_ERROR domain error (see the #GdaConnectionError error codes) 
+or a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaConnection if connection opening was successful or %NULL 
if there was an error.</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="provider_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">provider ID to connect to, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cnc_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">connection string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="auth_string"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">authentication string, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">options for the connection (see #GdaConnectionOptions).</doc>
+            <type name="ConnectionOptions" c:type="GdaConnectionOptions"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="open_sqlite" c:identifier="gda_connection_open_sqlite">
+        <doc xml:whitespace="preserve">Opens an SQLite connection even if the SQLite provider is not 
installed,
+to be used by database providers which need a temporary database to store
+some information.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaConnection, or %NULL if an error occurred</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="directory" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the directory the database file will be in, or %NULL for the 
default TMP directory</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the database file name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="auto_unlink" transfer-ownership="none">
+            <doc xml:whitespace="preserve">if %TRUE, then the database file will be removed afterwards</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="string_split" c:identifier="gda_connection_string_split">
+        <doc xml:whitespace="preserve">Extract the provider, connection parameters, username and password 
from @string. 
+in @string, the various parts are strings
+which are expected to be encoded using an RFC 1738 compliant encoding. If they are specified, 
+the returned provider, username and password strings are correctly decoded.
+
+For example all the following connection strings:
+&lt;programlisting&gt;&lt;![CDATA[
+PostgreSQL://meme:pass DB_NAME=mydb;HOST=server
+PostgreSQL://meme DB_NAME=mydb;HOST=server;PASSWORD=pass
+PostgreSQL://meme DB_NAME=mydb;PASSWORD=pass;HOST=server
+PostgreSQL://meme PASSWORD=pass;DB_NAME=mydb;HOST=server
+PostgreSQL://DB_NAME=mydb;HOST=server;USERNAME=meme;PASSWORD=pass
+PostgreSQL://DB_NAME=mydb;HOST=server;PASSWORD=pass;USERNAME=meme
+PostgreSQL://DB_NAME=mydb;USERNAME=meme;PASSWORD=pass;HOST=server
+PostgreSQL://PASSWORD=pass;USERNAME=meme;DB_NAME=mydb;HOST=server
+PostgreSQL://:pass USERNAME=meme;DB_NAME=mydb;HOST=server
+PostgreSQL://:pass DB_NAME=mydb;HOST=server;USERNAME=meme]]&gt;&lt;/programlisting&gt;
+
+will return the following new strings (double quotes added here to delimit strings):
+&lt;programlisting&gt;&lt;![CDATA[
+out_cnc_params: "DB_NAME=mydb;HOST=server"
+out_provider: "PostgreSQL"
+out_username: "meme"
+out_password: "pass"]]&gt;&lt;/programlisting&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string in the 
"[&amp;lt;provider&amp;gt;://][&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] 
]&amp;lt;connection_params&amp;gt;" form</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="out_cnc_params" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store the new string containing the 
&amp;lt;connection_params&amp;gt; part</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+          <parameter name="out_provider" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store the new string containing the 
&amp;lt;provider&amp;gt; part</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+          <parameter name="out_username" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store the new string containing the 
&amp;lt;username&amp;gt; part</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+          <parameter name="out_password" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store the new string containing the 
&amp;lt;password&amp;gt; part</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="conn_closed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="conn_opened">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="conn_to_close">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="dsn_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="error">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="error" transfer-ownership="none">
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="transaction_status_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="obj" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_event" c:identifier="gda_connection_add_event">
+        <doc xml:whitespace="preserve">Adds an event to the given connection. This function is usually
+called by providers, to inform clients of events that happened
+during some operation.
+
+As soon as a provider (or a client, it does not matter) calls this
+function with an @event object which is an error,
+the connection object emits the "error" signal, to which clients can connect to be
+informed of events.
+
+WARNING: the reference to the @event object is stolen by this function!</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="full">
+            <doc xml:whitespace="preserve">is stored internally, so you don't need to unref it.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_event_string"
+              c:identifier="gda_connection_add_event_string"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds a new error to the given connection object. This is just a 
convenience
+function that simply creates a #GdaConnectionEvent and then calls
+#gda_server_connection_add_error.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a new #GdaConnectionEvent object, however the caller does not hold 
a reference to the returned object, and if need be the caller must call g_object_ref() on it.</doc>
+          <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a format string (see the printf(3) documentation).</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_prepared_statement"
+              c:identifier="gda_connection_add_prepared_statement">
+        <doc xml:whitespace="preserve">Declares that @prepared_stmt is a prepared statement object 
associated to @gda_stmt within the connection
+(meaning the connection increments the reference counter of @prepared_stmt).
+
+If @gda_stmt changes or is destroyed, the the association will be lost and the connection will lose the
+reference it has on @prepared_stmt.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="gda_stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="prepared_stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a prepared statement object (as a #GdaPStmt object, or more 
likely a descendant)</doc>
+            <type name="PStmt" c:type="GdaPStmt*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_savepoint"
+              c:identifier="gda_connection_add_savepoint"
+              throws="1">
+        <doc xml:whitespace="preserve">Adds a SAVEPOINT named @name.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">name of the savepoint to add</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="async_cancel"
+              c:identifier="gda_connection_async_cancel"
+              version="4.2"
+              throws="1">
+        <doc xml:whitespace="preserve">Requests that a task be cancelled. This operation may of may not have 
any effect
+depending on the task's status, even if it returns %TRUE. If it returns %FALSE,
+then the task has not been cancelled.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="task_id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a task ID returned by 
gda_connection_async_statement_execute()</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="async_fetch_result"
+              c:identifier="gda_connection_async_fetch_result"
+              version="4.2"
+              throws="1">
+        <doc xml:whitespace="preserve">Use this method to obtain the result of the execution of a statement 
which has been executed asynchronously by
+calling gda_connection_async_statement_execute(). This function is non locking and will return %NULL (and no
+error will be set) if the statement has not been executed yet.
+
+If the statement has been executed, this method returns the same value as gda_connection_statement_execute()
+would have if the statement had been
+executed synchronously.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GObject, or %NULL if an error occurred</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="task_id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a task ID returned by 
gda_connection_async_statement_execute()</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="last_insert_row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a place to store a new #GdaSet object which contains the values 
of the last inserted row, or %NULL</doc>
+            <type name="Set" c:type="GdaSet**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="async_statement_execute"
+              c:identifier="gda_connection_async_statement_execute"
+              version="4.2"
+              throws="1">
+        <doc xml:whitespace="preserve">This method is similar to gda_connection_statement_execute() but is 
asynchronous as it method returns
+immediately with a task ID. It's up to the caller to use gda_connection_async_fetch_result() regularly to 
check
+if the statement's execution is finished.
+
+It is possible to call the method several times to request several statements to be executed asynchronously, 
the
+statements will be executed in the order in which they were requested.
+
+The parameters, if present, are copied and can be discarded or modified before the statement is actually 
executed.
+The @stmt object is not copied but simply referenced (for performance reasons), and if it is modified before
+it is actually executed, then its execution will not occur. It is however safe to call g_object_unref() on 
it if
+it's not needed anymore.
+
+The execution failure of any statement has no impact on the execution of other statements except for example 
if
+the connection has a transaction started and the failure invalidates the transaction (as decided by the 
database
+server).
+
+Note that for asynchronous calls to succeed, it is gererally necessary to specify the
+%GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flag when opening the connection to be sure it is opened in a 
separate thread
+in which asynchronous calls are made (failing to use this flag make the asynchronous call dependant on the 
database
+provider implementation and at the moment none support this feature).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a task ID, or 0 if an error occurred (not an error regarding @stmt 
itself as its execution has not yet started but any other error)</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="model_usage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">in the case where @stmt is a SELECT statement, specifies how the 
returned data model will be used</doc>
+            <type name="StatementModelUsage" c:type="GdaStatementModelUsage"/>
+          </parameter>
+          <parameter name="col_types" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array of GType to request each returned #GdaDataModel's 
column's GType, terminated with the G_TYPE_NONE</doc>
+            <array zero-terminated="0" c:type="GType*">
+              <type name="GType" c:type="GType"/>
+            </array>
+          </parameter>
+          <parameter name="need_last_insert_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if the values of the last interted row must be computed</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="batch_execute"
+              c:identifier="gda_connection_batch_execute"
+              throws="1">
+        <doc xml:whitespace="preserve">Executes all the statements contained in @batch (in the order in 
which they were added to @batch), and
+returns a list of #GObject objects, at most one #GObject for each statement; see 
gda_connection_statement_execute()
+for details about the returned objects.
+
+If one of the statement fails, then none of the subsequent statement will be executed, and the method returns
+the list of #GObject created by the correct execution of the previous statements. If a transaction is 
required,
+then it should be started before calling this method.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new list of #GObject objects</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="GObject.Object"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="batch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaBatch object which contains all the statements to 
execute</doc>
+            <type name="Batch" c:type="GdaBatch*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_batch_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="model_usage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">specifies how the returned data model(s) will be used, as a 
#GdaStatementModelUsage enum</doc>
+            <type name="StatementModelUsage" c:type="GdaStatementModelUsage"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="begin_transaction"
+              c:identifier="gda_connection_begin_transaction"
+              throws="1">
+        <doc xml:whitespace="preserve">Starts a transaction on the data source, identified by the
+ name parameter.
+
+Before starting a transaction, you can check whether the underlying
+provider does support transactions or not by using the
+gda_connection_supports_feature() function.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the transaction was started successfully, %FALSE 
otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the name of the transation to start, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="level" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested transaction level 
(%GDA_TRANSACTION_ISOLATION_UNKNOWN if not specified)</doc>
+            <type name="TransactionIsolation"
+                  c:type="GdaTransactionIsolation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_events_list"
+              c:identifier="gda_connection_clear_events_list">
+        <doc xml:whitespace="preserve">This function lets you clear the list of #GdaConnectionEvent's of the
+given connection.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="close" c:identifier="gda_connection_close">
+        <doc xml:whitespace="preserve">Closes the connection to the underlying data source, but first emits 
the 
+"conn-to-close" signal.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="close_no_warning"
+              c:identifier="gda_connection_close_no_warning">
+        <doc xml:whitespace="preserve">Closes the connection to the underlying data source, without emiting 
any warning signal.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="commit_transaction"
+              c:identifier="gda_connection_commit_transaction"
+              throws="1">
+        <doc xml:whitespace="preserve">Commits the given transaction to the backend database. You need to 
call
+gda_connection_begin_transaction() first.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the transaction was finished successfully, %FALSE 
otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the name of the transation to commit, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_operation"
+              c:identifier="gda_connection_create_operation"
+              throws="1">
+        <doc xml:whitespace="preserve">Creates a new #GdaServerOperation object which can be modified in 
order 
+to perform the type type of action. It is a wrapper around the gda_server_provider_create_operation()
+method.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaServerOperation object, or %NULL in the connection's 
provider does not support the @type type of operation or if an error occurred</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of operation requested</doc>
+            <type name="ServerOperationType" c:type="GdaServerOperationType"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an optional list of parameters</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_parser" c:identifier="gda_connection_create_parser">
+        <doc xml:whitespace="preserve">Creates a new parser object able to parse the SQL dialect understood 
by @cnc. 
+If the #GdaServerProvider object internally used by @cnc does not have its own parser, 
+then %NULL is returned, and a general SQL parser can be obtained
+using gda_sql_parser_new().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaSqlParser object, or %NULL</doc>
+          <type name="SqlParser" c:type="GdaSqlParser*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="del_prepared_statement"
+              c:identifier="gda_connection_del_prepared_statement">
+        <doc xml:whitespace="preserve">Removes any prepared statement associated to @gda_stmt in @cnc: this 
undoes what
+gda_connection_add_prepared_statement() does.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="gda_stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_row_from_table"
+              c:identifier="gda_connection_delete_row_from_table"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">This is a convenience function, which creates a DELETE statement and 
executes it using the values
+provided. It internally relies on variables which makes it immune to SQL injection problems.
+
+The equivalent SQL command is: DELETE FROM &amp;lt;table&amp;gt; WHERE &amp;lt;condition_column_name&amp;gt; 
= &amp;lt;condition_value&amp;gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred, FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the table's name with the row's values to be updated</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="condition_column_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the column to used in the WHERE condition clause</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="condition_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the @condition_column_type's GType</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_savepoint"
+              c:identifier="gda_connection_delete_savepoint"
+              throws="1">
+        <doc xml:whitespace="preserve">Delete the SAVEPOINT named @name when not used anymore.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">name of the savepoint to delete</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="execute_non_select_command"
+              c:identifier="gda_connection_execute_non_select_command"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">This is a convenience function to execute a SQL command over the 
opened connection. For the
+returned value, see gda_connection_statement_execute_non_select()'s documentation.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of rows affected or -1, or -2</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="sql" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a query statement that must not begin with "SELECT"</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="execute_select_command"
+              c:identifier="gda_connection_execute_select_command"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Execute a SQL SELECT command over an opened connection.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel if successful, %NULL otherwise</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="sql" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a query statement that must begin with "SELECT"</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_authentication"
+              c:identifier="gda_connection_get_authentication">
+        <doc xml:whitespace="preserve">Gets the user name used to open this connection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the user name.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_cnc_string"
+              c:identifier="gda_connection_get_cnc_string">
+        <doc xml:whitespace="preserve">Gets the connection string used to open this connection.
+
+The connection string is the string sent over to the underlying
+database provider, which describes the parameters to be used
+to open a connection on the underlying data source.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the connection string used when opening the connection.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_dsn" c:identifier="gda_connection_get_dsn">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the data source name the connection object is connected to.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_events" c:identifier="gda_connection_get_events">
+        <doc xml:whitespace="preserve">Retrieves a list of the last errors occurred during the connection. 
The returned list is
+chronologically ordered such as that the most recent event is the #GdaConnectionEvent of the first node.
+
+Warning: the @cnc object may change the list if connection events occur</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GList of #GdaConnectionEvent objects (the list should not be 
modified)</doc>
+          <type name="GLib.List" c:type="const GList*">
+            <type name="ConnectionEvent"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_meta_store"
+              c:identifier="gda_connection_get_meta_store">
+        <doc xml:whitespace="preserve">Get or initializes the #GdaMetaStore associated to @cnc</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+          <type name="MetaStore" c:type="GdaMetaStore*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_meta_store_data"
+              c:identifier="gda_connection_get_meta_store_data"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Retrieves data stored in @cnc's associated #GdaMetaStore object. This 
method is useful
+to easily get some information about the meta-data associated to @cnc, such as the list of
+tables, views, and other database objects.
+
+Note: it's up to the caller to make sure the information contained within @cnc's associated #GdaMetaStore
+is up to date using gda_connection_update_meta_store() (it can become outdated if the database's schema
+is modified).
+
+For more information about the returned data model's attributes, or about the @meta_type and ... filter 
arguments,
+see &lt;link linkend="GdaConnectionMetaTypeHead"&gt;this description&lt;/link&gt;.
+
+Also, when using filters involving data which are SQL identifiers, make sure each SQL identifier
+is represented using the #GdaMetaStore convention, using gda_meta_store_sql_identifier_quote() or
+gda_meta_store_sql_identifier_quote().
+
+See the &lt;link linkend="information_schema:sql_identifiers"&gt;
+meta data section about SQL identifiers&lt;/link&gt; for more information, and the documentation about the
+gda_sql_identifier_quote() function which will be most useful.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModel containing the data required. The caller is 
responsible for freeing the returned model using g_object_unref().</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="meta_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">describes which data to get.</doc>
+            <type name="ConnectionMetaType" c:type="GdaConnectionMetaType"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store errors, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="nb_filters" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of filters in the @... argument</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg4" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_meta_store_data_v"
+              c:identifier="gda_connection_get_meta_store_data_v"
+              throws="1">
+        <doc xml:whitespace="preserve">see #gda_connection_get_meta_store_data</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModel containing the data required. The caller is 
responsible for freeing the returned model using g_object_unref().</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="meta_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">describes which data to get.</doc>
+            <type name="ConnectionMetaType" c:type="GdaConnectionMetaType"/>
+          </parameter>
+          <parameter name="filters" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GList of #GdaHolder objects</doc>
+            <type name="GLib.List" c:type="GList*">
+              <type name="Holder"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_options" c:identifier="gda_connection_get_options">
+        <doc xml:whitespace="preserve">Gets the #GdaConnectionOptions used to open this connection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the connection options.</doc>
+          <type name="ConnectionOptions" c:type="GdaConnectionOptions"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_prepared_statement"
+              c:identifier="gda_connection_get_prepared_statement">
+        <doc xml:whitespace="preserve">Retrieves a pointer to an object representing a prepared statement 
for @gda_stmt within @cnc. The
+association must have been done using gda_connection_add_prepared_statement().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the prepared statement, or %NULL if no association exists</doc>
+          <type name="PStmt" c:type="GdaPStmt*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="gda_stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_provider" c:identifier="gda_connection_get_provider">
+        <doc xml:whitespace="preserve">Gets a pointer to the #GdaServerProvider object used to access the 
database</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaServerProvider (NEVER NULL)</doc>
+          <type name="ServerProvider" c:type="GdaServerProvider*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_provider_name"
+              c:identifier="gda_connection_get_provider_name">
+        <doc xml:whitespace="preserve">Gets the name (identifier) of the database provider used by @cnc</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a non modifiable string</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_transaction_status"
+              c:identifier="gda_connection_get_transaction_status">
+        <doc xml:whitespace="preserve">Get the status of @cnc regarding transactions. The returned object 
should not be modified
+or destroyed; however it may be modified or destroyed by the connection itself.
+
+If %NULL is returned, then no transaction has been associated with @cnc</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaTransactionStatus object, or %NULL</doc>
+          <type name="TransactionStatus" c:type="GdaTransactionStatus*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="insert_row_into_table"
+              c:identifier="gda_connection_insert_row_into_table"
+              version="4.2.3"
+              introspectable="0">
+        <doc xml:whitespace="preserve">This is a convenience function, which creates an INSERT statement and 
executes it using the values
+provided. It internally relies on variables which makes it immune to SQL injection problems.
+
+The equivalent SQL command is: INSERT INTO &amp;lt;table&amp;gt; (&amp;lt;column_name&amp;gt; [,...]) VALUES 
(&amp;lt;column_name&amp;gt; = &amp;lt;new_value&amp;gt; [,...]).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">table's name to insert into</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store errors, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="arg3" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_row_into_table_v"
+              c:identifier="gda_connection_insert_row_into_table_v"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">@col_names and @values must have length (&amp;gt;= 1).
+
+This is a convenience function, which creates an INSERT statement and executes it using the values
+provided. It internally relies on variables which makes it immune to SQL injection problems.
+
+The equivalent SQL command is: INSERT INTO &amp;lt;table&amp;gt; (&amp;lt;column_name&amp;gt; [,...]) VALUES 
(&amp;lt;column_name&amp;gt; = &amp;lt;new_value&amp;gt; [,...]).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred, FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">table's name to insert into</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="col_names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of column names (as const gchar *)</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="utf8"/>
+            </type>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of values (as #GValue)</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="GObject.Value"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_change_transaction_state"
+              c:identifier="gda_connection_internal_change_transaction_state"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal function to be called by database providers to force a 
transaction status
+change.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="newstate" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new state</doc>
+            <type name="TransactionStatusState"
+                  c:type="GdaTransactionStatusState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_get_provider_data"
+              c:identifier="gda_connection_internal_get_provider_data"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the opaque pointer previously set using 
gda_connection_internal_set_provider_data().
+If it's not set, then add a connection event and returns %NULL</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the pointer to the opaque structure set using 
gda_connection_internal_set_provider_data(), or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="internal_get_provider_data_error"
+              c:identifier="gda_connection_internal_get_provider_data_error"
+              version="5.0.2"
+              introspectable="0"
+              throws="1">
+        <doc xml:whitespace="preserve">Get the opaque pointer previously set using 
gda_connection_internal_set_provider_data().
+If it's not set, then add a connection event and returns %NULL</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the pointer to the opaque structure set using 
gda_connection_internal_set_provider_data(), or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="internal_reset_transaction_status"
+              c:identifier="gda_connection_internal_reset_transaction_status"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal function to be called by database providers to reset the 
transaction status.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="internal_savepoint_added"
+              c:identifier="gda_connection_internal_savepoint_added"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
savepoint has been added
+to keep track of the transaction status of the connection
+
+Note: this function should not be called if gda_connection_internal_statement_executed()
+has already been called because a statement's execution was necessary to perform
+the action.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="parent_trans"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">name of the parent transaction, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="svp_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">savepoint's name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_savepoint_removed"
+              c:identifier="gda_connection_internal_savepoint_removed"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
savepoint has been removed
+to keep track of the transaction status of the connection
+
+Note: this function should not be called if gda_connection_internal_statement_executed()
+has already been called because a statement's execution was necessary to perform
+the action.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="svp_name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">savepoint's name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_savepoint_rolledback"
+              c:identifier="gda_connection_internal_savepoint_rolledback"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
savepoint has been rolled back
+to keep track of the transaction status of the connection
+
+Note: this function should not be called if gda_connection_internal_statement_executed()
+has already been called because a statement's execution was necessary to perform
+the action.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="svp_name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">savepoint's name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_set_provider_data"
+              c:identifier="gda_connection_internal_set_provider_data"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Note: calling this function more than once will not make it call 
@destroy_func on any previously
+set opaque @data, you'll have to do it yourself.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opaque structure, known only to the provider for which @cnc is 
opened</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="destroy_func"
+                     transfer-ownership="none"
+                     scope="async">
+            <doc xml:whitespace="preserve">function to call when the connection closes and @data needs to be 
destroyed</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_statement_executed"
+              c:identifier="gda_connection_internal_statement_executed"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
statement has been executed
+to keep track of the transaction status of the connection</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement which has been executed</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">execution's parameters</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent if the execution failed, or %NULL</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_transaction_committed"
+              c:identifier="gda_connection_internal_transaction_committed"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
transaction has been committed
+to keep track of the transaction status of the connection
+
+Note: this function should not be called if gda_connection_internal_statement_executed()
+has already been called because a statement's execution was necessary to perform
+the action.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="trans_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">transaction's name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_transaction_rolledback"
+              c:identifier="gda_connection_internal_transaction_rolledback"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
transaction has been rolled
+back to keep track of the transaction status of the connection
+
+Note: this function should not be called if gda_connection_internal_statement_executed()
+has already been called because a statement's execution was necessary to perform
+the action.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="trans_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">transaction's name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="internal_transaction_started"
+              c:identifier="gda_connection_internal_transaction_started"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Internal functions to be called by database providers when a 
transaction has been started
+to keep track of the transaction status of the connection.
+
+Note: this function should not be called if gda_connection_internal_statement_executed()
+has already been called because a statement's execution was necessary to perform
+the action.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="parent_trans"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">name of the parent transaction, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="trans_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">transaction's name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="isol_level" transfer-ownership="none">
+            <doc xml:whitespace="preserve">isolation level.</doc>
+            <type name="TransactionIsolation"
+                  c:type="GdaTransactionIsolation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_opened" c:identifier="gda_connection_is_opened">
+        <doc xml:whitespace="preserve">Checks whether a connection is open or not.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the connection is open, %FALSE if it's not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="open" c:identifier="gda_connection_open" throws="1">
+        <doc xml:whitespace="preserve">Tries to open the connection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the connection is opened, and FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="parse_sql_string"
+              c:identifier="gda_connection_parse_sql_string"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">This function helps to parse a SQL string which uses parameters and 
store them at @params.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaStatement representing the SQL command, or %NULL if an error 
occurred</doc>
+          <type name="Statement" c:type="GdaStatement*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc"
+                              transfer-ownership="none"
+                              allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection object, or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="sql" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an SQL command to parse, not %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="params"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a place to store a new #GdaSet, for parameters used in SQL 
command, or %NULL</doc>
+            <type name="Set" c:type="GdaSet**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perform_operation"
+              c:identifier="gda_connection_perform_operation"
+              throws="1">
+        <doc xml:whitespace="preserve">Performs the operation described by @op (which should have been 
created using
+gda_connection_create_operation()). It is a wrapper around the gda_server_provider_perform_operation()
+method.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="point_available_event"
+              c:identifier="gda_connection_point_available_event"
+              version="4.2">
+        <doc xml:whitespace="preserve">Use this method to get a pointer to the next available connection 
event which can then be customized
+and taken into account using gda_connection_add_event().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the next available connection event, or %NULL if event 
should be ignored</doc>
+          <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEventType</doc>
+            <type name="ConnectionEventType" c:type="GdaConnectionEventType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="quote_sql_identifier"
+              c:identifier="gda_connection_quote_sql_identifier"
+              version="4.0.3">
+        <doc xml:whitespace="preserve">Use this method to get a correctly quoted (if necessary) SQL 
identifier which can be used
+in SQL statements, from @id. If @id is already correctly quoted for @cnc, then a copy of @id
+may be returned.
+
+This method may add double quotes (or other characters) around @id:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;if @id is a reserved SQL keyword (such as SELECT, INSERT, 
...)&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;if @id contains non allowed characters such as spaces, or if it starts with a 
digit&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;in any other event as necessary for @cnc, depending on the the options passed 
when opening the @cnc
+           connection, and specifically the &lt;link 
linkend="GDA-CONNECTION-OPTIONS-SQL-IDENTIFIERS-CASE-SENSITIVE:CAPS"&gt;
+           GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE&lt;/link&gt; 
option.&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+One can safely pass an already quoted @id to this method, either with quoting characters allowed by @cnc or 
using the
+double quote (") character.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, to free with g_free() once not needed anymore</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an SQL identifier</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="repetitive_statement_execute"
+              c:identifier="gda_connection_repetitive_statement_execute"
+              version="4.2"
+              throws="1">
+        <doc xml:whitespace="preserve">Executes the statement upon which @rstmt is built. Note that as 
several statements can actually be executed by this
+method, it is recommended to be within a transaction.
+
+If @error is not %NULL and @stop_on_error is %FALSE, then it may contain the last error which occurred.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new list of #GObject pointers (see 
gda_connection_statement_execute() for more information about what they represent), one for each actual 
execution of the statement upon which @rstmt is built. If @stop_on_error is %FALSE, then the list may contain 
some %NULL pointers which refer to statements which failed to execute.</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="GObject.Object"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="rstmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRepetitiveStatement object</doc>
+            <type name="RepetitiveStatement" c:type="GdaRepetitiveStatement*"/>
+          </parameter>
+          <parameter name="model_usage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">specifies how the returned data model will be used as a 
#GdaStatementModelUsage enum</doc>
+            <type name="StatementModelUsage" c:type="GdaStatementModelUsage"/>
+          </parameter>
+          <parameter name="col_types" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array of GType to request each returned GdaDataModel's 
column's GType, see gda_connection_statement_execute_select_full() for more information</doc>
+            <array zero-terminated="0" c:type="GType*">
+              <type name="GType" c:type="GType"/>
+            </array>
+          </parameter>
+          <parameter name="stop_on_error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">set to TRUE if the method has to stop on the first error.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rollback_savepoint"
+              c:identifier="gda_connection_rollback_savepoint"
+              throws="1">
+        <doc xml:whitespace="preserve">Rollback all the modifications made after the SAVEPOINT named 
@name.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">name of the savepoint to rollback to</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rollback_transaction"
+              c:identifier="gda_connection_rollback_transaction"
+              throws="1">
+        <doc xml:whitespace="preserve">Rollbacks the given transaction. This means that all changes
+made to the underlying data source since the last call to
+#gda_connection_begin_transaction() or #gda_connection_commit_transaction()
+will be discarded.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the operation was successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the name of the transation to commit, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_execute"
+              c:identifier="gda_connection_statement_execute"
+              throws="1">
+        <doc xml:whitespace="preserve">Executes @stmt. 
+
+As @stmt can, by design (and if not abused), contain only one SQL statement, the
+return object will either be:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;a #GdaDataSelect object (which is also a #GdaDataModel) if @stmt is a SELECT 
statement 
+            (usually a GDA_SQL_STATEMENT_SELECT, see #GdaSqlStatementType)
+            containing the results of the SELECT. The resulting data model is by default read only, but
+            modifications can be enabled, see the #GdaDataSelect's documentation for more 
information.&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;a #GdaSet for any other SQL statement which correctly executed. In this case
+       (if the provider supports it), then the #GdaSet may contain value holders named:
+       &lt;itemizedlist&gt;
+         &lt;listitem&gt;&lt;para&gt;a (gint) #GdaHolder named "IMPACTED_ROWS"&lt;/para&gt;&lt;/listitem&gt;
+         &lt;listitem&gt;&lt;para&gt;a (GObject) #GdaHolder named "EVENT" which contains a 
#GdaConnectionEvent&lt;/para&gt;&lt;/listitem&gt;
+       &lt;/itemizedlist&gt;&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+If @last_insert_row is not %NULL and @stmt is an INSERT statement, then it will contain (if the
+provider used by @cnc supports it) a new #GdaSet object composed of value holders named "+&amp;lt;column 
number&amp;gt;"
+starting at column 0 which contain the actual inserted values. For example if a table is composed of an 'id' 
column
+which is auto incremented and a 'name' column then the execution of a "INSERT INTO mytable (name) VALUES 
('joe')"
+query will return a #GdaSet with two holders:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;one with the '+0' ID which may for example contain 1 (note that its "name" 
property should be "id")&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;one with the '+1' ID which will contain 'joe' (note that its "name" property 
should be "name")&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+This method may fail with a %GDA_SERVER_PROVIDER_ERROR domain error (see the #GdaServerProviderError error 
codes).
+
+Note1: If @stmt is a SELECT statement which has some parameters and  if @params is %NULL, then the statement 
can't
+be executed and this method will return %NULL.
+
+Note2: If @stmt is a SELECT statement which has some parameters and  if @params is not %NULL but contains 
some
+invalid parameters, then the statement can't be executed and this method will return %NULL, unless the
+ model_usage has the GDA_STATEMENT_MODEL_ALLOW_NOPARAM flag.
+
+Note3: If @stmt is a SELECT statement which has some parameters and  if @params is not %NULL but contains 
some
+invalid parameters and if @model_usage has the GDA_STATEMENT_MODEL_ALLOW_NOPARAM flag, then the returned
+data model will contain no row but will have all the correct columns (even though some of the columns might
+report as GDA_TYPE_NULL). In this case, if (after this method call) any of @params' parameters change
+then the resulting data model will re-run itself, see the GdaDataSelect's 
+&lt;link linkend="GdaDataSelect--auto-reset"&gt;auto-reset&lt;/link&gt; property for more information.
+
+Note4: if @model_usage does not contain the GDA_STATEMENT_MODEL_RANDOM_ACCESS or
+GDA_STATEMENT_MODEL_CURSOR_FORWARD flags, then the default will be to return a random access data model
+
+Note5: If @stmt is a SELECT statement which returns blob values (of type %GDA_TYPE_BLOB), then an implicit
+transaction will have been started by the database provider, and it's up to the caller to close the 
transaction
+(which will then be locked) once all the blob ressources have been
+liberated (when the returned data model is destroyed). See the section about
+&lt;link linkend="gen:blobs"&gt;Binary large objects (BLOBs)&lt;/link&gt; for more information.
+
+Also see the &lt;link linkend="limitations"&gt;provider's limitations&lt;/link&gt;, and the
+&lt;link linkend="data-select"&gt;Advanced GdaDataSelect usage&lt;/link&gt; sections.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GObject, or %NULL if an error occurred</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="model_usage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">in the case where @stmt is a SELECT statement, specifies how the 
returned data model will be used</doc>
+            <type name="StatementModelUsage" c:type="GdaStatementModelUsage"/>
+          </parameter>
+          <parameter name="last_insert_row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a place to store a new #GdaSet object which contains the values 
of the last inserted row, or %NULL</doc>
+            <type name="Set" c:type="GdaSet**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_execute_non_select"
+              c:identifier="gda_connection_statement_execute_non_select"
+              throws="1">
+        <doc xml:whitespace="preserve">Executes a non-selection statement on the given connection.
+
+This function returns the number of rows affected by the execution of @stmt, or -1
+if an error occurred, or -2 if the connection's provider does not return the number of rows affected.
+
+This function is just a convenience function around the gda_connection_statement_execute()
+function. 
+See the documentation of the gda_connection_statement_execute() for information
+about the @params list of parameters.
+
+See gda_connection_statement_execute() form more information about @last_insert_row.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of rows affected (&amp;gt;=0) or -1 or -2</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object.</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="last_insert_row"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a place to store a new #GdaSet object which contains the values 
of the last inserted row, or %NULL</doc>
+            <type name="Set" c:type="GdaSet**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_execute_select"
+              c:identifier="gda_connection_statement_execute_select"
+              throws="1">
+        <doc xml:whitespace="preserve">Executes a selection command on the given connection.
+
+This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
+if an error occurred.
+
+This function is just a convenience function around the gda_connection_statement_execute()
+function.
+
+See the documentation of the gda_connection_statement_execute() for information
+about the @params list of parameters.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModel containing the data returned by the data source, or 
%NULL if an error occurred</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object.</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_execute_select_full"
+              c:identifier="gda_connection_statement_execute_select_full"
+              throws="1">
+        <doc xml:whitespace="preserve">Executes a selection command on the given connection.
+
+This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
+if an error occurred.
+
+This function is just a convenience function around the gda_connection_statement_execute()
+function.
+
+See the documentation of the gda_connection_statement_execute() for information
+about the @params list of parameters.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModel containing the data returned by the data source, or 
%NULL if an error occurred</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object.</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="model_usage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">specifies how the returned data model will be used as a 
#GdaStatementModelUsage enum</doc>
+            <type name="StatementModelUsage" c:type="GdaStatementModelUsage"/>
+          </parameter>
+          <parameter name="col_types" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array of GType to request each returned #GdaDataModel's 
column's GType, terminated with the G_TYPE_NONE value. Any value left to 0 will make the database provider 
determine the real GType. @col_types can also be %NULL if no column type is specified.</doc>
+            <array zero-terminated="0" c:type="GType*">
+              <type name="GType" c:type="GType"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_execute_select_fullv"
+              c:identifier="gda_connection_statement_execute_select_fullv"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Executes a selection command on the given connection.
+
+This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
+if an error occurred.
+
+This function is just a convenience function around the gda_connection_statement_execute()
+function.
+
+See the documentation of the gda_connection_statement_execute() for information
+about the @params list of parameters.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModel containing the data returned by the data source, or 
%NULL if an error occurred</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object.</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="model_usage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">specifies how the returned data model will be used as a 
#GdaStatementModelUsage enum</doc>
+            <type name="StatementModelUsage" c:type="GdaStatementModelUsage"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store an error, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="arg5" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_prepare"
+              c:identifier="gda_connection_statement_prepare"
+              throws="1">
+        <doc xml:whitespace="preserve">Ask the database accessed through the @cnc connection to prepare the 
usage of @stmt. This is only useful
+if @stmt will be used more than once (however some database providers may always prepare statements 
+before executing them).
+
+This function is also useful to make sure @stmt is fully understood by the database before actually 
executing it.
+
+Note however that it is also possible that gda_connection_statement_prepare() fails when
+gda_connection_statement_execute() does not fail (this will usually be the case with statements such as
+&lt;![CDATA["SELECT * FROM ##tablename::string"]]&gt; because database usually don't allow variables to be 
used in place of a 
+table name).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="statement_to_sql"
+              c:identifier="gda_connection_statement_to_sql"
+              throws="1">
+        <doc xml:whitespace="preserve">Renders @stmt as an SQL statement, adapted to the SQL dialect used by 
@cnc</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, or %NULL if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaSet object (which can be obtained using 
gda_statement_get_parameters()), or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">SQL rendering flags, as #GdaStatementSqlFlag OR'ed values</doc>
+            <type name="StatementSqlFlag" c:type="GdaStatementSqlFlag"/>
+          </parameter>
+          <parameter name="params_used"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="container"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a place to store the list of individual #GdaHolder objects within 
@params which have been used</doc>
+            <type name="GLib.SList" c:type="GSList**">
+              <type name="Holder"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="supports_feature"
+              c:identifier="gda_connection_supports_feature">
+        <doc xml:whitespace="preserve">Asks the underlying provider for if a specific feature is 
supported.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the provider supports it, %FALSE if not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="feature" transfer-ownership="none">
+            <doc xml:whitespace="preserve">feature to ask for.</doc>
+            <type name="ConnectionFeature" c:type="GdaConnectionFeature"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_meta_store"
+              c:identifier="gda_connection_update_meta_store"
+              throws="1">
+        <doc xml:whitespace="preserve">Updates @cnc's associated #GdaMetaStore. If @context is not %NULL, 
then only the parts described by
+ context will be updated, and if it is %NULL, then the complete meta store will be updated. Detailed
+explanations follow:
+
+In order to keep the meta store's contents in a consistent state, the update process involves updating
+the contents of all the tables related to one where the contents change. For example the "_columns"
+table (which lists all the columns of a table) depends on the "_tables" table (which lists all the tables
+in a schema), so if a row is added, removed or modified in the "_tables", then the "_columns" table's 
contents
+needs to be updated as well regarding that row.
+
+If @context is %NULL, then the update process will simply overwrite any data that was present in all the
+meta store's tables with new (up to date) data even if nothing has changed, without having to build the
+tables' dependency tree. This is the recommended way of proceeding when dealing with a meta store which
+might be outdated.
+
+On the other hand, if @context is not %NULL, then a tree of the dependencies has to be built (depending on
+ context) and only some parts of the meta store are updated following that dependencies tree. Specifying a
+context may be useful for example in the following situations:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;One knows that a database object has changed (for example a table created), and
+                  may use the @context to request that only the information about that table be updated
+            &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;One is only interested in the list of views, and may request that only the 
information
+                  about views may be updated&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+When @context is not %NULL, and contains specified SQL identifiers (for example the "table_name" of the 
"_tables"
+table), then each SQL identifier has to match the convention the #GdaMetaStore has adopted regarding
+case sensitivity, using gda_connection_quote_sql_identifier() or gda_meta_store_sql_identifier_quote().
+
+see the &lt;link linkend="information_schema:sql_identifiers"&gt;
+meta data section about SQL identifiers&lt;/link&gt; for more information, and the documentation about the
+gda_sql_identifier_quote() function which will be most useful.
+
+Note however that usually &lt;emphasis&gt;more&lt;/emphasis&gt; information will be updated than strictly 
requested by
+the @context argument.
+
+For more information, see the &lt;link linkend="information_schema"&gt;Database structure&lt;/link&gt; 
section, and
+the &lt;link linkend="howto-meta2"&gt;Update the meta data about a table&lt;/link&gt; howto.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="context" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">description of which part of @cnc's associated #GdaMetaStore 
should be updated, or %NULL</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_row_in_table"
+              c:identifier="gda_connection_update_row_in_table"
+              version="4.2.3"
+              introspectable="0">
+        <doc xml:whitespace="preserve">This is a convenience function, which creates an UPDATE statement and 
executes it using the values
+provided. It internally relies on variables which makes it immune to SQL injection problems.
+
+The equivalent SQL command is: UPDATE &amp;lt;table&amp;gt; SET &amp;lt;column_name&amp;gt; = 
&amp;lt;new_value&amp;gt; [,...] WHERE &amp;lt;condition_column_name&amp;gt; = 
&amp;lt;condition_value&amp;gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred, FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the table's name with the row's values to be updated</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="condition_column_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the column to used in the WHERE condition clause</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="condition_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the @condition_column_type's GType</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store errors, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="arg5" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_row_in_table_v"
+              c:identifier="gda_connection_update_row_in_table_v"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">@col_names and @values must have length (&amp;gt;= 1).
+
+This is a convenience function, which creates an UPDATE statement and executes it using the values
+provided. It internally relies on variables which makes it immune to SQL injection problems.
+
+The equivalent SQL command is: UPDATE &amp;lt;table&amp;gt; SET &amp;lt;column_name&amp;gt; = 
&amp;lt;new_value&amp;gt; [,...] WHERE &amp;lt;condition_column_name&amp;gt; = 
&amp;lt;condition_value&amp;gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred, FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the table's name with the row's values to be updated</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="condition_column_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the column to used in the WHERE condition clause</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="condition_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the @condition_column_type's GType</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="col_names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of column names (as const gchar *)</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="utf8"/>
+            </type>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of values (as #GValue)</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="GObject.Value"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="value_to_sql_string"
+              c:identifier="gda_connection_value_to_sql_string">
+        <doc xml:whitespace="preserve">Produces a fully quoted and escaped string from a GValue</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">escaped and quoted value or NULL if not supported.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection object.</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </instance-parameter>
+          <parameter name="from" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#GValue to convert from</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="auth-string" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="cnc-string" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="dsn" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="events-history-size"
+                version="4.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Defines the number of #GdaConnectionEvent objects kept in memory 
which can
+be fetched using gda_connection_get_events().</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="execution-slowdown"
+                version="5.2.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Artificially slows down the execution of queries. This property can 
be used to
+debug some problems. If non zero, this value is the number of microseconds waited before actually
+executing each query.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="execution-timer"
+                version="4.2.9"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Computes execution times for each statement executed.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="is-wrapper"
+                version="4.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This property, if set to %TRUE, specifies that the connection is not 
a real connection, but rather
+a #GdaConnection object which "proxies" all the calls to another connection which executes in a sub
+thread.
+
+Note: this property is used internally by Libgda and should not be directly used by any programs. Setting
+this property has no effect, reading it is supported, though.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="meta-store" writable="1" transfer-ownership="none">
+        <type name="MetaStore"/>
+      </property>
+      <property name="monitor-wrapped-in-mainloop"
+                version="4.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Useful only when there is a mainloop and when the connection acts as 
a thread wrapper around another connection,
+it sets up a timeout to handle signals coming from the wrapped connection.
+
+If the connection is not a thread wrapper, then this property has no effect.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="options"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type/>
+      </property>
+      <property name="provider" writable="1" transfer-ownership="none">
+        <type name="ServerProvider"/>
+      </property>
+      <property name="thread-owner" writable="1" transfer-ownership="none">
+        <type name="gpointer" c:type="gpointer"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ConnectionPrivate" c:type="GdaConnectionPrivate*"/>
+      </field>
+      <glib:signal name="conn-closed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when the connection to the database has been closed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="conn-opened" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when the connection has been opened to the database</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="conn-to-close" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when the connection to the database is about to be 
closed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="dsn-changed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when the DSN used by @cnc has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="error" when="last">
+        <doc xml:whitespace="preserve">Gets emitted whenever a connection event occurs. Check the nature of 
@event to
+see if it's an error or a simple notification</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent object</doc>
+            <type name="ConnectionEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="transaction-status-changed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when the transaction status of @cnc has changed (a 
transaction has been 
+started, rolled back, a savepoint added,...)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ConnectionClass"
+            c:type="GdaConnectionClass"
+            glib:is-gtype-struct-for="Connection">
+      <field name="object_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="error">
+        <callback name="error">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="cnc" transfer-ownership="none">
+              <type name="Connection" c:type="GdaConnection*"/>
+            </parameter>
+            <parameter name="error" transfer-ownership="none">
+              <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="conn_opened">
+        <callback name="conn_opened">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="Connection" c:type="GdaConnection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="conn_to_close">
+        <callback name="conn_to_close">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="Connection" c:type="GdaConnection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="conn_closed">
+        <callback name="conn_closed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="Connection" c:type="GdaConnection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="dsn_changed">
+        <callback name="dsn_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="Connection" c:type="GdaConnection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="transaction_status_changed">
+        <callback name="transaction_status_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="obj" transfer-ownership="none">
+              <type name="Connection" c:type="GdaConnection*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="ConnectionError" c:type="GdaConnectionError">
+      <member name="dsn_not_found_error"
+              value="0"
+              c:identifier="GDA_CONNECTION_DSN_NOT_FOUND_ERROR">
+      </member>
+      <member name="provider_not_found_error"
+              value="1"
+              c:identifier="GDA_CONNECTION_PROVIDER_NOT_FOUND_ERROR">
+      </member>
+      <member name="provider_error"
+              value="2"
+              c:identifier="GDA_CONNECTION_PROVIDER_ERROR">
+      </member>
+      <member name="no_cnc_spec_error"
+              value="3"
+              c:identifier="GDA_CONNECTION_NO_CNC_SPEC_ERROR">
+      </member>
+      <member name="no_provider_spec_error"
+              value="4"
+              c:identifier="GDA_CONNECTION_NO_PROVIDER_SPEC_ERROR">
+      </member>
+      <member name="open_error"
+              value="5"
+              c:identifier="GDA_CONNECTION_OPEN_ERROR">
+      </member>
+      <member name="statement_type_error"
+              value="6"
+              c:identifier="GDA_CONNECTION_STATEMENT_TYPE_ERROR">
+      </member>
+      <member name="cant_lock_error"
+              value="7"
+              c:identifier="GDA_CONNECTION_CANT_LOCK_ERROR">
+      </member>
+      <member name="task_not_found_error"
+              value="8"
+              c:identifier="GDA_CONNECTION_TASK_NOT_FOUND_ERROR">
+      </member>
+      <member name="unsupported_threads_error"
+              value="9"
+              c:identifier="GDA_CONNECTION_UNSUPPORTED_THREADS_ERROR">
+      </member>
+      <member name="closed_error"
+              value="10"
+              c:identifier="GDA_CONNECTION_CLOSED_ERROR">
+      </member>
+      <member name="meta_data_context_error"
+              value="11"
+              c:identifier="GDA_CONNECTION_META_DATA_CONTEXT_ERROR">
+      </member>
+      <member name="unsupported_async_exec_error"
+              value="12"
+              c:identifier="GDA_CONNECTION_UNSUPPORTED_ASYNC_EXEC_ERROR">
+      </member>
+    </enumeration>
+    <class name="ConnectionEvent"
+           c:symbol-prefix="connection_event"
+           c:type="GdaConnectionEvent"
+           parent="GObject.Object"
+           glib:type-name="GdaConnectionEvent"
+           glib:get-type="gda_connection_event_get_type"
+           glib:type-struct="ConnectionEventClass">
+      <method name="get_code" c:identifier="gda_connection_event_get_code">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">@event's code (the code is specific to the provider being 
used)</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="gda_connection_event_get_description">
+        <doc xml:whitespace="preserve">Get the description of the event. Note that is @event's type is 
GDA_CONNECTION_EVENT_COMMAND,
+the the description is the SQL of the command.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">@event's description.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_event_type"
+              c:identifier="gda_connection_event_get_event_type">
+        <doc xml:whitespace="preserve">Get @event's severity (from a simple notice to a fatal event)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the event type</doc>
+          <type name="ConnectionEventType" c:type="GdaConnectionEventType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent object</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gda_code"
+              c:identifier="gda_connection_event_get_gda_code">
+        <doc xml:whitespace="preserve">Retrieve the code associated to @event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaConnectionEventCode event's code</doc>
+          <type name="ConnectionEventCode" c:type="GdaConnectionEventCode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_source" c:identifier="gda_connection_event_get_source">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">@event's source.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sqlstate"
+              c:identifier="gda_connection_event_get_sqlstate">
+        <doc xml:whitespace="preserve">Get the SQLSTATE value of @event. Even though the SQLSTATE values are 
specified by ANSI SQL and ODBC,
+consult each DBMS for the possible values. However, the "00000" (success) value means that there is no error,
+and the "HY000" (general error) value means an error but no better error code available.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">@event's SQL state.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_code" c:identifier="gda_connection_event_set_code">
+        <doc xml:whitespace="preserve">Sets @event's code: the code is specific to the provider being used.
+If you want to have a common understanding of the event codes, use
+gda_connection_event_get_gda_code() instead.
+
+This function should not be called directly</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+          <parameter name="code" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a code.</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_description"
+              c:identifier="gda_connection_event_set_description">
+        <doc xml:whitespace="preserve">Sets @event's @description. This function should not be called 
directly.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+          <parameter name="description"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a description, or %NULL (to unset current description if 
any)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_event_type"
+              c:identifier="gda_connection_event_set_event_type">
+        <doc xml:whitespace="preserve">Sets @event's severity (from a simple notice to a fatal event)
+This function should not be called directly.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent object</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the severity of the event</doc>
+            <type name="ConnectionEventType" c:type="GdaConnectionEventType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_gda_code"
+              c:identifier="gda_connection_event_set_gda_code">
+        <doc xml:whitespace="preserve">Sets @event's gda code: that code is standardized by the libgda
+library. If you want to specify the corresponding provider specific code,
+use gda_connection_event_get_code() or gda_connection_event_get_sqlstate() instead.
+
+This function should not be called directly</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+          <parameter name="code" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a code</doc>
+            <type name="ConnectionEventCode" c:type="GdaConnectionEventCode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source" c:identifier="gda_connection_event_set_source">
+        <doc xml:whitespace="preserve">Sets @event's @source; this function should not be called 
directly</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a source.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sqlstate"
+              c:identifier="gda_connection_event_set_sqlstate">
+        <doc xml:whitespace="preserve">Changes the SQLSTATE code of @event, this function should not be 
called directly
+
+Sets @event's SQL state.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnectionEvent.</doc>
+            <type name="ConnectionEvent" c:type="GdaConnectionEvent*"/>
+          </instance-parameter>
+          <parameter name="sqlstate" transfer-ownership="none">
+            <doc xml:whitespace="preserve">SQL state.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="type" writable="1" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ConnectionEventPrivate"
+              c:type="GdaConnectionEventPrivate*"/>
+      </field>
+    </class>
+    <record name="ConnectionEventClass"
+            c:type="GdaConnectionEventClass"
+            glib:is-gtype-struct-for="ConnectionEvent">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="ConnectionEventCode" c:type="GdaConnectionEventCode">
+      <member name="constraint_violation"
+              value="0"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_CONSTRAINT_VIOLATION">
+      </member>
+      <member name="restrict_violation"
+              value="1"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_RESTRICT_VIOLATION">
+      </member>
+      <member name="not_null_violation"
+              value="2"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_NOT_NULL_VIOLATION">
+      </member>
+      <member name="foreign_key_violation"
+              value="3"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_FOREIGN_KEY_VIOLATION">
+      </member>
+      <member name="unique_violation"
+              value="4"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_UNIQUE_VIOLATION">
+      </member>
+      <member name="check_violation"
+              value="5"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_CHECK_VIOLATION">
+      </member>
+      <member name="insufficient_privileges"
+              value="6"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_INSUFFICIENT_PRIVILEGES">
+      </member>
+      <member name="undefined_column"
+              value="7"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_UNDEFINED_COLUMN">
+      </member>
+      <member name="undefined_function"
+              value="8"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_UNDEFINED_FUNCTION">
+      </member>
+      <member name="undefined_table"
+              value="9"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_UNDEFINED_TABLE">
+      </member>
+      <member name="duplicate_column"
+              value="10"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_COLUMN">
+      </member>
+      <member name="duplicate_database"
+              value="11"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_DATABASE">
+      </member>
+      <member name="duplicate_function"
+              value="12"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_FUNCTION">
+      </member>
+      <member name="duplicate_schema"
+              value="13"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_SCHEMA">
+      </member>
+      <member name="duplicate_table"
+              value="14"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_TABLE">
+      </member>
+      <member name="duplicate_alias"
+              value="15"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_ALIAS">
+      </member>
+      <member name="duplicate_object"
+              value="16"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_DUPLICATE_OBJECT">
+      </member>
+      <member name="syntax_error"
+              value="17"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_SYNTAX_ERROR">
+      </member>
+      <member name="unknown"
+              value="18"
+              c:identifier="GDA_CONNECTION_EVENT_CODE_UNKNOWN">
+      </member>
+    </enumeration>
+    <record name="ConnectionEventPrivate"
+            c:type="GdaConnectionEventPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="ConnectionEventType" c:type="GdaConnectionEventType">
+      <member name="notice"
+              value="0"
+              c:identifier="GDA_CONNECTION_EVENT_NOTICE">
+      </member>
+      <member name="warning"
+              value="1"
+              c:identifier="GDA_CONNECTION_EVENT_WARNING">
+      </member>
+      <member name="error" value="2" c:identifier="GDA_CONNECTION_EVENT_ERROR">
+      </member>
+      <member name="command"
+              value="3"
+              c:identifier="GDA_CONNECTION_EVENT_COMMAND">
+      </member>
+    </enumeration>
+    <enumeration name="ConnectionFeature" c:type="GdaConnectionFeature">
+      <doc xml:whitespace="preserve">Used in gda_connection_supports_feature() and 
gda_server_provider_supports_feature() to test if a connection
+or a database provider supports some specific feature.</doc>
+      <member name="aggregates"
+              value="0"
+              c:identifier="GDA_CONNECTION_FEATURE_AGGREGATES">
+        <doc xml:whitespace="preserve">test for aggregates support</doc>
+      </member>
+      <member name="blobs"
+              value="1"
+              c:identifier="GDA_CONNECTION_FEATURE_BLOBS">
+        <doc xml:whitespace="preserve">test for BLOBS (binary large objects) support</doc>
+      </member>
+      <member name="indexes"
+              value="2"
+              c:identifier="GDA_CONNECTION_FEATURE_INDEXES">
+        <doc xml:whitespace="preserve">test for indexes support</doc>
+      </member>
+      <member name="inheritance"
+              value="3"
+              c:identifier="GDA_CONNECTION_FEATURE_INHERITANCE">
+        <doc xml:whitespace="preserve">test for tables inheritance support</doc>
+      </member>
+      <member name="namespaces"
+              value="4"
+              c:identifier="GDA_CONNECTION_FEATURE_NAMESPACES">
+        <doc xml:whitespace="preserve">test for namespaces support</doc>
+      </member>
+      <member name="procedures"
+              value="5"
+              c:identifier="GDA_CONNECTION_FEATURE_PROCEDURES">
+        <doc xml:whitespace="preserve">test for functions support</doc>
+      </member>
+      <member name="sequences"
+              value="6"
+              c:identifier="GDA_CONNECTION_FEATURE_SEQUENCES">
+        <doc xml:whitespace="preserve">test for sequences support</doc>
+      </member>
+      <member name="sql" value="7" c:identifier="GDA_CONNECTION_FEATURE_SQL">
+        <doc xml:whitespace="preserve">test for SQL language (even specific to the database) support</doc>
+      </member>
+      <member name="transactions"
+              value="8"
+              c:identifier="GDA_CONNECTION_FEATURE_TRANSACTIONS">
+        <doc xml:whitespace="preserve">test for transactions support</doc>
+      </member>
+      <member name="savepoints"
+              value="9"
+              c:identifier="GDA_CONNECTION_FEATURE_SAVEPOINTS">
+        <doc xml:whitespace="preserve">test for savepoints within transactions support</doc>
+      </member>
+      <member name="savepoints_remove"
+              value="10"
+              c:identifier="GDA_CONNECTION_FEATURE_SAVEPOINTS_REMOVE">
+        <doc xml:whitespace="preserve">test if savepoints can be removed</doc>
+      </member>
+      <member name="triggers"
+              value="11"
+              c:identifier="GDA_CONNECTION_FEATURE_TRIGGERS">
+        <doc xml:whitespace="preserve">test for triggers support</doc>
+      </member>
+      <member name="updatable_cursor"
+              value="12"
+              c:identifier="GDA_CONNECTION_FEATURE_UPDATABLE_CURSOR">
+        <doc xml:whitespace="preserve">test for updatable cursors support</doc>
+      </member>
+      <member name="users"
+              value="13"
+              c:identifier="GDA_CONNECTION_FEATURE_USERS">
+        <doc xml:whitespace="preserve">test for users support</doc>
+      </member>
+      <member name="views"
+              value="14"
+              c:identifier="GDA_CONNECTION_FEATURE_VIEWS">
+        <doc xml:whitespace="preserve">test for views support</doc>
+      </member>
+      <member name="xa_transactions"
+              value="15"
+              c:identifier="GDA_CONNECTION_FEATURE_XA_TRANSACTIONS">
+        <doc xml:whitespace="preserve">test for distributed transactions support</doc>
+      </member>
+      <member name="multi_threading"
+              value="16"
+              c:identifier="GDA_CONNECTION_FEATURE_MULTI_THREADING">
+        <doc xml:whitespace="preserve">test for native multi-threading support</doc>
+      </member>
+      <member name="async_exec"
+              value="17"
+              c:identifier="GDA_CONNECTION_FEATURE_ASYNC_EXEC">
+        <doc xml:whitespace="preserve">test if connection supports asynchronous execution</doc>
+      </member>
+      <member name="last"
+              value="18"
+              c:identifier="GDA_CONNECTION_FEATURE_LAST">
+        <doc xml:whitespace="preserve">not used</doc>
+      </member>
+    </enumeration>
+    <enumeration name="ConnectionMetaType" c:type="GdaConnectionMetaType">
+      <doc xml:whitespace="preserve">Used with gda_connection_get_meta_store_data() to describe what meta 
data to extract from
+a connection's associated #GdaMetaStore.</doc>
+      <member name="namespaces"
+              value="0"
+              c:identifier="GDA_CONNECTION_META_NAMESPACES">
+        <doc xml:whitespace="preserve">lists the &lt;link 
linkend="GdaConnectionMetaTypeGDA_CONNECTION_META_NAMESPACES"&gt;namespaces&lt;/link&gt; (or schemas for 
PostgreSQL)</doc>
+      </member>
+      <member name="types" value="1" c:identifier="GDA_CONNECTION_META_TYPES">
+        <doc xml:whitespace="preserve">lists the &lt;link 
linkend="GdaConnectionMetaTypeGDA_CONNECTION_META_TYPES"&gt;database types&lt;/link&gt;</doc>
+      </member>
+      <member name="tables"
+              value="2"
+              c:identifier="GDA_CONNECTION_META_TABLES">
+        <doc xml:whitespace="preserve">lists the &lt;link 
linkend="GdaConnectionMetaTypeGDA_CONNECTION_META_TABLES"&gt;tables&lt;/link&gt;</doc>
+      </member>
+      <member name="views" value="3" c:identifier="GDA_CONNECTION_META_VIEWS">
+        <doc xml:whitespace="preserve">lists the &lt;link 
linkend="GdaConnectionMetaTypeGDA_CONNECTION_META_VIEWS"&gt;views&lt;/link&gt;</doc>
+      </member>
+      <member name="fields"
+              value="4"
+              c:identifier="GDA_CONNECTION_META_FIELDS">
+        <doc xml:whitespace="preserve">lists the &lt;link 
linkend="GdaConnectionMetaTypeGDA_CONNECTION_META_FIELDS"&gt;table's or view's fields&lt;/link&gt;</doc>
+      </member>
+      <member name="indexes"
+              value="5"
+              c:identifier="GDA_CONNECTION_META_INDEXES">
+        <doc xml:whitespace="preserve">lists the &lt;link 
linkend="GdaConnectionMetaTypeGDA_CONNECTION_META_INDEXES"&gt;table's indexes&lt;/link&gt;</doc>
+      </member>
+    </enumeration>
+    <bitfield name="ConnectionOptions" c:type="GdaConnectionOptions">
+      <doc xml:whitespace="preserve">Specifies some aspects of a connection when opening it.
+
+Additional information about the GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE flag:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;For example without this flag, if the table
+      name specified in a #GdaServerOperation to create a table is
+      &lt;emphasis&gt;MyTable&lt;/emphasis&gt;, then usually the database will create a table named
+      &lt;emphasis&gt;mytable&lt;/emphasis&gt;, whereas with this flag, the table will be created
+      as &lt;emphasis&gt;MyTable&lt;/emphasis&gt; (note that in the end the database may still decide
+      to name the table &lt;emphasis&gt;mytable&lt;/emphasis&gt; or differently if it can't do
+      otherwise).&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;Libgda will not apply this rule when parsing SQL code, the SQL code being 
parsed
+      has to be conform to the database it will be used with&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Additional information about the GDA_CONNECTION_OPTIONS_THREAD_SAFE and 
GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flags:
+The GDA_CONNECTION_OPTIONS_THREAD_SAFE flag specifies that it has to be able to use the returned connection 
object from
+several threads at once (locking is ensured by the #GdaConnection itself). Depending on the database 
provider's
+implementation and on the native libraries it uses, the "normal" connection object might not respect this 
requirement,
+and in this case a specific thread is started and used as the unique thread which will manipulate the actual 
connection,
+while a "wrapper connection" is actually returned and used by the caller (that wrapper connection passes 
method calls
+from the calling thread to the actual connection's specific thread, and gets the results back).
+
+The GDA_CONNECTION_OPTIONS_THREAD_ISOLATED forces using a specific thread and a "wrapper connection" even if 
the
+"normal" connection would itself be thread safe; this is useful for example to be sure the asynchronous API 
can
+always be used (see gda_connection_async_statement_execute()).
+
+Having a specific thread and a "wrapper connection" definitely has an impact on the performances (because it 
involves
+messages passing between threads for every method call), so using the
+GDA_CONNECTION_OPTIONS_THREAD_SAFE or GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flags should be carefully 
considered.
+
+Note about the @GDA_CONNECTION_OPTIONS_AUTO_META_DATA flag:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;Every time a DDL statement is successfully executed, the associated mate data, 
if
+              defined, will be updated, which has a impact on performances&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;If a transaction is started and some DDL statements are executed and the 
transaction
+           is not rolled back or committed, then the meta data may end up being 
wrong&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+      <member name="none" value="0" c:identifier="GDA_CONNECTION_OPTIONS_NONE">
+        <doc xml:whitespace="preserve">no specific aspect</doc>
+      </member>
+      <member name="read_only"
+              value="1"
+              c:identifier="GDA_CONNECTION_OPTIONS_READ_ONLY">
+        <doc xml:whitespace="preserve">this flag specifies that the connection to open should be in a 
read-only mode (this policy is not correctly enforced at the moment)</doc>
+      </member>
+      <member name="sql_identifiers_case_sensitive"
+              value="2"
+              c:identifier="GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE">
+        <doc xml:whitespace="preserve">this flag specifies that SQL identifiers submitted as input to Libgda 
have to keep their case sensitivity.</doc>
+      </member>
+      <member name="thread_safe"
+              value="4"
+              c:identifier="GDA_CONNECTION_OPTIONS_THREAD_SAFE">
+        <doc xml:whitespace="preserve">this flag specifies that the connection to open will be used by 
several threads at once so it has to be thread safe</doc>
+      </member>
+      <member name="thread_isolated"
+              value="8"
+              c:identifier="GDA_CONNECTION_OPTIONS_THREAD_ISOLATED">
+        <doc xml:whitespace="preserve">this flag specifies that the connection to open will be used by 
several threads at once and requests that the real connection be used only in a sub thread created 
specifically for it</doc>
+      </member>
+      <member name="auto_meta_data"
+              value="16"
+              c:identifier="GDA_CONNECTION_OPTIONS_AUTO_META_DATA">
+        <doc xml:whitespace="preserve">this flags specifies that if a #GdaMetaStore has been associated to 
the connection, then it is kept up to date with the evolutions in the database's structure. Be aware however 
that there are some drawbacks explained below.</doc>
+      </member>
+    </bitfield>
+    <record name="ConnectionPrivate"
+            c:type="GdaConnectionPrivate"
+            disguised="1">
+    </record>
+    <class name="DataAccessWrapper"
+           c:symbol-prefix="data_access_wrapper"
+           c:type="GdaDataAccessWrapper"
+           parent="GObject.Object"
+           glib:type-name="GdaDataAccessWrapper"
+           glib:get-type="gda_data_access_wrapper_get_type"
+           glib:type-struct="DataAccessWrapperClass">
+      <implements name="DataModel"/>
+      <function name="new" c:identifier="gda_data_access_wrapper_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object which buffers the rows of @model. 
This object is useful
+only if @model can only be accessed using cursor based method.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="set_mapping"
+              c:identifier="gda_data_access_wrapper_set_mapping"
+              version="5.2">
+        <doc xml:whitespace="preserve">@wrapper will report as many columns as @mapping_size, and for each 
value at position 'i' in @mapping,
+ wrapper will report the 'i'th column, mapped to the wrapped data model column at position mapping[i].
+For example if mapping is {3, 4, 0}, then @wrapper will report 3 columns, respectively mapped to the 4th,
+5th and 1st columns of the wrapped data model (as column numbers start at 0).
+
+If @mapping is %NULL, then no mapping is done and @wrapper's columns will be the same as the wrapped
+data model.
+
+If a column in @mapping does not exist in the wrapped data model, then it is simply ignored (no error
+reported).
+
+Please note that if @wrapper has already been used and if the wrapped data model offers a cursor forward
+access mode, then this method will return %FALSE and no action will be done.
+
+If the mapping is applied, then any existing iterator will be invalid, and @wrapper is reset as if it
+had just been created.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the mapping actually changed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="wrapper" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataAccessWrapper object</doc>
+            <type name="DataAccessWrapper" c:type="GdaDataAccessWrapper*"/>
+          </instance-parameter>
+          <parameter name="mapping" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array of #gint which represents the mapping between @wrapper's 
columns and the columns of the wrapped data model</doc>
+            <array length="1" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="mapping_size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the size of @mapping.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="model"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataAccessWrapperPrivate"
+              c:type="GdaDataAccessWrapperPrivate*"/>
+      </field>
+    </class>
+    <record name="DataAccessWrapperClass"
+            c:type="GdaDataAccessWrapperClass"
+            glib:is-gtype-struct-for="DataAccessWrapper">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DataAccessWrapperPrivate"
+            c:type="GdaDataAccessWrapperPrivate"
+            disguised="1">
+    </record>
+    <class name="DataComparator"
+           c:symbol-prefix="data_comparator"
+           c:type="GdaDataComparator"
+           parent="GObject.Object"
+           glib:type-name="GdaDataComparator"
+           glib:get-type="gda_data_comparator_get_type"
+           glib:type-struct="DataComparatorClass">
+      <constructor name="new" c:identifier="gda_data_comparator_new">
+        <doc xml:whitespace="preserve">Creates a new comparator to compute the differences from @old_model 
to @new_model: if one applies
+all the computed differences (as #GdaDiff structures) to @old_model, the resulting data model
+should have the same contents as @new_model.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataComparator object</doc>
+          <type name="DataComparator" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Data model to which the modifications should be applied</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+          <parameter name="new_model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Target data model.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark"
+                c:identifier="gda_data_comparator_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="diff_computed">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="comp" transfer-ownership="none">
+            <type name="DataComparator" c:type="GdaDataComparator*"/>
+          </instance-parameter>
+          <parameter name="diff" transfer-ownership="none">
+            <type name="Diff" c:type="GdaDiff*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="compute_diff"
+              c:identifier="gda_data_comparator_compute_diff"
+              throws="1">
+        <doc xml:whitespace="preserve">Actually computes the differences between the data models for which 
@comp is defined. 
+
+For each difference computed, stored in a #GdaDiff structure, the "diff-computed" signal is emitted.
+If one connects to this signal and returns FALSE in the signal handler, then computing differences will be
+stopped and an error will be returned.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if all the differences have been successfully computed, and 
FALSE if an error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="comp" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataComparator object</doc>
+            <type name="DataComparator" c:type="GdaDataComparator*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_diff" c:identifier="gda_data_comparator_get_diff">
+        <doc xml:whitespace="preserve">Get a pointer to the #GdaDiff structure representing the difference 
which number is @pos</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a #GdaDiff, or %NULL if @pos is invalid</doc>
+          <type name="Diff" c:type="const GdaDiff*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="comp" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataComparator object</doc>
+            <type name="DataComparator" c:type="GdaDataComparator*"/>
+          </instance-parameter>
+          <parameter name="pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested difference number (starting at 0)</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_diffs"
+              c:identifier="gda_data_comparator_get_n_diffs">
+        <doc xml:whitespace="preserve">Get the number of differences as computed by the last time 
gda_data_comparator_compute_diff() was called.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of computed differences</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="comp" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataComparator object</doc>
+            <type name="DataComparator" c:type="GdaDataComparator*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_key_columns"
+              c:identifier="gda_data_comparator_set_key_columns">
+        <doc xml:whitespace="preserve">Defines the columns which will be used as a key when searching data. 
This is not mandatory but
+will speed things up as less data will be processed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="comp" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataComparator object</doc>
+            <type name="DataComparator" c:type="GdaDataComparator*"/>
+          </instance-parameter>
+          <parameter name="col_numbers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of @nb_cols values</doc>
+            <array length="1" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="nb_cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the size of the @col_numbers array</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="new-model" writable="1" transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <property name="old-model" writable="1" transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataComparatorPrivate" c:type="GdaDataComparatorPrivate*"/>
+      </field>
+      <glib:signal name="diff-computed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="DataComparatorClass"
+            c:type="GdaDataComparatorClass"
+            glib:is-gtype-struct-for="DataComparator">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="diff_computed">
+        <callback name="diff_computed">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="comp" transfer-ownership="none">
+              <type name="DataComparator" c:type="GdaDataComparator*"/>
+            </parameter>
+            <parameter name="diff" transfer-ownership="none">
+              <type name="Diff" c:type="GdaDiff*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="DataComparatorError" c:type="GdaDataComparatorError">
+      <member name="missing_data_model_error"
+              value="0"
+              c:identifier="GDA_DATA_COMPARATOR_MISSING_DATA_MODEL_ERROR">
+      </member>
+      <member name="column_types_mismatch_error"
+              value="1"
+              c:identifier="GDA_DATA_COMPARATOR_COLUMN_TYPES_MISMATCH_ERROR">
+      </member>
+      <member name="model_access_error"
+              value="2"
+              c:identifier="GDA_DATA_COMPARATOR_MODEL_ACCESS_ERROR">
+      </member>
+      <member name="user_cancelled_error"
+              value="3"
+              c:identifier="GDA_DATA_COMPARATOR_USER_CANCELLED_ERROR">
+      </member>
+    </enumeration>
+    <record name="DataComparatorPrivate"
+            c:type="GdaDataComparatorPrivate"
+            disguised="1">
+    </record>
+    <interface name="DataHandler"
+               c:symbol-prefix="data_handler"
+               c:type="GdaDataHandler"
+               glib:type-name="GdaDataHandler"
+               glib:get-type="gda_data_handler_get_type"
+               glib:type-struct="DataHandlerIface">
+      <function name="get_default"
+                c:identifier="gda_data_handler_get_default"
+                version="4.2.3">
+        <doc xml:whitespace="preserve">Obtain a pointer to a #GdaDataHandler which can manage #GValue values 
of type @for_type. The returned
+data handler will be adapted to use the current locale information (for example dates will be formatted
+taking into account the locale).
+
+The returned pointer is %NULL if there is no default data handler available for the @for_type data type</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaDataHandler which must not be modified or destroyed.</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+        <parameters>
+          <parameter name="for_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType type</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="accepts_g_type" invoker="accepts_g_type">
+        <doc xml:whitespace="preserve">Checks wether the GdaDataHandler is able to handle the gda type given 
as argument.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the gda type can be handled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_descr" invoker="get_descr">
+        <doc xml:whitespace="preserve">Get a short description of the GdaDataHandler</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the description</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_sane_init_value" invoker="get_sane_init_value">
+        <doc xml:whitespace="preserve">Creates a new GValue which holds a sane initial value to be used if 
no value is specifically
+provided. For example for a simple string, this would return a new value containing the "" string.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new #GValue, or %NULL if no such value can be created.</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_sql_from_value" invoker="get_sql_from_value">
+        <doc xml:whitespace="preserve">Creates a new string which is an SQL representation of the given 
value, the returned string
+can be used directly in an SQL statement. For example if @value is a G_TYPE_STRING, then
+the returned string will be correctly quoted. Note however that it is a better practice
+to use variables in statements instead of value literals, see
+the &lt;link linkend="GdaSqlParser.description"&gt;GdaSqlParser&lt;/link&gt; for more information.
+
+If the value is NULL or is of type GDA_TYPE_NULL,
+or is a G_TYPE_STRING and g_value_get_string() returns %NULL, the returned string is "NULL".</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new string, or %NULL if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the value to be converted to a string, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_str_from_value" invoker="get_str_from_value">
+        <doc xml:whitespace="preserve">Creates a new string which is a "user friendly" representation of the 
given value
+(in the user's locale, specially for the dates). If the value is 
+NULL or is of type GDA_TYPE_NULL, the returned string is a copy of "" (empty string).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new string, or %NULL if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the value to be converted to a string, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_value_from_sql" invoker="get_value_from_sql">
+        <doc xml:whitespace="preserve">Creates a new GValue which represents the SQL value given as 
argument. This is
+the opposite of the function gda_data_handler_get_sql_from_value(). The type argument
+is used to determine the real data type requested for the returned value.
+
+If the @sql string is %NULL, then the returned GValue is of type GDA_TYPE_NULL;
+if the @sql string does not correspond to a valid SQL string for the requested type, then
+the %NULL is returned.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new #GValue or %NULL on error</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="sql" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an SQL string, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_value_from_str" invoker="get_value_from_str">
+        <doc xml:whitespace="preserve">Creates a new GValue which represents the @str value given as 
argument. This is
+the opposite of the function gda_data_handler_get_str_from_value(). The type argument
+is used to determine the real data type requested for the returned value.
+
+If the @str string is %NULL, then the returned GValue is of type GDA_TYPE_NULL;
+if the @str string does not correspond to a valid string for the requested type, then
+%NULL is returned.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new #GValue or %NULL on error</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a string or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="accepts_g_type"
+              c:identifier="gda_data_handler_accepts_g_type">
+        <doc xml:whitespace="preserve">Checks wether the GdaDataHandler is able to handle the gda type given 
as argument.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the gda type can be handled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_descr" c:identifier="gda_data_handler_get_descr">
+        <doc xml:whitespace="preserve">Get a short description of the GdaDataHandler</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the description</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sane_init_value"
+              c:identifier="gda_data_handler_get_sane_init_value">
+        <doc xml:whitespace="preserve">Creates a new GValue which holds a sane initial value to be used if 
no value is specifically
+provided. For example for a simple string, this would return a new value containing the "" string.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new #GValue, or %NULL if no such value can be created.</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sql_from_value"
+              c:identifier="gda_data_handler_get_sql_from_value">
+        <doc xml:whitespace="preserve">Creates a new string which is an SQL representation of the given 
value, the returned string
+can be used directly in an SQL statement. For example if @value is a G_TYPE_STRING, then
+the returned string will be correctly quoted. Note however that it is a better practice
+to use variables in statements instead of value literals, see
+the &lt;link linkend="GdaSqlParser.description"&gt;GdaSqlParser&lt;/link&gt; for more information.
+
+If the value is NULL or is of type GDA_TYPE_NULL,
+or is a G_TYPE_STRING and g_value_get_string() returns %NULL, the returned string is "NULL".</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new string, or %NULL if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the value to be converted to a string, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_str_from_value"
+              c:identifier="gda_data_handler_get_str_from_value">
+        <doc xml:whitespace="preserve">Creates a new string which is a "user friendly" representation of the 
given value
+(in the user's locale, specially for the dates). If the value is 
+NULL or is of type GDA_TYPE_NULL, the returned string is a copy of "" (empty string).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new string, or %NULL if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the value to be converted to a string, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_from_sql"
+              c:identifier="gda_data_handler_get_value_from_sql">
+        <doc xml:whitespace="preserve">Creates a new GValue which represents the SQL value given as 
argument. This is
+the opposite of the function gda_data_handler_get_sql_from_value(). The type argument
+is used to determine the real data type requested for the returned value.
+
+If the @sql string is %NULL, then the returned GValue is of type GDA_TYPE_NULL;
+if the @sql string does not correspond to a valid SQL string for the requested type, then
+the %NULL is returned.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new #GValue or %NULL on error</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="sql" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an SQL string, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_from_str"
+              c:identifier="gda_data_handler_get_value_from_str">
+        <doc xml:whitespace="preserve">Creates a new GValue which represents the @str value given as 
argument. This is
+the opposite of the function gda_data_handler_get_str_from_value(). The type argument
+is used to determine the real data type requested for the returned value.
+
+If the @str string is %NULL, then the returned GValue is of type GDA_TYPE_NULL;
+if the @str string does not correspond to a valid string for the requested type, then
+%NULL is returned.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new #GValue or %NULL on error</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an object which implements the #GdaDataHandler interface</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a string or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="DataHandlerIface"
+            c:type="GdaDataHandlerIface"
+            glib:is-gtype-struct-for="DataHandler">
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_sql_from_value">
+        <callback name="get_sql_from_value">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">the new string, or %NULL if an error occurred</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none" allow-none="1">
+              <doc xml:whitespace="preserve">the value to be converted to a string, or %NULL</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_str_from_value">
+        <callback name="get_str_from_value">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">the new string, or %NULL if an error occurred</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none" allow-none="1">
+              <doc xml:whitespace="preserve">the value to be converted to a string, or %NULL</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_value_from_sql">
+        <callback name="get_value_from_sql">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">the new #GValue or %NULL on error</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+            <parameter name="sql" transfer-ownership="none" allow-none="1">
+              <doc xml:whitespace="preserve">an SQL string, or %NULL</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a GType</doc>
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_value_from_str">
+        <callback name="get_value_from_str">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">the new #GValue or %NULL on error</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+            <parameter name="str" transfer-ownership="none" allow-none="1">
+              <doc xml:whitespace="preserve">a string or %NULL</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a GType</doc>
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_sane_init_value">
+        <callback name="get_sane_init_value">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">the new #GValue, or %NULL if no such value can be created.</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GType</doc>
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="accepts_g_type">
+        <callback name="accepts_g_type">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the gda type can be handled</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GType</doc>
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_descr">
+        <callback name="get_descr">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="dh" transfer-ownership="none">
+              <type name="DataHandler" c:type="GdaDataHandler*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="DataMetaWrapper" c:type="GdaDataMetaWrapper">
+      <field name="object" writable="1">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv" writable="1">
+        <type name="DataMetaWrapperPrivate"
+              c:type="GdaDataMetaWrapperPrivate*"/>
+      </field>
+    </record>
+    <record name="DataMetaWrapperClass" c:type="GdaDataMetaWrapperClass">
+      <field name="parent_class" writable="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="DataMetaWrapperMode" c:type="GdaDataMetaWrapperMode">
+      <member name="lc" value="0" c:identifier="GDA_DATA_META_WRAPPER_MODE_LC">
+      </member>
+      <member name="uc" value="1" c:identifier="GDA_DATA_META_WRAPPER_MODE_UC">
+      </member>
+    </enumeration>
+    <record name="DataMetaWrapperPrivate"
+            c:type="GdaDataMetaWrapperPrivate"
+            disguised="1">
+    </record>
+    <interface name="DataModel"
+               c:symbol-prefix="data_model"
+               c:type="GdaDataModel"
+               glib:type-name="GdaDataModel"
+               glib:get-type="gda_data_model_get_type"
+               glib:type-struct="DataModelIface">
+      <function name="error_quark" c:identifier="gda_data_model_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="access_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_append_row" invoker="append_row" throws="1">
+        <doc xml:whitespace="preserve">Appends a row to the data model (the new row will possibly have NULL 
values for all columns,
+or some other values depending on the data model implementation)
+
+Upon errors -1 will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of the added row, or -1 if an error occurred</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_append_values"
+                      invoker="append_values"
+                      introspectable="0"
+                      throws="1">
+        <doc xml:whitespace="preserve">Appends a row to the given data model. If any value in @values is 
actually %NULL, then 
+it is considered as a default value. If @values is %NULL then all values are set to their default value.
+
+Upon errors -1 will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of the added row, or -1 if an error occurred</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="values" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">#GList of #GValue* representing the row to add.  The length must 
match model's column count.  These #GValue are value-copied (the user is still responsible for freeing 
them).</doc>
+            <type name="GLib.List" c:type="const GList*">
+              <type/>
+            </type>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_create_iter" invoker="create_iter">
+        <doc xml:whitespace="preserve">Creates a new iterator object #GdaDataModelIter object which can be 
used to iterate through
+rows in @model. The new #GdaDataModelIter does not hold any reference to @model (ie. if @model
+is destroyed at some point, the new iterator will become useless but in any case it will not prevent
+the data model from being destroyed).
+
+Depending on the data model's implementation, a new #GdaDataModelIter object may be created,
+or a reference to an already existing #GdaDataModelIter may be returned. For example if @model only
+supports being accessed using a forward moving cursor (say a the result of a SELECT executed by SQLite
+with a cursor access mode specified), then this method will always return the same iterator.
+
+If a new #GdaDataModelIter is created, then the row it represents is undefined.
+
+For models which can be accessed 
+randomly, any row can be set using gda_data_model_iter_move_to_row(), 
+and for models which are accessible sequentially only then use
+gda_data_model_iter_move_next() (and gda_data_model_iter_move_prev() if
+supported).
+
+Note: for the #GdaDataProxy data model (which proxies any #GdaDataModel for modifications and
+has twice the number of columns of the proxied data model), this method will create an iterator
+in which only the columns of the proxied data model appear. If you need to have a #GdaDataModelIter
+in which all the proxy's columns appear, create it using:
+&lt;programlisting&gt;&lt;![CDATA[iter = g_object_new (GDA_TYPE_DATA_MODEL_ITER, "data-model", proxy, 
NULL);]]&gt;&lt;/programlisting&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModelIter object, or %NULL if an error occurred</doc>
+          <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_describe_column" invoker="describe_column">
+        <doc xml:whitespace="preserve">Queries the underlying data model implementation for a description
+of a given column. That description is returned in the form of
+a #GdaColumn structure, which contains all the information
+about the given column in the data model.
+
+WARNING: the returned #GdaColumn object belongs to the @model model and
+and should not be destroyed; any modification will affect the whole data model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the description of the column.</doc>
+          <type name="Column" c:type="GdaColumn*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_find_row"
+                      invoker="get_row_from_values"
+                      introspectable="0">
+        <doc xml:whitespace="preserve">Returns the first row where all the values in @values at the columns 
identified at
+ cols_index match. If the row can't be identified, then returns -1;
+
+NOTE: the @cols_index array MUST contain a column index for each value in @values</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the requested row number, of -1 if not found</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of #GValue values (no %NULL is allowed)</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type/>
+            </type>
+          </parameter>
+          <parameter name="cols_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #gint containing the column number to match each 
value of @values</doc>
+            <array zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_access_flags" invoker="get_access_flags">
+        <doc xml:whitespace="preserve">Get the attributes of @model such as how to access the data it 
contains if it's modifiable, etc.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an ORed value of #GdaDataModelAccessFlags flags</doc>
+          <type name="DataModelAccessFlags" c:type="GdaDataModelAccessFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_attributes_at" invoker="get_attributes_at">
+        <doc xml:whitespace="preserve">Get the attributes of the value stored at (row, col) in @model, which
+is an ORed value of #GdaValueAttribute flags. As a special case, if
+ row is -1, then the attributes returned correspond to a "would be" value
+if a row was added to @model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the attributes as an ORed value of #GdaValueAttribute</doc>
+          <type name="ValueAttribute" c:type="GdaValueAttribute"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid column number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid row number, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_exceptions"
+                      invoker="get_exceptions"
+                      version="4.2.6">
+        <doc xml:whitespace="preserve">Get the global data model exception(s) that occurred when using 
@model.
+This is useful for example for the LDAP related
+data models where some rows may be missing because the LDAP search has reached a limit
+imposed by the LDAP server.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a %NULL terminated array of #GError, or %NULL.</doc>
+          <array c:type="GError**">
+            <type name="GLib.Error"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_n_columns" invoker="get_n_columns">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns in the given data model, or -1 if 
unknown.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_n_rows" invoker="get_n_rows">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of rows in the given data model, or -1 if the number of 
rows is not known</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_notify" invoker="get_notify">
+        <doc xml:whitespace="preserve">Returns the status of notifications changes on the given data 
model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_get_value_at" invoker="get_value_at" throws="1">
+        <doc xml:whitespace="preserve">Retrieves the data stored in the given position (identified by
+the @col and @row parameters) on a data model.
+
+Upon errors %NULL will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
+
+This is the main function for accessing data in a model which allows random access to its data.
+To access data in a data model using a cursor, use a #GdaDataModelIter object, obtained using
+gda_data_model_create_iter().
+
+Note1: the returned #GValue must not be modified directly (unexpected behaviours may
+occur if you do so).
+
+Note2: the returned value may become invalid as soon as any Libgda part is executed again,
+which means if you want to keep the value, a copy must be made, however it will remain valid
+as long as the only Libgda usage is calling gda_data_model_get_value_at() for different values
+of the same row.
+
+If you want to modify a value stored in a #GdaDataModel, use the gda_data_model_set_value_at() or 
+gda_data_model_set_values() methods.
+
+Upon errors %NULL will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue containing the value stored in the given position, or 
%NULL on error (out-of-bound position, etc).</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_iter_at_row"
+                      invoker="iter_at_row"
+                      deprecated="use gda_data_model_iter_move_to_row() instead"
+                      deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Moves @iter to the row number given by @row.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a row to point to with @iter</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_iter_next"
+                      invoker="iter_next"
+                      deprecated="use gda_data_model_iter_move_next() instead"
+                      deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Moves @iter to the next row in @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_iter_prev"
+                      invoker="iter_prev"
+                      deprecated="use gda_data_model_iter_move_prev() instead"
+                      deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Moves @iter to the next row in @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_iter_set_value"
+                      invoker="iter_set_value"
+                      deprecated="use gda_data_model_iter_set_value_at() instead"
+                      deprecated-version="5.2"
+                      throws="1">
+        <doc xml:whitespace="preserve">Set @value to the given @column and row pointed by @iter in the given 
@model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of column to set value to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the to use to set on</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_remove_row" invoker="remove_row" throws="1">
+        <doc xml:whitespace="preserve">Removes a row from the data model.
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row number to be removed.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_send_hint" invoker="send_hint">
+        <doc xml:whitespace="preserve">Sends a hint to the data model. The hint may or may not be handled by 
the data
+model, depending on its implementation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="hint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a hint to send to the model</doc>
+            <type name="DataModelHint" c:type="GdaDataModelHint"/>
+          </parameter>
+          <parameter name="hint_value"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">an optional value to specify the hint, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_set_notify"
+                      invoker="set_notify"
+                      deprecated="use gda_data_model_freeze() and gda_data_model_thaw() instead"
+                      deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Enable or disable notifications changes on the given data model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="do_notify_changes" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Set to TRUE if you require notifications.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_set_value_at" invoker="set_value_at" throws="1">
+        <doc xml:whitespace="preserve">Modifies a value in @model, at (@col, @row).
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the value in the data model has been updated and no error 
occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue (not %NULL)</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_set_values"
+                      invoker="set_values"
+                      introspectable="0"
+                      throws="1">
+        <doc xml:whitespace="preserve">In a similar way to gda_data_model_set_value_at(), this method 
modifies a data model's contents
+by setting several values at once.
+
+If any value in @values is actually %NULL, then the value in the corresponding column is left
+unchanged.
+ 
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the value in the data model has been updated and no error 
occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="values" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a list of #GValue (or %NULL), one for at most the number of 
columns of @model</doc>
+            <type name="GLib.List" c:type="GList*">
+              <type/>
+            </type>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="reset" invoker="reset">
+        <doc xml:whitespace="preserve">Emits the 'reset' and 'changed' signal on @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_inserted" invoker="row_inserted">
+        <doc xml:whitespace="preserve">Emits the 'row_inserted' and 'changed' signals on @model. 
+
+This method should only be used by #GdaDataModel implementations to 
+signal that a row has been inserted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_removed" invoker="row_removed">
+        <doc xml:whitespace="preserve">Emits the 'row_removed' and 'changed' signal on @model.
+
+This method should only be used by #GdaDataModel implementations to 
+signal that a row has been removed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_updated" invoker="row_updated">
+        <doc xml:whitespace="preserve">Emits the 'row_updated' and 'changed' signals on @model.
+
+This method should only be used by #GdaDataModel implementations to 
+signal that a row has been updated.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_data_from_xml_node"
+              c:identifier="gda_data_model_add_data_from_xml_node"
+              throws="1">
+        <doc xml:whitespace="preserve">Adds the data from an XML node to the given data model (see the DTD 
for that node
+in the $prefix/share/libgda/dtd/libgda-array.dtd file).
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an XML node representing a &amp;lt;gda_array_data&amp;gt; XML 
node.</doc>
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="append_row"
+              c:identifier="gda_data_model_append_row"
+              throws="1">
+        <doc xml:whitespace="preserve">Appends a row to the data model (the new row will possibly have NULL 
values for all columns,
+or some other values depending on the data model implementation)
+
+Upon errors -1 will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of the added row, or -1 if an error occurred</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="append_values"
+              c:identifier="gda_data_model_append_values"
+              introspectable="0"
+              throws="1">
+        <doc xml:whitespace="preserve">Appends a row to the given data model. If any value in @values is 
actually %NULL, then 
+it is considered as a default value. If @values is %NULL then all values are set to their default value.
+
+Upon errors -1 will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of the added row, or -1 if an error occurred</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="values" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">#GList of #GValue* representing the row to add.  The length must 
match model's column count.  These #GValue are value-copied (the user is still responsible for freeing 
them).</doc>
+            <type name="GLib.List" c:type="const GList*">
+              <type/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="array_copy_model"
+              c:identifier="gda_data_model_array_copy_model"
+              throws="1">
+        <doc xml:whitespace="preserve">Makes a copy of @src into a new #GdaDataModelArray object</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new data model, or %NULL if an error occurred</doc>
+          <type name="DataModelArray" c:type="GdaDataModelArray*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel to copy data from</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="array_copy_model_ext"
+              c:identifier="gda_data_model_array_copy_model_ext"
+              version="5.2.0"
+              throws="1">
+        <doc xml:whitespace="preserve">Like gda_data_model_array_copy_model(), makes a copy of @src, but 
copies only some
+columns.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new data model, or %NULL if an error occurred</doc>
+          <type name="DataModelArray" c:type="GdaDataModelArray*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel to copy data from</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="ncols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">size of @cols</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">array of @src's columns to copy into the new array, not 
%NULL</doc>
+            <array length="0" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_iter" c:identifier="gda_data_model_create_iter">
+        <doc xml:whitespace="preserve">Creates a new iterator object #GdaDataModelIter object which can be 
used to iterate through
+rows in @model. The new #GdaDataModelIter does not hold any reference to @model (ie. if @model
+is destroyed at some point, the new iterator will become useless but in any case it will not prevent
+the data model from being destroyed).
+
+Depending on the data model's implementation, a new #GdaDataModelIter object may be created,
+or a reference to an already existing #GdaDataModelIter may be returned. For example if @model only
+supports being accessed using a forward moving cursor (say a the result of a SELECT executed by SQLite
+with a cursor access mode specified), then this method will always return the same iterator.
+
+If a new #GdaDataModelIter is created, then the row it represents is undefined.
+
+For models which can be accessed 
+randomly, any row can be set using gda_data_model_iter_move_to_row(), 
+and for models which are accessible sequentially only then use
+gda_data_model_iter_move_next() (and gda_data_model_iter_move_prev() if
+supported).
+
+Note: for the #GdaDataProxy data model (which proxies any #GdaDataModel for modifications and
+has twice the number of columns of the proxied data model), this method will create an iterator
+in which only the columns of the proxied data model appear. If you need to have a #GdaDataModelIter
+in which all the proxy's columns appear, create it using:
+&lt;programlisting&gt;&lt;![CDATA[iter = g_object_new (GDA_TYPE_DATA_MODEL_ITER, "data-model", proxy, 
NULL);]]&gt;&lt;/programlisting&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaDataModelIter object, or %NULL if an error occurred</doc>
+          <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="describe_column"
+              c:identifier="gda_data_model_describe_column">
+        <doc xml:whitespace="preserve">Queries the underlying data model implementation for a description
+of a given column. That description is returned in the form of
+a #GdaColumn structure, which contains all the information
+about the given column in the data model.
+
+WARNING: the returned #GdaColumn object belongs to the @model model and
+and should not be destroyed; any modification will affect the whole data model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the description of the column.</doc>
+          <type name="Column" c:type="GdaColumn*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dump" c:identifier="gda_data_model_dump">
+        <doc xml:whitespace="preserve">Dumps a textual representation of the @model to the @to_stream stream
+
+The following environment variables can affect the resulting output:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_ROW_NUMBERS: if set, the first column of the output will 
contain row numbers&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_ATTRIBUTES: if set, also dump the data model's columns' 
types and value's attributes&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_TITLE: if set, also dump the data model's 
title&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_NULL_AS_EMPTY: if set, replace the 'NULL' string with an empty 
string for NULL values &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_TRUNCATE: if set to a numeric value, truncates the output 
to the width specified by the value. If the value is -1 then the actual terminal size (if it can be 
determined) is used&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="to_stream" transfer-ownership="none">
+            <doc xml:whitespace="preserve">where to dump the data model</doc>
+            <type name="gpointer" c:type="FILE*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dump_as_string"
+              c:identifier="gda_data_model_dump_as_string">
+        <doc xml:whitespace="preserve">Dumps a textual representation of the @model into a new string. The 
main differences with gda_data_model_export_to_string() are that
+the formatting options are passed using environment variables, and that the data is dumped regardless of the 
user locale (e.g. dates
+are not formatted according to the locale).
+
+The following environment variables can affect the resulting output:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_ROW_NUMBERS: if set, the first column of the output will 
contain row numbers&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_TITLE: if set, also dump the data model's 
title&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_NULL_AS_EMPTY: if set, replace the 'NULL' string with an empty 
string for NULL values &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_TRUNCATE: if set to a numeric value, truncates the output 
to the width specified by the value. If the value is -1 then the actual terminal size (if it can be 
determined) is used&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="export_to_file"
+              c:identifier="gda_data_model_export_to_file"
+              throws="1">
+        <doc xml:whitespace="preserve">Exports data contained in @model to the @file file; the format is 
specified using the @format argument.
+
+Specifically, the parameters in the @options list can be:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;"SEPARATOR": a string value of which the first character is used as a 
separator in case of CSV export
+            &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"QUOTE": a string value of which the first character is used as a quote 
character in case of CSV export. The
+            default if not specified is the double quote character&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"FIELD_QUOTE": a boolean value which can be set to FALSE if no quote around 
the individual fields 
+            is requeted, in case of CSV export&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"NAMES_ON_FIRST_LINE": a boolean value which, if set to %TRUE and in case of a 
CSV or %GDA_DATA_MODEL_IO_TEXT_TABLE export, will add a first line with the name each exported field (note 
that "FIELDS_NAME" is also accepted as a synonym)&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"NAME": a string value used to name the exported data if the export format is 
XML or %GDA_DATA_MODEL_IO_TEXT_TABLE&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"OVERWRITE": a boolean value which tells if the file must be over-written if 
it already exists.&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"NULL_AS_EMPTY": a boolean value which, if set to %TRUE and in case of a CSV 
or %GDA_DATA_MODEL_IO_TEXT_TABLE export, will render and NULL value as the empty string (instead of the 
'NULL' string)&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"INVALID_AS_NULL": a boolean value which, if set to %TRUE, considers any 
invalid data (for example for the date related values) as NULL&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"COLUMN_SEPARATORS": a boolean value which, if set to %TRUE, adds a separators 
lines between each column, if the export format is %GDA_DATA_MODEL_IO_TEXT_TABLE
+            &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"SEPARATOR_LINE": a boolean value which, if set to %TRUE, adds an horizontal 
line between column titles and values, if the export format is %GDA_DATA_MODEL_IO_TEXT_TABLE
+            &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"ROW_NUMBERS": a boolean value which, if set to %TRUE, prepends a column with 
row numbers, if the export format is %GDA_DATA_MODEL_IO_TEXT_TABLE
+            &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;"MAX_WIDTH": an integer value which, if greater than 0, makes all the lines 
truncated to have at most that number of characters, if the export format is %GDA_DATA_MODEL_IO_TEXT_TABLE
+            &lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Warning: this function uses a #GdaDataModelIter iterator, and if @model does not offer a random access
+(check using gda_data_model_get_access_flags()), the iterator will be the same as normally used
+to access data in @model previously to calling this method, and this iterator will be moved (point to
+another row).
+
+Upon errors %FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the format in which to export data</doc>
+            <type name="DataModelIOFormat" c:type="GdaDataModelIOFormat"/>
+          </parameter>
+          <parameter name="file" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the filename to export to</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cols" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array containing which columns of @model will be exported, or 
%NULL for all columns</doc>
+            <array length="3" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="nb_cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns in @cols</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="rows" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array containing which rows of @model will be exported, or 
%NULL for all rows</doc>
+            <array length="5" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="nb_rows" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of rows in @rows</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">list of options for the export</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="export_to_string"
+              c:identifier="gda_data_model_export_to_string">
+        <doc xml:whitespace="preserve">Exports data contained in @model to a string; the format is specified 
using the @format argument, see the
+gda_data_model_export_to_file() documentation for more information about the @options argument (except for 
the
+"OVERWRITE" option).
+
+Warning: this function uses a #GdaDataModelIter iterator, and if @model does not offer a random access
+(check using gda_data_model_get_access_flags()), the iterator will be the same as normally used
+to access data in @model previously to calling this method, and this iterator will be moved (point to
+another row).
+
+See also gda_data_model_dump_as_string();</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, use g_free() when no longer needed</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the format in which to export data</doc>
+            <type name="DataModelIOFormat" c:type="GdaDataModelIOFormat"/>
+          </parameter>
+          <parameter name="cols" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array containing which columns of @model will be exported, or 
%NULL for all columns</doc>
+            <array length="2" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="nb_cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns in @cols</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="rows" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an array containing which rows of @model will be exported, or 
%NULL for all rows</doc>
+            <array length="4" zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="nb_rows" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of rows in @rows</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">list of options for the export</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="freeze" c:identifier="gda_data_model_freeze">
+        <doc xml:whitespace="preserve">Disables notifications of changes on the given data model. To
+re-enable notifications again, you should call the
+#gda_data_model_thaw function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_access_flags"
+              c:identifier="gda_data_model_get_access_flags">
+        <doc xml:whitespace="preserve">Get the attributes of @model such as how to access the data it 
contains if it's modifiable, etc.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an ORed value of #GdaDataModelAccessFlags flags</doc>
+          <type name="DataModelAccessFlags" c:type="GdaDataModelAccessFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_attributes_at"
+              c:identifier="gda_data_model_get_attributes_at">
+        <doc xml:whitespace="preserve">Get the attributes of the value stored at (row, col) in @model, which
+is an ORed value of #GdaValueAttribute flags. As a special case, if
+ row is -1, then the attributes returned correspond to a "would be" value
+if a row was added to @model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the attributes as an ORed value of #GdaValueAttribute</doc>
+          <type name="ValueAttribute" c:type="GdaValueAttribute"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid column number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid row number, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_index"
+              c:identifier="gda_data_model_get_column_index">
+        <doc xml:whitespace="preserve">Get the index of the first column named @name in @model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the column index, or -1 if no column named @name was found</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a column name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_name"
+              c:identifier="gda_data_model_get_column_name"
+              version="3.2">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name for the given column in a data model object.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_title"
+              c:identifier="gda_data_model_get_column_title">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the title for the given column in a data model object.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_exceptions"
+              c:identifier="gda_data_model_get_exceptions"
+              version="4.2.6">
+        <doc xml:whitespace="preserve">Get the global data model exception(s) that occurred when using 
@model.
+This is useful for example for the LDAP related
+data models where some rows may be missing because the LDAP search has reached a limit
+imposed by the LDAP server.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a %NULL terminated array of #GError, or %NULL.</doc>
+          <array c:type="GError**">
+            <type name="GLib.Error"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_columns" c:identifier="gda_data_model_get_n_columns">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns in the given data model, or -1 if 
unknown.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_rows" c:identifier="gda_data_model_get_n_rows">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of rows in the given data model, or -1 if the number of 
rows is not known</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_notify" c:identifier="gda_data_model_get_notify">
+        <doc xml:whitespace="preserve">Returns the status of notifications changes on the given data 
model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row_from_values"
+              c:identifier="gda_data_model_get_row_from_values"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Returns the first row where all the values in @values at the columns 
identified at
+ cols_index match. If the row can't be identified, then returns -1;
+
+NOTE: the @cols_index array MUST contain a column index for each value in @values</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the requested row number, of -1 if not found</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of #GValue values (no %NULL is allowed)</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type/>
+            </type>
+          </parameter>
+          <parameter name="cols_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #gint containing the column number to match each 
value of @values</doc>
+            <array zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_typed_value_at"
+              c:identifier="gda_data_model_get_typed_value_at"
+              throws="1">
+        <doc xml:whitespace="preserve">Upon errors %NULL will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
+
+This method is similar to gda_data_model_get_value_at(), except that it also allows one to specify the 
expected
+#GType of the value to get: if the data model returned a #GValue of a type different than the expected one, 
then
+this method returns %NULL and an error code.
+
+Note: the same limitations and usage instructions apply as for gda_data_model_get_value_at().
+
+Upon errors %NULL will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue containing the value stored in the given position, or 
%NULL on error (out-of-bound position, wrong data type, etc).</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="expected_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the expected data type of the returned value</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="nullok" transfer-ownership="none">
+            <doc xml:whitespace="preserve">if TRUE, then NULL values (value of type %GDA_TYPE_NULL) will not 
generate any error</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_at"
+              c:identifier="gda_data_model_get_value_at"
+              throws="1">
+        <doc xml:whitespace="preserve">Retrieves the data stored in the given position (identified by
+the @col and @row parameters) on a data model.
+
+Upon errors %NULL will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
+
+This is the main function for accessing data in a model which allows random access to its data.
+To access data in a data model using a cursor, use a #GdaDataModelIter object, obtained using
+gda_data_model_create_iter().
+
+Note1: the returned #GValue must not be modified directly (unexpected behaviours may
+occur if you do so).
+
+Note2: the returned value may become invalid as soon as any Libgda part is executed again,
+which means if you want to keep the value, a copy must be made, however it will remain valid
+as long as the only Libgda usage is calling gda_data_model_get_value_at() for different values
+of the same row.
+
+If you want to modify a value stored in a #GdaDataModel, use the gda_data_model_set_value_at() or 
+gda_data_model_set_values() methods.
+
+Upon errors %NULL will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue containing the value stored in the given position, or 
%NULL on error (out-of-bound position, etc).</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="import_from_file"
+              c:identifier="gda_data_model_import_from_file"
+              throws="1">
+        <doc xml:whitespace="preserve">Imports data contained in the @file file into @model; the format is 
detected.
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="file" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the filename to import from</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cols_trans"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a #GHashTable for columns translating, or %NULL, see 
gda_data_model_import_from_model()</doc>
+            <type name="GLib.HashTable" c:type="GHashTable*">
+              <type name="gint"/>
+              <type name="gint"/>
+            </type>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">list of options for the export</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="import_from_model"
+              c:identifier="gda_data_model_import_from_model"
+              throws="1">
+        <doc xml:whitespace="preserve">Copy the contents of the @from data model to the @to data model. The 
copy stops as soon as an error
+orrurs.
+
+The @cols_trans is a hash table for which keys are @to columns numbers and the values are
+the corresponding column numbers in the @from data model. To set the values of a column in @to to NULL,
+create an entry in the hash table with a negative value. For example:
+&lt;programlisting&gt;&lt;![CDATA[GHashTable *hash;
+gint *ptr;
+hash = g_hash_table_new_full (g_int_hash, g_int_equal, g_free, NULL);
+ptr = g_new (gint, 1);
+*ptr = 2;
+g_hash_table_insert (hash, ptr, GINT_TO_POINTER (3));
+gda_data_model_import_from_model (...);
+g_hash_table_free (hash);
+]]&gt;&lt;/programlisting&gt;
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="to" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the destination #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="from" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the source #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+          <parameter name="overwrite" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if @to is completely overwritten by @from's data, and FALSE 
if @from's data is appended to @to</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="cols_trans"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a #GHashTable for columns translating, or %NULL</doc>
+            <type name="GLib.HashTable" c:type="GHashTable*">
+              <type name="gint"/>
+              <type name="gint"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="import_from_string"
+              c:identifier="gda_data_model_import_from_string"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads the data from @string into @model.
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the string to import data from</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cols_trans"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a hash table containing which columns of @model will be imported, 
or %NULL for all columns, see gda_data_model_import_from_model()</doc>
+            <type name="GLib.HashTable" c:type="GHashTable*">
+              <type name="gint"/>
+              <type name="gint"/>
+            </type>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">list of options for the export</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_at_row"
+              c:identifier="gda_data_model_iter_at_row"
+              deprecated="use gda_data_model_iter_move_to_row() instead"
+              deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Moves @iter to the row number given by @row.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a row to point to with @iter</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_move_next_default"
+              c:identifier="gda_data_model_iter_move_next_default"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Method reserved to #GdaDataModelIter implementations, should not be 
called directly.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @iter was moved correctly.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter iterating in @model</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_move_prev_default"
+              c:identifier="gda_data_model_iter_move_prev_default"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Method reserved to #GdaDataModelIter implementations, should not be 
called directly.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @iter was moved correctly.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter iterating in @model</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_move_to_row_default"
+              c:identifier="gda_data_model_iter_move_to_row_default"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Method reserved to #GdaDataModelIter implementations, should not be 
called directly.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @iter was moved correctly.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter iterating in @model</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_next"
+              c:identifier="gda_data_model_iter_next"
+              deprecated="use gda_data_model_iter_move_next() instead"
+              deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Moves @iter to the next row in @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_prev"
+              c:identifier="gda_data_model_iter_prev"
+              deprecated="use gda_data_model_iter_move_prev() instead"
+              deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Moves @iter to the next row in @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iter_set_value"
+              c:identifier="gda_data_model_iter_set_value"
+              deprecated="use gda_data_model_iter_set_value_at() instead"
+              deprecated-version="5.2"
+              throws="1">
+        <doc xml:whitespace="preserve">Set @value to the given @column and row pointed by @iter in the given 
@model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of column to set value to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the to use to set on</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_row"
+              c:identifier="gda_data_model_remove_row"
+              throws="1">
+        <doc xml:whitespace="preserve">Removes a row from the data model.
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row number to be removed.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reset" c:identifier="gda_data_model_reset">
+        <doc xml:whitespace="preserve">Emits the 'reset' and 'changed' signal on @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="row_inserted" c:identifier="gda_data_model_row_inserted">
+        <doc xml:whitespace="preserve">Emits the 'row_inserted' and 'changed' signals on @model. 
+
+This method should only be used by #GdaDataModel implementations to 
+signal that a row has been inserted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="row_removed" c:identifier="gda_data_model_row_removed">
+        <doc xml:whitespace="preserve">Emits the 'row_removed' and 'changed' signal on @model.
+
+This method should only be used by #GdaDataModel implementations to 
+signal that a row has been removed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="row_updated" c:identifier="gda_data_model_row_updated">
+        <doc xml:whitespace="preserve">Emits the 'row_updated' and 'changed' signals on @model.
+
+This method should only be used by #GdaDataModel implementations to 
+signal that a row has been updated.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send_hint" c:identifier="gda_data_model_send_hint">
+        <doc xml:whitespace="preserve">Sends a hint to the data model. The hint may or may not be handled by 
the data
+model, depending on its implementation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="hint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a hint to send to the model</doc>
+            <type name="DataModelHint" c:type="GdaDataModelHint"/>
+          </parameter>
+          <parameter name="hint_value"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">an optional value to specify the hint, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_name"
+              c:identifier="gda_data_model_set_column_name"
+              version="3.2">
+        <doc xml:whitespace="preserve">Sets the @name of the given @col in @model, and if its title is not 
set, also sets the
+title to @name.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name for the given column.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_title"
+              c:identifier="gda_data_model_set_column_title">
+        <doc xml:whitespace="preserve">Sets the @title of the given @col in @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="title" transfer-ownership="none">
+            <doc xml:whitespace="preserve">title for the given column.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_notify"
+              c:identifier="gda_data_model_set_notify"
+              deprecated="use gda_data_model_freeze() and gda_data_model_thaw() instead"
+              deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Enable or disable notifications changes on the given data model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="do_notify_changes" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Set to TRUE if you require notifications.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_at"
+              c:identifier="gda_data_model_set_value_at"
+              throws="1">
+        <doc xml:whitespace="preserve">Modifies a value in @model, at (@col, @row).
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the value in the data model has been updated and no error 
occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue (not %NULL)</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_values"
+              c:identifier="gda_data_model_set_values"
+              introspectable="0"
+              throws="1">
+        <doc xml:whitespace="preserve">In a similar way to gda_data_model_set_value_at(), this method 
modifies a data model's contents
+by setting several values at once.
+
+If any value in @values is actually %NULL, then the value in the corresponding column is left
+unchanged.
+ 
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the value in the data model has been updated and no error 
occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="values" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a list of #GValue (or %NULL), one for at most the number of 
columns of @model</doc>
+            <type name="GLib.List" c:type="GList*">
+              <type/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="thaw" c:identifier="gda_data_model_thaw">
+        <doc xml:whitespace="preserve">Re-enables notifications of changes on the given data model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object.</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="access-changed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when @model's access flags have changed. Use
+gda_data_model_get_access_flags() to get the access flags.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="changed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when any value in @model has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="reset" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when @model's contents has been completely reset (the 
number and
+type of columns may also have changed)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="row-inserted" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when a row has been inserted in @model</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-removed" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when a row has been removed from @model</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-updated" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when a row has been modified in @model</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <bitfield name="DataModelAccessFlags" c:type="GdaDataModelAccessFlags">
+      <member name="random"
+              value="1"
+              c:identifier="GDA_DATA_MODEL_ACCESS_RANDOM">
+      </member>
+      <member name="cursor_forward"
+              value="2"
+              c:identifier="GDA_DATA_MODEL_ACCESS_CURSOR_FORWARD">
+      </member>
+      <member name="cursor_backward"
+              value="4"
+              c:identifier="GDA_DATA_MODEL_ACCESS_CURSOR_BACKWARD">
+      </member>
+      <member name="cursor"
+              value="6"
+              c:identifier="GDA_DATA_MODEL_ACCESS_CURSOR">
+      </member>
+      <member name="insert"
+              value="8"
+              c:identifier="GDA_DATA_MODEL_ACCESS_INSERT">
+      </member>
+      <member name="update"
+              value="16"
+              c:identifier="GDA_DATA_MODEL_ACCESS_UPDATE">
+      </member>
+      <member name="delete"
+              value="32"
+              c:identifier="GDA_DATA_MODEL_ACCESS_DELETE">
+      </member>
+      <member name="write"
+              value="56"
+              c:identifier="GDA_DATA_MODEL_ACCESS_WRITE">
+      </member>
+    </bitfield>
+    <class name="DataModelArray"
+           c:symbol-prefix="data_model_array"
+           c:type="GdaDataModelArray"
+           parent="GObject.Object"
+           glib:type-name="GdaDataModelArray"
+           glib:get-type="gda_data_model_array_get_type"
+           glib:type-struct="DataModelArrayClass">
+      <implements name="DataModel"/>
+      <function name="new" c:identifier="gda_data_model_array_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object without initializing the column
+types. Using gda_data_model_array_new_with_g_types() is usually better.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns for rows in this data model.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_with_g_types"
+                c:identifier="gda_data_model_array_new_with_g_types"
+                shadowed-by="new_with_g_types_v"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object with the column types as
+specified.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns for rows in this data model.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="arg1" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_with_g_types_v"
+                c:identifier="gda_data_model_array_new_with_g_types_v"
+                shadows="new_with_g_types"
+                version="4.2.6">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object with the column types as
+specified.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns for rows in this data model.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="types" transfer-ownership="none">
+            <doc xml:whitespace="preserve">array of types of the columns of the model to create as #GType, 
as many as indicated by @cols</doc>
+            <array zero-terminated="0" c:type="GType*">
+              <type name="GType" c:type="GType"/>
+            </array>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="clear" c:identifier="gda_data_model_array_clear">
+        <doc xml:whitespace="preserve">Frees all the rows in @model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the model to clear.</doc>
+            <type name="DataModelArray" c:type="GdaDataModelArray*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row"
+              c:identifier="gda_data_model_array_get_row"
+              throws="1">
+        <doc xml:whitespace="preserve">Get a pointer to a row in @model</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaRow, or %NULL if an error occurred</doc>
+          <type name="Row" c:type="GdaRow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelArray object</doc>
+            <type name="DataModelArray" c:type="GdaDataModelArray*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row number (starting from 0)</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_n_columns"
+              c:identifier="gda_data_model_array_set_n_columns">
+        <doc xml:whitespace="preserve">Sets the number of columns for rows inserted in this model. 
+ cols must be greated than or equal to 0.
+
+Also clears @model's contents.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GdaDataModelArray.</doc>
+            <type name="DataModelArray" c:type="GdaDataModelArray*"/>
+          </instance-parameter>
+          <parameter name="cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns for rows this data model should use.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="n-columns" writable="1" transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="read-only" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataModelArrayPrivate" c:type="GdaDataModelArrayPrivate*"/>
+      </field>
+    </class>
+    <record name="DataModelArrayClass"
+            c:type="GdaDataModelArrayClass"
+            glib:is-gtype-struct-for="DataModelArray">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DataModelArrayPrivate"
+            c:type="GdaDataModelArrayPrivate"
+            disguised="1">
+    </record>
+    <class name="DataModelDir"
+           c:symbol-prefix="data_model_dir"
+           c:type="GdaDataModelDir"
+           parent="GObject.Object"
+           glib:type-name="GdaDataModelDir"
+           glib:get-type="gda_data_model_dir_get_type"
+           glib:type-struct="DataModelDirClass">
+      <implements name="DataModel"/>
+      <function name="new" c:identifier="gda_data_model_dir_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object to list all the files starting 
from @basedir</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="basedir" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a directory</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="clean_errors"
+              c:identifier="gda_data_model_dir_clean_errors">
+        <doc xml:whitespace="preserve">Reset the list of errors which have occurred while using @model</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelDir object</doc>
+            <type name="DataModelDir" c:type="GdaDataModelDir*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_errors"
+              c:identifier="gda_data_model_dir_get_errors"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the list of errors which have occurred while using @model</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a read-only list of #GError pointers, or %NULL if no error has 
occurred</doc>
+          <type name="GLib.SList" c:type="const GSList*">
+            <type/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelDir object</doc>
+            <type name="DataModelDir" c:type="GdaDataModelDir*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="basedir"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataModelDirPrivate" c:type="GdaDataModelDirPrivate*"/>
+      </field>
+    </class>
+    <record name="DataModelDirClass"
+            c:type="GdaDataModelDirClass"
+            glib:is-gtype-struct-for="DataModelDir">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DataModelDirPrivate"
+            c:type="GdaDataModelDirPrivate"
+            disguised="1">
+    </record>
+    <record name="DataModelDsnList" c:type="GdaDataModelDsnList">
+      <field name="object" writable="1">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv" writable="1">
+        <type name="DataModelDsnListPrivate"
+              c:type="GdaDataModelDsnListPrivate*"/>
+      </field>
+    </record>
+    <record name="DataModelDsnListClass" c:type="GdaDataModelDsnListClass">
+      <field name="object_class" writable="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DataModelDsnListPrivate"
+            c:type="GdaDataModelDsnListPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="DataModelError"
+                 c:type="GdaDataModelError"
+                 glib:error-domain="gda_data_model_error">
+      <member name="row_out_of_range_error"
+              value="0"
+              c:identifier="GDA_DATA_MODEL_ROW_OUT_OF_RANGE_ERROR">
+      </member>
+      <member name="column_out_of_range_error"
+              value="1"
+              c:identifier="GDA_DATA_MODEL_COLUMN_OUT_OF_RANGE_ERROR">
+      </member>
+      <member name="values_list_error"
+              value="2"
+              c:identifier="GDA_DATA_MODEL_VALUES_LIST_ERROR">
+      </member>
+      <member name="value_type_error"
+              value="3"
+              c:identifier="GDA_DATA_MODEL_VALUE_TYPE_ERROR">
+      </member>
+      <member name="row_not_found_error"
+              value="4"
+              c:identifier="GDA_DATA_MODEL_ROW_NOT_FOUND_ERROR">
+      </member>
+      <member name="access_error"
+              value="5"
+              c:identifier="GDA_DATA_MODEL_ACCESS_ERROR">
+      </member>
+      <member name="feature_non_supported_error"
+              value="6"
+              c:identifier="GDA_DATA_MODEL_FEATURE_NON_SUPPORTED_ERROR">
+      </member>
+      <member name="file_exist_error"
+              value="7"
+              c:identifier="GDA_DATA_MODEL_FILE_EXIST_ERROR">
+      </member>
+      <member name="xml_format_error"
+              value="8"
+              c:identifier="GDA_DATA_MODEL_XML_FORMAT_ERROR">
+      </member>
+      <member name="truncated_error"
+              value="9"
+              c:identifier="GDA_DATA_MODEL_TRUNCATED_ERROR">
+      </member>
+      <member name="other_error"
+              value="10"
+              c:identifier="GDA_DATA_MODEL_OTHER_ERROR">
+      </member>
+    </enumeration>
+    <enumeration name="DataModelHint" c:type="GdaDataModelHint">
+      <member name="start_batch_update"
+              value="0"
+              c:identifier="GDA_DATA_MODEL_HINT_START_BATCH_UPDATE">
+      </member>
+      <member name="end_batch_update"
+              value="1"
+              c:identifier="GDA_DATA_MODEL_HINT_END_BATCH_UPDATE">
+      </member>
+      <member name="refresh"
+              value="2"
+              c:identifier="GDA_DATA_MODEL_HINT_REFRESH">
+      </member>
+    </enumeration>
+    <enumeration name="DataModelIOFormat" c:type="GdaDataModelIOFormat">
+      <doc xml:whitespace="preserve">Format to use when exporting a data model, see 
gda_data_model_export_to_string() and gda_data_model_export_to_file()</doc>
+      <member name="data_array_xml"
+              value="0"
+              c:identifier="GDA_DATA_MODEL_IO_DATA_ARRAY_XML">
+        <doc xml:whitespace="preserve">data is exported as an XML structure</doc>
+      </member>
+      <member name="text_separated"
+              value="1"
+              c:identifier="GDA_DATA_MODEL_IO_TEXT_SEPARATED">
+        <doc xml:whitespace="preserve">data is exported as CSV</doc>
+      </member>
+      <member name="text_table"
+              value="2"
+              c:identifier="GDA_DATA_MODEL_IO_TEXT_TABLE">
+        <doc xml:whitespace="preserve">data is exported as a human readable table</doc>
+      </member>
+    </enumeration>
+    <record name="DataModelIface"
+            c:type="GdaDataModelIface"
+            glib:is-gtype-struct-for="DataModel">
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="i_get_n_rows">
+        <callback name="i_get_n_rows">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of rows in the given data model, or -1 if the number 
of rows is not known</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_get_n_columns">
+        <callback name="i_get_n_columns">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns in the given data model, or -1 if 
unknown.</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_describe_column">
+        <callback name="i_describe_column">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the description of the column.</doc>
+            <type name="Column" c:type="GdaColumn*"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="col" transfer-ownership="none">
+              <doc xml:whitespace="preserve">column number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_get_access_flags">
+        <callback name="i_get_access_flags">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">an ORed value of #GdaDataModelAccessFlags flags</doc>
+            <type name="DataModelAccessFlags"
+                  c:type="GdaDataModelAccessFlags"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_get_value_at">
+        <callback name="i_get_value_at" throws="1">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue containing the value stored in the given position, or 
%NULL on error (out-of-bound position, etc).</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="col" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a valid column number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a valid row number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_get_attributes_at">
+        <callback name="i_get_attributes_at">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the attributes as an ORed value of #GdaValueAttribute</doc>
+            <type name="ValueAttribute" c:type="GdaValueAttribute"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="col" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a valid column number</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a valid row number, or -1</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_create_iter">
+        <callback name="i_create_iter">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object, or %NULL if an error occurred</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_iter_at_row">
+        <callback name="i_iter_at_row">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+              <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a row to point to with @iter</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_iter_next">
+        <callback name="i_iter_next">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+              <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_iter_prev">
+        <callback name="i_iter_prev">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+              <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_set_value_at">
+        <callback name="i_set_value_at" throws="1">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if the value in the data model has been updated and no error 
occurred</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="col" transfer-ownership="none">
+              <doc xml:whitespace="preserve">column number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">row number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GValue (not %NULL)</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_iter_set_value">
+        <callback name="i_iter_set_value" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GdaDataModelIter object.</doc>
+              <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+            </parameter>
+            <parameter name="col" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the number of column to set value to</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the to use to set on</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_set_values" introspectable="0">
+        <callback name="i_set_values" introspectable="0" throws="1">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the value in the data model has been updated and no 
error occurred</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">row number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="values" transfer-ownership="none" allow-none="1">
+              <doc xml:whitespace="preserve">a list of #GValue (or %NULL), one for at most the number of 
columns of @model</doc>
+              <type name="GLib.List" c:type="GList*">
+                <type/>
+              </type>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_append_values" introspectable="0">
+        <callback name="i_append_values" introspectable="0" throws="1">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of the added row, or -1 if an error occurred</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="values" transfer-ownership="none" allow-none="1">
+              <doc xml:whitespace="preserve">#GList of #GValue* representing the row to add.  The length 
must match model's column count.  These #GValue are value-copied (the user is still responsible for freeing 
them).</doc>
+              <type name="GLib.List" c:type="const GList*">
+                <type/>
+              </type>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_append_row">
+        <callback name="i_append_row" throws="1">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of the added row, or -1 if an error occurred</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_remove_row">
+        <callback name="i_remove_row" throws="1">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the row number to be removed.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_find_row" introspectable="0">
+        <callback name="i_find_row" introspectable="0">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested row number, of -1 if not found</doc>
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="values" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a list of #GValue values (no %NULL is allowed)</doc>
+              <type name="GLib.SList" c:type="GSList*">
+                <type/>
+              </type>
+            </parameter>
+            <parameter name="cols_index" transfer-ownership="none">
+              <doc xml:whitespace="preserve">an array of #gint containing the column number to match each 
value of @values</doc>
+              <array zero-terminated="0" c:type="gint*">
+                <type name="gint" c:type="gint"/>
+              </array>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_set_notify">
+        <callback name="i_set_notify">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="do_notify_changes" transfer-ownership="none">
+              <doc xml:whitespace="preserve">Set to TRUE if you require notifications.</doc>
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_get_notify">
+        <callback name="i_get_notify">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_send_hint">
+        <callback name="i_send_hint">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="hint" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a hint to send to the model</doc>
+              <type name="DataModelHint" c:type="GdaDataModelHint"/>
+            </parameter>
+            <parameter name="hint_value"
+                       transfer-ownership="none"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">an optional value to specify the hint, or %NULL</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_inserted">
+        <callback name="row_inserted">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">row number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_updated">
+        <callback name="row_updated">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">row number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_removed">
+        <callback name="row_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">row number.</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="changed">
+        <callback name="changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reset">
+        <callback name="reset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="access_changed">
+        <callback name="access_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_get_exceptions">
+        <callback name="i_get_exceptions">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to a %NULL terminated array of #GError, or %NULL.</doc>
+            <array c:type="GError**">
+              <type name="GLib.Error"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataModel" c:type="GdaDataModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="DataModelImport"
+           c:symbol-prefix="data_model_import"
+           c:type="GdaDataModelImport"
+           parent="GObject.Object"
+           glib:type-name="GdaDataModelImport"
+           glib:get-type="gda_data_model_import_get_type"
+           glib:type-struct="DataModelImportClass">
+      <implements name="DataModel"/>
+      <function name="new_file" c:identifier="gda_data_model_import_new_file">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object which contains the data stored 
within the @filename file.
+
+The options are the following ones:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;For the CSV format:
+     &lt;itemizedlist&gt;
+        &lt;listitem&gt;&lt;para&gt;ENCODING (string): specifies the encoding of the data in the 
file&lt;/para&gt;&lt;/listitem&gt;
+        &lt;listitem&gt;&lt;para&gt;SEPARATOR (string): specifies the CSV separator (comma as 
default)&lt;/para&gt;&lt;/listitem&gt;
+        &lt;listitem&gt;&lt;para&gt;QUOTE (string): specifies the character used as quote (double quote as 
default)&lt;/para&gt;&lt;/listitem&gt;
+        &lt;listitem&gt;&lt;para&gt;NAMES_ON_FIRST_LINE (boolean): consider that the first line of the file 
contains columns' titles (note that the TITLE_AS_FIRST_LINE option is also accepted as a 
synonym)&lt;/para&gt;&lt;/listitem&gt;
+        &lt;listitem&gt;&lt;para&gt;G_TYPE_&amp;lt;column number&amp;gt; (GType): specifies the type of 
value expected in column &amp;lt;column number&amp;gt;&lt;/para&gt;&lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+  &lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;Other formats: no option&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Note: after the creation, please use gda_data_model_import_get_errors() to check any error.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the file to import data from</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="random_access" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if random access will be required</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">importing options</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_mem" c:identifier="gda_data_model_import_new_mem">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel object which contains the data stored in 
the @data string.
+
+Important note: the @data string is not copied for memory efficiency reasons and should not
+therefore be altered in any way as long as the returned data model exists.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string containing the data to import</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="random_access" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if random access will be required</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">importing options, see gda_data_model_import_new_file() for more 
information</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_xml_node"
+                c:identifier="gda_data_model_import_new_xml_node">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel and loads the data in @node. The 
resulting data model
+can be accessed in a random way.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an XML node corresponding to a &amp;lt;data-array&amp;gt; 
tag</doc>
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="clean_errors"
+              c:identifier="gda_data_model_import_clean_errors">
+        <doc xml:whitespace="preserve">Clears the history of errors @model has to report</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelImport object</doc>
+            <type name="DataModelImport" c:type="GdaDataModelImport*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_errors"
+              c:identifier="gda_data_model_import_get_errors"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the list of errors which @model has to report. The returned list 
is a list of
+#GError structures, and must not be modified</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the list of errors (which must not be modified), or %NULL</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelImport object</doc>
+            <type name="DataModelImport" c:type="GdaDataModelImport*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="data-string"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Data to import, as a string.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="filename"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Name of the file to import.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="options"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Data model options.</doc>
+        <type name="Set"/>
+      </property>
+      <property name="random-access"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Defines if the data model will be accessed randomly or through a 
cursor. If set to %FALSE,
+access will have to be done using a cursor.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="strict"
+                version="4.2.1"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Defines the behaviour in case the imported data contains recoverable 
errors (usually too
+many or too few data per row). If set to %TRUE, an error will be reported and the import
+will stop, and if set to %FALSE, then the error will be reported but the import will not stop.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="xml-node"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Data to import, as a pointer to an XML node (a #xmlNodePtr).</doc>
+        <type name="gpointer" c:type="gpointer"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataModelImportPrivate"
+              c:type="GdaDataModelImportPrivate*"/>
+      </field>
+    </class>
+    <record name="DataModelImportClass"
+            c:type="GdaDataModelImportClass"
+            glib:is-gtype-struct-for="DataModelImport">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DataModelImportPrivate"
+            c:type="GdaDataModelImportPrivate"
+            disguised="1">
+    </record>
+    <class name="DataModelIter"
+           c:symbol-prefix="data_model_iter"
+           c:type="GdaDataModelIter"
+           parent="Set"
+           glib:type-name="GdaDataModelIter"
+           glib:get-type="gda_data_model_iter_get_type"
+           glib:type-struct="DataModelIterClass">
+      <function name="error_quark"
+                c:identifier="gda_data_model_iter_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="end_of_data">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_column_for_param"
+              c:identifier="gda_data_model_iter_get_column_for_param"
+              deprecated="not very useful"
+              deprecated-version="5.2">
+        <doc xml:whitespace="preserve">Get the column number in the #GdaDataModel for which @iter is an 
iterator as
+represented by the @param parameter</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the column number, or @param is not valid</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object, listed in @iter</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_holder_for_field"
+              c:identifier="gda_data_model_iter_get_holder_for_field">
+        <doc xml:whitespace="preserve">Fetch a pointer to the #GdaHolder object which is synchronized with 
data at 
+column @col</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaHolder, or %NULL if an error occurred</doc>
+          <type name="Holder" c:type="GdaHolder*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested column</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row" c:identifier="gda_data_model_iter_get_row">
+        <doc xml:whitespace="preserve">Get the row which @iter represents in the data model</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the row number, or -1 if @iter is invalid</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_value_at"
+              c:identifier="gda_data_model_iter_get_value_at">
+        <doc xml:whitespace="preserve">Get the value stored at the column @col in @iter. The returned value 
must not be modified.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GValue, or %NULL if the value could not be fetched</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested column</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_at_e"
+              c:identifier="gda_data_model_iter_get_value_at_e"
+              version="4.2.10"
+              throws="1">
+        <doc xml:whitespace="preserve">Get the value stored at the column @col in @iter. The returned value 
must not be modified.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GValue, or %NULL if the value could not be fetched</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested column</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_for_field"
+              c:identifier="gda_data_model_iter_get_value_for_field">
+        <doc xml:whitespace="preserve">Get the value stored at the column @field_name in @iter</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GValue, or %NULL</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="field_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested column name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate_contents"
+              c:identifier="gda_data_model_iter_invalidate_contents">
+        <doc xml:whitespace="preserve">Declare all the parameters in @iter invalid, without modifying the
+#GdaDataModel @iter is for or changing the row it represents. This method
+is for internal usage. Note that for gda_data_model_iter_is_valid() to return %FALSE,
+it is also necessary to set the "current-row" property to -1.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_valid" c:identifier="gda_data_model_iter_is_valid">
+        <doc xml:whitespace="preserve">Tells if @iter is a valid iterator (if it actually corresponds to a 
valid row in the model)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if @iter is valid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="move_next" c:identifier="gda_data_model_iter_move_next">
+        <doc xml:whitespace="preserve">Moves @iter one row further than where it already is 
+(synchronizes the values of the parameters in @iter with the values at the new row).
+
+If the iterator was on the data model's last row, then it can't be moved forward
+anymore, and the returned value is %FALSE; note also that the "current-row" property
+is set to -1 (which means that gda_data_model_iter_is_valid() would return %FALSE)
+
+This function can return %FALSE if it was not allowed to be moved (as it emits the
+"validate-set" signal before being moved).
+
+When this function returns %TRUE, then @iter has actually been moved to the next row,
+but some values may not have been read correctly in the row, in which case the
+correcsponding #GdaHolder will be left invalid.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the iterator is now at the next row</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="move_prev" c:identifier="gda_data_model_iter_move_prev">
+        <doc xml:whitespace="preserve">Moves @iter one row before where it already is (synchronizes the 
values of the parameters in @iter 
+with the values at the new row).
+
+If the iterator was on the data model's first row, then it can't be moved backwards
+anymore, and the returned value is %FALSE; note also that the "current-row" property
+is set to -1 (which means that gda_data_model_iter_is_valid() would return %FALSE).
+
+This function can return %FALSE if it was not allowed to be moved (as it emits the
+"validate-set" signal before being moved).
+
+When this function returns %TRUE, then @iter has actually been moved to the next row,
+but some values may not have been read correctly in the row, in which case the
+correcsponding #GdaHolder will be left invalid.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the iterator is now at the previous row</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="move_to_row"
+              c:identifier="gda_data_model_iter_move_to_row">
+        <doc xml:whitespace="preserve">Synchronizes the values of the parameters in @iter with the values at 
the @row row.
+
+If @row is not a valid row, then the returned value is %FALSE, and the "current-row"
+property is set to -1 (which means that gda_data_model_iter_is_valid() would return %FALSE),
+with the exception that if @row is -1, then the returned value is %TRUE.
+
+This function can return %FALSE if it was not allowed to be moved (as it emits the
+"validate-set" signal before being moved).
+
+When this function returns %TRUE, then @iter has actually been moved to the next row,
+but some values may not have been read correctly in the row, in which case the
+correcsponding #GdaHolder will be left invalid.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row to set @iter to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_at"
+              c:identifier="gda_data_model_iter_set_value_at"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets a value in @iter, at the column specified by @col</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModelIter object</doc>
+            <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue (not %NULL)</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="current-row" writable="1" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="data-model"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <property name="forced-model" writable="1" transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <property name="update-model" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="object">
+        <type name="Set" c:type="GdaSet"/>
+      </field>
+      <field name="priv">
+        <type name="DataModelIterPrivate" c:type="GdaDataModelIterPrivate*"/>
+      </field>
+      <glib:signal name="end-of-data" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when @iter has reached the end of available data (which 
means the previous
+row it was on was the last one).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="row-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when the row @iter is currently pointing has 
changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new iter's row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="DataModelIterClass"
+            c:type="GdaDataModelIterClass"
+            glib:is-gtype-struct-for="DataModelIter">
+      <field name="parent_class">
+        <type name="SetClass" c:type="GdaSetClass"/>
+      </field>
+      <field name="row_changed">
+        <callback name="row_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="end_of_data">
+        <callback name="end_of_data">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="DataModelIter" c:type="GdaDataModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="DataModelIterError" c:type="GdaDataModelIterError">
+      <member name="data_model_iter_column_out_of_range_error"
+              value="0"
+              c:identifier="GDA_DATA_MODEL_ITER_COLUMN_OUT_OF_RANGE_ERROR">
+      </member>
+    </enumeration>
+    <record name="DataModelIterPrivate"
+            c:type="GdaDataModelIterPrivate"
+            disguised="1">
+    </record>
+    <class name="DataPivot"
+           c:symbol-prefix="data_pivot"
+           c:type="GdaDataPivot"
+           parent="GObject.Object"
+           glib:type-name="GdaDataPivot"
+           glib:get-type="gda_data_pivot_get_type"
+           glib:type-struct="DataPivotClass">
+      <implements name="DataModel"/>
+      <function name="error_quark" c:identifier="gda_data_pivot_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <function name="new" c:identifier="gda_data_pivot_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModel which will contain analysed data from 
@model.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the newly created #GdaDataModel.</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="model" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaDataModel to analyse data from, or %NULL</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="add_data"
+              c:identifier="gda_data_pivot_add_data"
+              version="5.0"
+              throws="1">
+        <doc xml:whitespace="preserve">Specifies that @field has to be included in the analysis.
+ field is a field specification with the following accepted syntaxes:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;a column name in the source data model (see &lt;link 
linkend="gda-data-model-get-column-index"&gt;gda_data_model_get_column_index()&lt;/link&gt;); 
or&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;an SQL expression involving a column name in the source data model, for 
examples:
+  &lt;programlisting&gt;
+price
+firstname || ' ' || lastname 
+nb BETWEEN 5 AND 10&lt;/programlisting&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+It is also possible to specify several fields to be added, while separating them by a comma (in effect
+still forming a valid SQL syntax).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pivot" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataPivot object</doc>
+            <type name="DataPivot" c:type="GdaDataPivot*"/>
+          </instance-parameter>
+          <parameter name="aggregate_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of aggregate operation to perform</doc>
+            <type name="DataPivotAggregate" c:type="GdaDataPivotAggregate"/>
+          </parameter>
+          <parameter name="field" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the field description, see below</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="alias" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the field alias, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_field"
+              c:identifier="gda_data_pivot_add_field"
+              version="5.0"
+              throws="1">
+        <doc xml:whitespace="preserve">Specifies that @field has to be included in the analysis.
+ field is a field specification with the following accepted syntaxes:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;a column name in the source data model (see &lt;link 
linkend="gda-data-model-get-column-index"&gt;gda_data_model_get_column_index()&lt;/link&gt;); 
or&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;an SQL expression involving a column name in the source data model, for 
example:
+  &lt;programlisting&gt;
+price
+firstname || ' ' || lastname 
+nb BETWEEN 5 AND 10&lt;/programlisting&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+It is also possible to specify several fields to be added, while separating them by a comma (in effect
+still forming a valid SQL syntax).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pivot" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataPivot object</doc>
+            <type name="DataPivot" c:type="GdaDataPivot*"/>
+          </instance-parameter>
+          <parameter name="field_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of field to add</doc>
+            <type name="DataPivotFieldType" c:type="GdaDataPivotFieldType"/>
+          </parameter>
+          <parameter name="field" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the field description, see below</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="alias" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the field alias, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="populate"
+              c:identifier="gda_data_pivot_populate"
+              version="5.0"
+              throws="1">
+        <doc xml:whitespace="preserve">Acutally populates @pivot by analysing the data from the provided 
data model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pivot" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataPivot object</doc>
+            <type name="DataPivot" c:type="GdaDataPivot*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="model" writable="1" transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataPivotPrivate" c:type="GdaDataPivotPrivate*"/>
+      </field>
+    </class>
+    <enumeration name="DataPivotAggregate" c:type="GdaDataPivotAggregate">
+      <doc xml:whitespace="preserve">Possible operations for the data fields.</doc>
+      <member name="avg" value="0" c:identifier="GDA_DATA_PIVOT_AVG">
+      </member>
+      <member name="count" value="1" c:identifier="GDA_DATA_PIVOT_COUNT">
+      </member>
+      <member name="max" value="2" c:identifier="GDA_DATA_PIVOT_MAX">
+      </member>
+      <member name="min" value="3" c:identifier="GDA_DATA_PIVOT_MIN">
+      </member>
+      <member name="sum" value="4" c:identifier="GDA_DATA_PIVOT_SUM">
+      </member>
+    </enumeration>
+    <record name="DataPivotClass"
+            c:type="GdaDataPivotClass"
+            glib:is-gtype-struct-for="DataPivot">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="DataPivotError" c:type="GdaDataPivotError">
+      <doc xml:whitespace="preserve">Possible #GdaDataPivot related errors.</doc>
+      <member name="internal_error"
+              value="0"
+              c:identifier="GDA_DATA_PIVOT_INTERNAL_ERROR">
+      </member>
+      <member name="source_model_error"
+              value="1"
+              c:identifier="GDA_DATA_PIVOT_SOURCE_MODEL_ERROR">
+      </member>
+      <member name="field_format_error"
+              value="2"
+              c:identifier="GDA_DATA_PIVOT_FIELD_FORMAT_ERROR">
+      </member>
+      <member name="usage_error"
+              value="3"
+              c:identifier="GDA_DATA_PIVOT_USAGE_ERROR">
+      </member>
+      <member name="overflow_error"
+              value="4"
+              c:identifier="GDA_DATA_PIVOT_OVERFLOW_ERROR">
+      </member>
+    </enumeration>
+    <enumeration name="DataPivotFieldType" c:type="GdaDataPivotFieldType">
+      <doc xml:whitespace="preserve">Define types of field to be used when defining a #GdaDataPivot 
analysis.</doc>
+      <member name="row" value="0" c:identifier="GDA_DATA_PIVOT_FIELD_ROW">
+      </member>
+      <member name="column"
+              value="1"
+              c:identifier="GDA_DATA_PIVOT_FIELD_COLUMN">
+      </member>
+    </enumeration>
+    <record name="DataPivotPrivate" c:type="GdaDataPivotPrivate" disguised="1">
+    </record>
+    <class name="DataProxy"
+           c:symbol-prefix="data_proxy"
+           c:type="GdaDataProxy"
+           parent="GObject.Object"
+           glib:type-name="GdaDataProxy"
+           glib:get-type="gda_data_proxy_get_type"
+           glib:type-struct="DataProxyClass">
+      <implements name="DataModel"/>
+      <constructor name="new" c:identifier="gda_data_proxy_new">
+        <doc xml:whitespace="preserve">Creates a new proxy for @model. For bindings use 
@gda_data_proxy_new_with_data_model.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataProxy object</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Data model to be proxied</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_data_model"
+                   c:identifier="gda_data_proxy_new_with_data_model"
+                   version="5.2.0">
+        <doc xml:whitespace="preserve">Creates a new proxy for @model. This is the preferred method to 
create 
+#GdaDataProxy objects by bindings.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataProxy object</doc>
+          <type name="DataProxy" c:type="GdaDataProxy*"/>
+        </return-value>
+        <parameters>
+          <parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Data model to be proxied</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="gda_data_proxy_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="filter_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_changes_applied">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="proxied_row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="row_delete_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="to_be_deleted" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="sample_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="sample_start" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="sample_end" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="sample_size_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="sample_size" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="validate_row_changes">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Error" c:type="GError*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="proxied_row" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="alter_value_attributes"
+              c:identifier="gda_data_proxy_alter_value_attributes">
+        <doc xml:whitespace="preserve">Alters the attributes of the value stored at (proxy_row, col) in 
@proxy. the @alter_flags
+can only contain the GDA_VALUE_ATTR_IS_NULL, GDA_VALUE_ATTR_IS_DEFAULT and GDA_VALUE_ATTR_IS_UNCHANGED
+flags (other flags are ignored).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid column number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="alter_flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags to alter the attributes</doc>
+            <type name="ValueAttribute" c:type="GdaValueAttribute"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="apply_all_changes"
+              c:identifier="gda_data_proxy_apply_all_changes"
+              throws="1">
+        <doc xml:whitespace="preserve">Apply all the changes stored in the proxy to the proxied data model. 
The changes are done row
+after row, and if an error
+occurs, then it is possible that not all the changes to all the rows have been applied.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="apply_row_changes"
+              c:identifier="gda_data_proxy_apply_row_changes"
+              throws="1">
+        <doc xml:whitespace="preserve">Commits the modified data in the proxy back into the 
#GdaDataModel.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row number to commit</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="cancel_all_changes"
+              c:identifier="gda_data_proxy_cancel_all_changes">
+        <doc xml:whitespace="preserve">Cancel all the changes stored in the proxy (the @proxy will be reset 
to its state
+as it was just after creation). Note that if there are some cached changes (i.e. not applied
+to the current proxied data model), then these cached changes are not cleared (set the "cache-changes"
+property to %FALSE for this).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="cancel_row_changes"
+              c:identifier="gda_data_proxy_cancel_row_changes">
+        <doc xml:whitespace="preserve">Resets data at the corresponding row and column. If @proxy_row 
corresponds to a new row, then
+that new row is deleted from @proxy.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row to cancel changes</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column to cancel changes, or less than 0 to cancel any change 
on the @row row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete" c:identifier="gda_data_proxy_delete">
+        <doc xml:whitespace="preserve">Marks the row @proxy_row to be deleted</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_filter_expr"
+              c:identifier="gda_data_proxy_get_filter_expr">
+        <doc xml:whitespace="preserve">Get the current filter expression used by @proxy.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the current filter expression or %NULL if no filter has been 
set</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_filtered_n_rows"
+              c:identifier="gda_data_proxy_get_filtered_n_rows">
+        <doc xml:whitespace="preserve">Get the total number of filtered rows in @proxy if a filter has been 
applied. As new rows
+(rows added to the proxy and not yet added to the proxied data model) and rows to remove
+(rows marked for removal but not yet removed from the proxied data model) are also filtered,
+the returned number also contains references to new rows and rows to be removed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of filtered rows in @proxy, or -1 if no filter has been 
applied</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_modified_rows"
+              c:identifier="gda_data_proxy_get_n_modified_rows">
+        <doc xml:whitespace="preserve">Get the number of rows which have been modified in the proxy (the sum 
of rows existing in
+the proxied data model which have been modified, and new rows).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of modified rows</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_new_rows"
+              c:identifier="gda_data_proxy_get_n_new_rows">
+        <doc xml:whitespace="preserve">Get the number of rows which have been added to @proxy and which are 
not part of
+the proxied data model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of new rows</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_proxied_model"
+              c:identifier="gda_data_proxy_get_proxied_model">
+        <doc xml:whitespace="preserve">Fetch the #GdaDataModel which @proxy does proxy</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the proxied data model</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_proxied_model_n_cols"
+              c:identifier="gda_data_proxy_get_proxied_model_n_cols">
+        <doc xml:whitespace="preserve">Get the number of columns in the proxied data model</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns, or -1 if an error occurred</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_proxied_model_n_rows"
+              c:identifier="gda_data_proxy_get_proxied_model_n_rows">
+        <doc xml:whitespace="preserve">Get the number of rows in the proxied data model</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of rows, or -1 if the number of rows is not known</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_proxied_model_row"
+              c:identifier="gda_data_proxy_get_proxied_model_row">
+        <doc xml:whitespace="preserve">Get the @proxy's proxied model row corresponding to @proxy_row</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the proxied model's row, or -1 if @proxy row which only exists 
@proxy</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sample_end"
+              c:identifier="gda_data_proxy_get_sample_end">
+        <doc xml:whitespace="preserve">Get the number of the last row to be available in @proxy (in 
reference to the proxied data model)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of the last proxied model's row.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sample_size"
+              c:identifier="gda_data_proxy_get_sample_size">
+        <doc xml:whitespace="preserve">Get the size of each chunk of data displayed at a time.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the chunk (or sample) size, or 0 if chunking is disabled.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sample_start"
+              c:identifier="gda_data_proxy_get_sample_start">
+        <doc xml:whitespace="preserve">Get the number of the first row to be available in @proxy (in 
reference to the proxied data model)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of the first proxied model's row.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_value_attributes"
+              c:identifier="gda_data_proxy_get_value_attributes">
+        <doc xml:whitespace="preserve">Get the attributes of the value stored at (proxy_row, col) in @proxy, 
which
+is an ORed value of #GdaValueAttribute flags</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaValueAttribute with the value's attributes at given 
position</doc>
+          <type name="ValueAttribute" c:type="GdaValueAttribute"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a proxy row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid proxy column</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values" c:identifier="gda_data_proxy_get_values">
+        <doc xml:whitespace="preserve">Retrieve a whole list of values from the @proxy data model. This 
function
+calls gda_data_proxy_get_value()
+for each column index specified in @cols_index, and generates a #GSList on the way.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a new list of values (the list must be freed, not the values), or 
%NULL if an error occurred</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="GObject.Value"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a proxy row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cols_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">array containing the columns for which the values are 
requested</doc>
+            <array zero-terminated="0" c:type="gint*">
+              <type name="gint" c:type="gint"/>
+            </array>
+          </parameter>
+          <parameter name="n_cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">size of @cols_index</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="has_changed" c:identifier="gda_data_proxy_has_changed">
+        <doc xml:whitespace="preserve">Tells if @proxy contains any modifications not applied to the proxied 
data model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if there are some modifications in @proxy</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_read_only" c:identifier="gda_data_proxy_is_read_only">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the proxied data model is itself read-only</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="row_has_changed"
+              c:identifier="gda_data_proxy_row_has_changed">
+        <doc xml:whitespace="preserve">Tells if the row number @proxy_row has changed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the row has changed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="row_is_deleted"
+              c:identifier="gda_data_proxy_row_is_deleted">
+        <doc xml:whitespace="preserve">Tells if the row number @proxy_row is marked to be deleted.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the row is marked to be deleted</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="row_is_inserted"
+              c:identifier="gda_data_proxy_row_is_inserted">
+        <doc xml:whitespace="preserve">Tells if the row number @proxy_row is a row which has been inserted 
in @proxy
+(and is thus not in the proxied data model).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the row is an inserted row</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_filter_expr"
+              c:identifier="gda_data_proxy_set_filter_expr"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets a filter among the rows presented by @proxy. The filter is 
defined by a filter expression
+which can be any SQL valid expression using @proxy's columns. For instance if @proxy has the "id" and
+"name" columns, then a filter can be "length(name) &lt; 5" to filter only the rows where the length of the
+name is strictly inferior to 5, or "id &gt;= 1000 and id &lt; 2000 order by name limit 50" to filter only 
the rows where the id
+is between 1000 and 2000, ordered by name and limited to 50 rows.
+
+Note about column names: real column names can be used (double quoted if necessary), but columns can also be 
named
+"_&amp;lt;column number&amp;gt;" with column numbers starting at 1.
+
+Note that any previous filter expression is replaced with the new @filter_expr if no error occurs
+(if an error occurs, then any previous filter is left unchanged).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="filter_expr"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">an SQL based expression which will filter the contents of @proxy, 
or %NULL to remove any previous filter</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ordering_column"
+              c:identifier="gda_data_proxy_set_ordering_column"
+              throws="1">
+        <doc xml:whitespace="preserve">Orders by the @col column</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column number to order from</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sample_size"
+              c:identifier="gda_data_proxy_set_sample_size">
+        <doc xml:whitespace="preserve">Sets the size of each chunk of data to display: the maximum number of 
rows which
+can be "displayed" at a time (the maximum number of rows which @proxy pretends to have).
+The default value is arbitrary 300 as it is big enough to
+be able to display quite a lot of data, but small enough to avoid too much data
+displayed at the same time.
+
+Note: the rows which have been added but not yet committed will always be displayed
+regardless of the current chunk of data, and the modified rows which are not visible
+when the displayed chunk of data changes are still held as modified rows.
+
+To remove the chunking of the data to display, simply pass @sample_size the %0 value.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="sample_size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the requested size of a chunk, or 0</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sample_start"
+              c:identifier="gda_data_proxy_set_sample_start">
+        <doc xml:whitespace="preserve">Sets the number of the first row to be available in @proxy (in 
reference to the proxied data model)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="sample_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of the first row to be displayed</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="undelete" c:identifier="gda_data_proxy_undelete">
+        <doc xml:whitespace="preserve">Remove the "to be deleted" mark at the row @proxy_row, if it 
existed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataProxy object</doc>
+            <type name="DataProxy" c:type="GdaDataProxy*"/>
+          </instance-parameter>
+          <parameter name="proxy_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A proxy row number</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="cache-changes"
+                version="5.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Defines how changes kept in the data proxy are handled when the 
proxied data model
+is changed (using the "model" property). The default is to silently discard all the
+changes, but if this property is set to %TRUE, then the changes are cached.
+
+If set to %TRUE, each cached change will be re-applied to a newly set proxied data model if
+the change's number of columns match the proxied data model's number of columns and based on:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;the contents of the proxied data model's modified row for updates and 
deletes&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;the inserts are always kept&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="defer-sync" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="model"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <property name="prepend-null-entry"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="sample-size"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataProxyPrivate" c:type="GdaDataProxyPrivate*"/>
+      </field>
+      <glib:signal name="filter-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when @proxy's filter has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="row-changes-applied" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when @proxy has committed a row change to the proxied 
data model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the proxy's row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="proxied_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the proxied data model's row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-delete-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a row has been marked to be deleted, or has 
been unmarked to be deleted</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the concerned @proxy's row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="to_be_deleted" transfer-ownership="none">
+            <doc xml:whitespace="preserve">tells if the @row is marked to be deleted</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="sample-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever @proxy's sample size has been changed. 
@sample_start and @sample_end are
+in reference to the proxied data model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the first row of the sample</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="sample_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the last row of the sample</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="sample-size-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever @proxy's sample size has been changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample_size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new sample size</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="validate-row-changes" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when @proxy is about to commit a row change to the 
proxied data model. If any
+callback returns a non %NULL value, then the change commit fails with the returned #GError</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GError if validation failed, or %NULL</doc>
+          <type name="GLib.Error"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the proxy's row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="proxied_row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the proxied data model's row</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="DataProxyClass"
+            c:type="GdaDataProxyClass"
+            glib:is-gtype-struct-for="DataProxy">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="row_delete_changed">
+        <callback name="row_delete_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="DataProxy" c:type="GdaDataProxy*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="to_be_deleted" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="sample_size_changed">
+        <callback name="sample_size_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="DataProxy" c:type="GdaDataProxy*"/>
+            </parameter>
+            <parameter name="sample_size" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="sample_changed">
+        <callback name="sample_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="DataProxy" c:type="GdaDataProxy*"/>
+            </parameter>
+            <parameter name="sample_start" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="sample_end" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="validate_row_changes">
+        <callback name="validate_row_changes">
+          <return-value transfer-ownership="full">
+            <type name="GLib.Error" c:type="GError*"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="DataProxy" c:type="GdaDataProxy*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="proxied_row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_changes_applied">
+        <callback name="row_changes_applied">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="DataProxy" c:type="GdaDataProxy*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="proxied_row" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="filter_changed">
+        <callback name="filter_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="DataProxy" c:type="GdaDataProxy*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="DataProxyError" c:type="GdaDataProxyError">
+      <member name="commit_error"
+              value="0"
+              c:identifier="GDA_DATA_PROXY_COMMIT_ERROR">
+      </member>
+      <member name="commit_cancelled"
+              value="1"
+              c:identifier="GDA_DATA_PROXY_COMMIT_CANCELLED">
+      </member>
+      <member name="read_only_value"
+              value="2"
+              c:identifier="GDA_DATA_PROXY_READ_ONLY_VALUE">
+      </member>
+      <member name="read_only_row"
+              value="3"
+              c:identifier="GDA_DATA_PROXY_READ_ONLY_ROW">
+      </member>
+      <member name="filter_error"
+              value="4"
+              c:identifier="GDA_DATA_PROXY_FILTER_ERROR">
+      </member>
+    </enumeration>
+    <record name="DataProxyPrivate" c:type="GdaDataProxyPrivate" disguised="1">
+    </record>
+    <class name="DataSelect"
+           c:symbol-prefix="data_select"
+           c:type="GdaDataSelect"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="GdaDataSelect"
+           glib:get-type="gda_data_select_get_type"
+           glib:type-struct="DataSelectClass">
+      <implements name="DataModel"/>
+      <function name="error_quark" c:identifier="gda_data_select_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="fetch_at" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="prow" transfer-ownership="none">
+            <type name="Row" c:type="GdaRow**"/>
+          </parameter>
+          <parameter name="rownum" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="fetch_nb_rows">
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="fetch_next" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="prow" transfer-ownership="none">
+            <type name="Row" c:type="GdaRow**"/>
+          </parameter>
+          <parameter name="rownum" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="fetch_prev" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="prow" transfer-ownership="none">
+            <type name="Row" c:type="GdaRow**"/>
+          </parameter>
+          <parameter name="rownum" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="fetch_random" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="prow" transfer-ownership="none">
+            <type name="Row" c:type="GdaRow**"/>
+          </parameter>
+          <parameter name="rownum" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="store_all" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="compute_columns_attributes"
+              c:identifier="gda_data_select_compute_columns_attributes"
+              throws="1">
+        <doc xml:whitespace="preserve">Computes correct attributes for each of @model's columns, which 
includes the "NOT NULL" attribute, the
+default value, the precision and scale for numeric values.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="compute_modification_statements"
+              c:identifier="gda_data_select_compute_modification_statements"
+              throws="1">
+        <doc xml:whitespace="preserve">Makes @model try to compute INSERT, UPDATE and DELETE statements to 
be used when modifying @model's contents.
+Note: any modification statement set using gda_data_select_set_modification_statement() will first be unset
+
+This function is similar to calling gda_data_select_compute_modification_statements_ext() with
+ cond_type set to %GDA_DATA_SELECT_COND_PK</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred. If %FALSE is returned, then some 
modification statement may still have been computed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="compute_modification_statements_ext"
+              c:identifier="gda_data_select_compute_modification_statements_ext"
+              version="4.2.9"
+              throws="1">
+        <doc xml:whitespace="preserve">Makes @model try to compute INSERT, UPDATE and DELETE statements to 
be used when modifying @model's contents.
+Note: any modification statement set using gda_data_select_set_modification_statement() will first be 
unset</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred. If %FALSE is returned, then some 
modification statement may still have been computed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="cond_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of condition for the modifications where one row only 
should be identified</doc>
+            <type name="DataSelectConditionType"
+                  c:type="GdaDataSelectConditionType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="compute_row_selection_condition"
+              c:identifier="gda_data_select_compute_row_selection_condition"
+              throws="1">
+        <doc xml:whitespace="preserve">Offers the same features as 
gda_data_select_set_row_selection_condition() but the expression
+is computed from the meta data associated to the connection being used when @model was created.
+
+NOTE1: make sure the meta data associated to the connection is up to date before using this
+method, see gda_connection_update_meta_store().
+
+NOTE2: if the SELECT statement from which @model has been created uses more than one table, or
+if the table used does not have any primary key, then this method will fail</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect object</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_connection"
+              c:identifier="gda_data_select_get_connection">
+        <doc xml:whitespace="preserve">Get a pointer to the #GdaConnection object which was used when @model 
was created
+(and which may be used internally by @model).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the #GdaConnection, or %NULL</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="prepare_for_offline"
+              c:identifier="gda_data_select_prepare_for_offline"
+              version="5.2.0"
+              throws="1">
+        <doc xml:whitespace="preserve">Use this method to make sure all the data contained in the data model 
are stored on the client
+side (and that no subsquent call to the server will be necessary to access that data), at the cost of
+a higher memory consumption.
+
+This method is useful in the following situations:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;You need to disconnect from the server and continue to use the data in the 
data model&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;You need to make sure the data in the data model can be used even though the 
connection to the server may be used for other purposes (for example executing other 
queries)&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Note that this method will fail if:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;the data model contains any blobs (because blobs reading requires acces to the 
server);
+    binary values are Ok, though.&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;the data model has been modified since it was 
created&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect object</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="rerun"
+              c:identifier="gda_data_select_rerun"
+              version="4.2"
+              throws="1">
+        <doc xml:whitespace="preserve">Requests that @model be re-run to have an updated result. If an error 
occurs,
+then @model will not be changed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_modification_statement"
+              c:identifier="gda_data_select_set_modification_statement"
+              throws="1">
+        <doc xml:whitespace="preserve">Informs @model that it should allow modifications to the data in some 
columns and some rows
+using @mod_stmt to propagate those modifications into the database.
+
+If @mod_stmt is:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;an UPDATE statement, then all the rows in @model will be 
writable&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;a DELETE statement, then it will be possible to delete rows in 
@model&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;in INSERT statement, then it will be possible to add some rows to 
@model&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;any other statement, then this method will return an 
error&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+This method can be called several times to specify different types of modification statements. 
+
+Each modification statement will be executed when one or more values are modified in the data model;
+each statement should then include variables which will be set to either the old value or the
+new value of a column at the specified modified row (but can also contain other variables). Each variable
+named as "+&amp;lt;number&amp;gt;" will be mapped to the new value of the number'th column (starting at 0), 
and
+each variable named as "-&amp;lt;number&amp;gt;" will be mapped to the old value of the number'th column.
+
+Examples of the SQL equivalent of each statement are (for example if "mytable" has the "id" field as
+primary key, and if that field is auto incremented and if the data model is the result of
+executing "&lt;![CDATA[SELECT * from mytable]]&gt;").
+
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;"&lt;![CDATA[INSERT INTO mytable (name) VALUES (##+1::string)]]&gt;": the 
column ID can not be set
+  for new rows&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;"&lt;![CDATA[DELETE FROM mytable WHERE 
id=##-0::int]]&gt;"&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;"&lt;![CDATA[UPDATE mytable SET name=##+1::string WHERE id=##-0::int]]&gt;": 
the column ID cannot be
+  modified&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Also see the gda_data_select_set_row_selection_condition_sql() for more information about the WHERE
+part of the UPDATE and DELETE statement types.
+
+If @mod_stmt is an UPDATE or DELETE statement then it should have a WHERE part which identifies
+a unique row in @model (please note that this property can't be checked but may result
+in @model behaving in an unpredictable way).
+
+NOTE1: However, if the gda_data_select_set_row_selection_condition()
+or gda_data_select_set_row_selection_condition_sql() have been successfully be called before, the WHERE
+part of @mod_stmt &lt;emphasis&gt;WILL&lt;/emphasis&gt; be modified to use the row selection condition 
specified through one of
+these methods (please not that it is then possible to avoid specifying a WHERE part in @mod_stmt then).
+
+NOTE2: if gda_data_select_set_row_selection_condition()
+or gda_data_select_set_row_selection_condition_sql() have not yet been successfully be called before, then
+the WHERE part of @mod_stmt will be used as if one of these functions had been called.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="mod_stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement (INSERT, UPDATE or DELETE)</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_modification_statement_sql"
+              c:identifier="gda_data_select_set_modification_statement_sql"
+              throws="1">
+        <doc xml:whitespace="preserve">Offers the same feature as 
gda_data_select_set_modification_statement() but using an SQL statement.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="sql" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an SQL text</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_selection_condition"
+              c:identifier="gda_data_select_set_row_selection_condition"
+              introspectable="0"
+              throws="1">
+        <doc xml:whitespace="preserve">Offers the same features as 
gda_data_select_set_row_selection_condition_sql() but using a #GdaSqlExpr
+structure instead of an SQL syntax.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="expr" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaSqlExpr expression</doc>
+            <type name="SqlExpr" c:type="GdaSqlExpr*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_selection_condition_sql"
+              c:identifier="gda_data_select_set_row_selection_condition_sql"
+              throws="1">
+        <doc xml:whitespace="preserve">Specifies the SQL condition corresponding to the WHERE part of a 
SELECT statement which would
+return only 1 row (the expression of the primary key).
+
+For example for a table created as &lt;![CDATA["CREATE TABLE mytable (part1 int NOT NULL, part2 string NOT 
NULL,
+name string, PRIMARY KEY (part1, part2))"]]&gt;, and if @pmodel corresponds to the execution of the
+&lt;![CDATA["SELECT name, part1, part2 FROM mytable"]]&gt;, then the sensible value for @sql_where would be
+&lt;![CDATA["part1 = ##-1::int AND part2 = ##-2::string"]]&gt; because the values of the 'part1' field are 
located
+in @pmodel's column number 1 and the values of the 'part2' field are located
+in @pmodel's column number 2 and the primary key is composed of (part1, part2).
+
+For more information about the syntax of the parameters (named &lt;![CDATA["##-1::int"]]&gt; for example), 
see the
+&lt;link linkend="GdaSqlParser.description"&gt;GdaSqlParser&lt;/link&gt; documentation, and
+gda_data_select_set_modification_statement().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataSelect data model</doc>
+            <type name="DataSelect" c:type="GdaDataSelect*"/>
+          </instance-parameter>
+          <parameter name="sql_where" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an SQL condition (without the WHERE keyword)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="auto-reset" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="connection"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Connection"/>
+      </property>
+      <property name="delete-stmt" writable="1" transfer-ownership="none">
+        <type name="Statement"/>
+      </property>
+      <property name="exec-params"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Set"/>
+      </property>
+      <property name="execution-delay"
+                version="4.2.9"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This property stores the execution delay which has been necessary to 
obtain the data</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="insert-stmt" writable="1" transfer-ownership="none">
+        <type name="Statement"/>
+      </property>
+      <property name="model-usage"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="prepared-stmt" writable="1" transfer-ownership="none">
+        <type name="PStmt"/>
+      </property>
+      <property name="select-stmt" transfer-ownership="none">
+        <type name="Statement"/>
+      </property>
+      <property name="store-all-rows" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="update-stmt" writable="1" transfer-ownership="none">
+        <type name="Statement"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DataSelectPrivate" c:type="GdaDataSelectPrivate*"/>
+      </field>
+      <field name="prep_stmt">
+        <type name="PStmt" c:type="GdaPStmt*"/>
+      </field>
+      <field name="nb_stored_rows">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="advertized_nrows">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </class>
+    <record name="DataSelectClass"
+            c:type="GdaDataSelectClass"
+            glib:is-gtype-struct-for="DataSelect">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="fetch_nb_rows">
+        <callback name="fetch_nb_rows">
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataSelect" c:type="GdaDataSelect*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fetch_random">
+        <callback name="fetch_random" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataSelect" c:type="GdaDataSelect*"/>
+            </parameter>
+            <parameter name="prow" transfer-ownership="none">
+              <type name="Row" c:type="GdaRow**"/>
+            </parameter>
+            <parameter name="rownum" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="store_all">
+        <callback name="store_all" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataSelect" c:type="GdaDataSelect*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fetch_next">
+        <callback name="fetch_next" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataSelect" c:type="GdaDataSelect*"/>
+            </parameter>
+            <parameter name="prow" transfer-ownership="none">
+              <type name="Row" c:type="GdaRow**"/>
+            </parameter>
+            <parameter name="rownum" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fetch_prev">
+        <callback name="fetch_prev" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataSelect" c:type="GdaDataSelect*"/>
+            </parameter>
+            <parameter name="prow" transfer-ownership="none">
+              <type name="Row" c:type="GdaRow**"/>
+            </parameter>
+            <parameter name="rownum" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fetch_at">
+        <callback name="fetch_at" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="DataSelect" c:type="GdaDataSelect*"/>
+            </parameter>
+            <parameter name="prow" transfer-ownership="none">
+              <type name="Row" c:type="GdaRow**"/>
+            </parameter>
+            <parameter name="rownum" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="DataSelectConditionType"
+                 c:type="GdaDataSelectConditionType">
+      <doc xml:whitespace="preserve">Defines what criteria 
gda_data_select_compute_modification_statements_ext() uses
+to uniquely identify a single row in a table when creating modification statements.</doc>
+      <member name="pk" value="0" c:identifier="GDA_DATA_SELECT_COND_PK">
+        <doc xml:whitespace="preserve">only primary key fields are used</doc>
+      </member>
+      <member name="all_columns"
+              value="1"
+              c:identifier="GDA_DATA_SELECT_COND_ALL_COLUMNS">
+        <doc xml:whitespace="preserve">all the columns of the tables are used</doc>
+      </member>
+    </enumeration>
+    <enumeration name="DataSelectError" c:type="GdaDataSelectError">
+      <member name="modification_statement_error"
+              value="0"
+              c:identifier="GDA_DATA_SELECT_MODIFICATION_STATEMENT_ERROR">
+      </member>
+      <member name="missing_modification_statement_error"
+              value="1"
+              c:identifier="GDA_DATA_SELECT_MISSING_MODIFICATION_STATEMENT_ERROR">
+      </member>
+      <member name="connection_error"
+              value="2"
+              c:identifier="GDA_DATA_SELECT_CONNECTION_ERROR">
+      </member>
+      <member name="access_error"
+              value="3"
+              c:identifier="GDA_DATA_SELECT_ACCESS_ERROR">
+      </member>
+      <member name="sql_error"
+              value="4"
+              c:identifier="GDA_DATA_SELECT_SQL_ERROR">
+      </member>
+      <member name="safety_locked_error"
+              value="5"
+              c:identifier="GDA_DATA_SELECT_SAFETY_LOCKED_ERROR">
+      </member>
+    </enumeration>
+    <record name="DataSelectPrivate"
+            c:type="GdaDataSelectPrivate"
+            disguised="1">
+    </record>
+    <glib:boxed glib:name="Default"
+                c:symbol-prefix="default"
+                glib:type-name="GdaDefault"
+                glib:get-type="gda_default_get_type">
+      <function name="escape_string" c:identifier="gda_default_escape_string">
+        <doc xml:whitespace="preserve">Escapes @string to make it understandable by a DBMS. The escape 
method is very common and replaces any
+occurrence of "'" with "''" and "\" with "\\"</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">string to escape</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="unescape_string"
+                c:identifier="gda_default_unescape_string">
+        <doc xml:whitespace="preserve">Do the reverse of gda_default_escape_string(): transforms any "''" 
into "'", any
+"\\" into "\" and any "\'" into "'".</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new unescaped string, or %NULL in an error was found in 
@string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">string to unescape</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </glib:boxed>
+    <record name="Diff" c:type="GdaDiff">
+      <field name="type" writable="1">
+        <type name="DiffType" c:type="GdaDiffType"/>
+      </field>
+      <field name="old_row" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="new_row" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="values" writable="1">
+        <type name="GLib.HashTable" c:type="GHashTable*">
+          <type name="gpointer" c:type="gpointer"/>
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
+      </field>
+    </record>
+    <enumeration name="DiffType" c:type="GdaDiffType">
+      <member name="add_row" value="0" c:identifier="GDA_DIFF_ADD_ROW">
+      </member>
+      <member name="remove_row" value="1" c:identifier="GDA_DIFF_REMOVE_ROW">
+      </member>
+      <member name="modify_row" value="2" c:identifier="GDA_DIFF_MODIFY_ROW">
+      </member>
+    </enumeration>
+    <record name="DsnInfo"
+            c:type="GdaDsnInfo"
+            glib:type-name="GdaDsnInfo"
+            glib:get-type="gda_dsn_info_get_type"
+            c:symbol-prefix="dsn_info">
+      <doc xml:whitespace="preserve">This structure defines the properties of a named data source 
(DSN).</doc>
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="provider" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="cnc_string" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="auth_string" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="is_system" writable="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <constructor name="new" c:identifier="gda_dsn_info_new" version="5.2">
+        <doc xml:whitespace="preserve">Creates a new #GdaDsnInfo struct.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDsnInfo struct.</doc>
+          <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+        </return-value>
+      </constructor>
+      <method name="copy" c:identifier="gda_dsn_info_copy" version="5.2">
+        <doc xml:whitespace="preserve">Copy constructor.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDsnInfo</doc>
+          <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDsnInfo to copy from</doc>
+            <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="gda_dsn_info_free" version="5.2">
+        <doc xml:whitespace="preserve">Frees any resources taken by @dsn struct. If @dsn is %NULL, then 
nothing happens.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dsn"
+                              transfer-ownership="none"
+                              allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaDsnInfo struct to free</doc>
+            <type name="DsnInfo" c:type="GdaDsnInfo*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <constant name="EXTRA_AUTO_INCREMENT"
+              value="AUTO_INCREMENT"
+              c:type="GDA_EXTRA_AUTO_INCREMENT">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <record name="GeometricPoint"
+            c:type="GdaGeometricPoint"
+            glib:type-name="GdaGeometricPoint"
+            glib:get-type="gda_geometricpoint_get_type"
+            c:symbol-prefix="geometricpoint">
+      <field name="x" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <function name="copy" c:identifier="gda_geometricpoint_copy">
+        <return-value transfer-ownership="full">
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="boxed" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="free" c:identifier="gda_geometricpoint_free">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="boxed" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <class name="HandlerBin"
+           c:symbol-prefix="handler_bin"
+           c:type="GdaHandlerBin"
+           parent="GObject.Object"
+           glib:type-name="GdaHandlerBin"
+           glib:get-type="gda_handler_bin_get_type"
+           glib:type-struct="HandlerBinClass">
+      <implements name="DataHandler"/>
+      <function name="new" c:identifier="gda_handler_bin_new">
+        <doc xml:whitespace="preserve">Creates a data handler for binary values</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HandlerBinPriv" c:type="GdaHandlerBinPriv*"/>
+      </field>
+    </class>
+    <record name="HandlerBinClass"
+            c:type="GdaHandlerBinClass"
+            glib:is-gtype-struct-for="HandlerBin">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="HandlerBinPriv" c:type="GdaHandlerBinPriv" disguised="1">
+    </record>
+    <class name="HandlerBoolean"
+           c:symbol-prefix="handler_boolean"
+           c:type="GdaHandlerBoolean"
+           parent="GObject.Object"
+           glib:type-name="GdaHandlerBoolean"
+           glib:get-type="gda_handler_boolean_get_type"
+           glib:type-struct="HandlerBooleanClass">
+      <implements name="DataHandler"/>
+      <function name="new" c:identifier="gda_handler_boolean_new">
+        <doc xml:whitespace="preserve">Creates a data handler for booleans</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HandlerBooleanPriv" c:type="GdaHandlerBooleanPriv*"/>
+      </field>
+    </class>
+    <record name="HandlerBooleanClass"
+            c:type="GdaHandlerBooleanClass"
+            glib:is-gtype-struct-for="HandlerBoolean">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="HandlerBooleanPriv"
+            c:type="GdaHandlerBooleanPriv"
+            disguised="1">
+    </record>
+    <class name="HandlerNumerical"
+           c:symbol-prefix="handler_numerical"
+           c:type="GdaHandlerNumerical"
+           parent="GObject.Object"
+           glib:type-name="GdaHandlerNumerical"
+           glib:get-type="gda_handler_numerical_get_type"
+           glib:type-struct="HandlerNumericalClass">
+      <implements name="DataHandler"/>
+      <function name="new" c:identifier="gda_handler_numerical_new">
+        <doc xml:whitespace="preserve">Creates a data handler for numerical values</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HandlerNumericalPriv" c:type="GdaHandlerNumericalPriv*"/>
+      </field>
+    </class>
+    <record name="HandlerNumericalClass"
+            c:type="GdaHandlerNumericalClass"
+            glib:is-gtype-struct-for="HandlerNumerical">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="HandlerNumericalPriv"
+            c:type="GdaHandlerNumericalPriv"
+            disguised="1">
+    </record>
+    <class name="HandlerString"
+           c:symbol-prefix="handler_string"
+           c:type="GdaHandlerString"
+           parent="GObject.Object"
+           glib:type-name="GdaHandlerString"
+           glib:get-type="gda_handler_string_get_type"
+           glib:type-struct="HandlerStringClass">
+      <implements name="DataHandler"/>
+      <function name="new" c:identifier="gda_handler_string_new">
+        <doc xml:whitespace="preserve">Creates a data handler for strings</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <function name="new_with_provider"
+                c:identifier="gda_handler_string_new_with_provider">
+        <doc xml:whitespace="preserve">Creates a data handler for strings, which will use some specific 
methods implemented
+by the @prov object (possibly also @cnc).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+        <parameters>
+          <parameter name="prov" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerProvider object</doc>
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection object, or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HandlerStringPriv" c:type="GdaHandlerStringPriv*"/>
+      </field>
+    </class>
+    <record name="HandlerStringClass"
+            c:type="GdaHandlerStringClass"
+            glib:is-gtype-struct-for="HandlerString">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="HandlerStringPriv"
+            c:type="GdaHandlerStringPriv"
+            disguised="1">
+    </record>
+    <class name="HandlerTime"
+           c:symbol-prefix="handler_time"
+           c:type="GdaHandlerTime"
+           parent="GObject.Object"
+           glib:type-name="GdaHandlerTime"
+           glib:get-type="gda_handler_time_get_type"
+           glib:type-struct="HandlerTimeClass">
+      <implements name="DataHandler"/>
+      <function name="new" c:identifier="gda_handler_time_new">
+        <doc xml:whitespace="preserve">Creates a data handler for time values</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <function name="new_no_locale"
+                c:identifier="gda_handler_time_new_no_locale">
+        <doc xml:whitespace="preserve">Creates a data handler for time values, but using the default C locale
+instead of the current user locale.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <method name="get_format" c:identifier="gda_handler_time_get_format">
+        <doc xml:whitespace="preserve">Get a string representing the locale-dependent way to enter a 
date/time/datetime, using
+a syntax suitable for the #GdauiFormatEntry widget</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHandlerTime object</doc>
+            <type name="HandlerTime" c:type="GdaHandlerTime*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of data being handled</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_no_locale_str_from_value"
+              c:identifier="gda_handler_time_get_no_locale_str_from_value">
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string representing @value without taking the current locale 
into account</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHandlerTime object</doc>
+            <type name="HandlerTime" c:type="GdaHandlerTime*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue value</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sql_spec" c:identifier="gda_handler_time_set_sql_spec">
+        <doc xml:whitespace="preserve">Specifies the SQL output style of the @dh data handler. The general 
format is "FIRSTsSECsTHIRD"
+where FIRST, SEC and THIRD are specified by @first, @sec and @trird and 's' is the separator,
+specified by @separator.
+
+The default implementation is @first=G_DATE_MONTH, @sec=G_DATE_DAY and @third=G_DATE_YEAR
+(the year is rendered on 4 digits) and the separator is '-'</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHandlerTime object</doc>
+            <type name="HandlerTime" c:type="GdaHandlerTime*"/>
+          </instance-parameter>
+          <parameter name="first" transfer-ownership="none">
+            <doc xml:whitespace="preserve">what comes first in the date representation</doc>
+            <type name="GLib.DateDMY" c:type="GDateDMY"/>
+          </parameter>
+          <parameter name="sec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">what comes second in the date representation</doc>
+            <type name="GLib.DateDMY" c:type="GDateDMY"/>
+          </parameter>
+          <parameter name="third" transfer-ownership="none">
+            <doc xml:whitespace="preserve">what comes third in the date representation</doc>
+            <type name="GLib.DateDMY" c:type="GDateDMY"/>
+          </parameter>
+          <parameter name="separator" transfer-ownership="none">
+            <doc xml:whitespace="preserve">separator character used between year, month and day</doc>
+            <type name="gchar" c:type="gchar"/>
+          </parameter>
+          <parameter name="twodigits_years" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if year part of date must be rendered on 2 digits</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_str_spec"
+              c:identifier="gda_handler_time_set_str_spec"
+              version="4.2.1">
+        <doc xml:whitespace="preserve">Specifies the human readable output style of the @dh data handler.
+The general format is "FIRSTsSECsTHIRD"
+where FIRST, SEC and THIRD are specified by @first, @sec and @trird and 's' is the separator,
+specified by @separator.
+
+The default implementation depends on the current locale, except if @dh was created
+using gda_handler_time_new_no_locale().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHandlerTime object</doc>
+            <type name="HandlerTime" c:type="GdaHandlerTime*"/>
+          </instance-parameter>
+          <parameter name="first" transfer-ownership="none">
+            <doc xml:whitespace="preserve">what comes first in the date representation</doc>
+            <type name="GLib.DateDMY" c:type="GDateDMY"/>
+          </parameter>
+          <parameter name="sec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">what comes second in the date representation</doc>
+            <type name="GLib.DateDMY" c:type="GDateDMY"/>
+          </parameter>
+          <parameter name="third" transfer-ownership="none">
+            <doc xml:whitespace="preserve">what comes third in the date representation</doc>
+            <type name="GLib.DateDMY" c:type="GDateDMY"/>
+          </parameter>
+          <parameter name="separator" transfer-ownership="none">
+            <doc xml:whitespace="preserve">separator character used between year, month and day</doc>
+            <type name="gchar" c:type="gchar"/>
+          </parameter>
+          <parameter name="twodigits_years" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if year part of date must be rendered on 2 digits</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HandlerTimePriv" c:type="GdaHandlerTimePriv*"/>
+      </field>
+    </class>
+    <record name="HandlerTimeClass"
+            c:type="GdaHandlerTimeClass"
+            glib:is-gtype-struct-for="HandlerTime">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="HandlerTimePriv" c:type="GdaHandlerTimePriv" disguised="1">
+    </record>
+    <class name="HandlerType"
+           c:symbol-prefix="handler_type"
+           c:type="GdaHandlerType"
+           parent="GObject.Object"
+           glib:type-name="GdaHandlerType"
+           glib:get-type="gda_handler_type_get_type"
+           glib:type-struct="HandlerTypeClass">
+      <implements name="DataHandler"/>
+      <function name="new" c:identifier="gda_handler_type_new">
+        <doc xml:whitespace="preserve">Creates a data handler for Gda types</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the new object</doc>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+      </function>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HandlerTypePriv" c:type="GdaHandlerTypePriv*"/>
+      </field>
+    </class>
+    <record name="HandlerTypeClass"
+            c:type="GdaHandlerTypeClass"
+            glib:is-gtype-struct-for="HandlerType">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="HandlerTypePriv" c:type="GdaHandlerTypePriv" disguised="1">
+    </record>
+    <class name="Holder"
+           c:symbol-prefix="holder"
+           c:type="GdaHolder"
+           parent="GObject.Object"
+           glib:type-name="GdaHolder"
+           glib:get-type="gda_holder_get_type"
+           glib:type-struct="HolderClass">
+      <implements name="Lockable"/>
+      <constructor name="new" c:identifier="gda_holder_new">
+        <doc xml:whitespace="preserve">Creates a new holder of type @type</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaHolder object</doc>
+          <type name="Holder" c:type="GdaHolder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GType requested</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_inline"
+                   c:identifier="gda_holder_new_inline"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new #GdaHolder object with an ID set to @id, of type @type, 
+and containing the value passed as the last argument.
+
+Note that this function is a utility function and that only a limited set of types are supported. Trying
+to use an unsupported type will result in a warning, and the returned value holder holding a safe default
+value.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaHolder object</doc>
+          <type name="Holder" c:type="GdaHolder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid GLib type</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="id" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the id of the holder to create, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="gda_holder_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <virtual-method name="att_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="att_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="att_value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="source_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="validate_change">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Error" c:type="GError*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="new_value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="copy" c:identifier="gda_holder_copy">
+        <doc xml:whitespace="preserve">Copy constructor.
+
+Note1: if @orig is set with a static value (see gda_holder_take_static_value()) 
+its copy will have a fresh new allocated GValue, so that user should free it when done.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaHolder object</doc>
+          <type name="Holder" c:type="GdaHolder*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="orig" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object to copy</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="force_invalid" c:identifier="gda_holder_force_invalid">
+        <doc xml:whitespace="preserve">Forces a holder to be invalid; to set it valid again, a new value 
must be assigned
+to it using gda_holder_set_value() or gda_holder_take_value().
+
+ holder's value is set to %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="force_invalid_e"
+              c:identifier="gda_holder_force_invalid_e"
+              version="4.2.10">
+        <doc xml:whitespace="preserve">Forces a holder to be invalid; to set it valid again, a new value 
must be assigned
+to it using gda_holder_set_value() or gda_holder_take_value().
+
+ holder's value is set to %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="error" transfer-ownership="full" allow-none="1">
+            <doc xml:whitespace="preserve">a #GError explaining why @holder is declared invalid, or 
%NULL</doc>
+            <type name="GLib.Error" c:type="GError*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_alphanum_id" c:identifier="gda_holder_get_alphanum_id">
+        <doc xml:whitespace="preserve">Get an "encoded" version of @holder's name. The "encoding" consists 
in replacing non
+alphanumeric character with the string "__gdaXX" where XX is the hex. representation
+of the non alphanumeric char.
+
+This method is just a wrapper around the gda_text_to_alphanum() function.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute" c:identifier="gda_holder_get_attribute">
+        <doc xml:whitespace="preserve">Get the value associated to a named attribute.
+
+Attributes can have any name, but Libgda proposes some default names, see &lt;link 
linkend="libgda-40-Attributes-manager.synopsis"&gt;this section&lt;/link&gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a read-only #GValue, or %NULL if not attribute named @attribute has 
been set for @holder</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="attribute" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute name as a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bind" c:identifier="gda_holder_get_bind">
+        <doc xml:whitespace="preserve">Get the holder which makes @holder change its value when the holder's 
value is changed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaHolder or %NULL</doc>
+          <type name="Holder" c:type="GdaHolder*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_default_value"
+              c:identifier="gda_holder_get_default_value">
+        <doc xml:whitespace="preserve">Get the default value held into the holder. WARNING: the default 
value does not need to be of 
+the same type as the one required by @holder.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the default value</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_g_type" c:identifier="gda_holder_get_g_type">
+        <doc xml:whitespace="preserve">Get @holder's type</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the data type</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_id" c:identifier="gda_holder_get_id">
+        <doc xml:whitespace="preserve">Get the ID of @holder. The ID can be set using @holder's "id" 
property</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the ID (don't modify the string).</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_not_null" c:identifier="gda_holder_get_not_null">
+        <doc xml:whitespace="preserve">Get wether the holder can be NULL or not</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the holder cannot be NULL</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_source_model"
+              c:identifier="gda_holder_get_source_model">
+        <doc xml:whitespace="preserve">If gda_holder_set_source_model() has been used to provide a hint that 
@holder's value
+should be among the values contained in a column of a data model, then this method
+returns which data model, and if @col is not %NULL, then it is set to the restricting column
+as well.
+
+Otherwise, this method returns %NULL, and if @col is not %NULL, then it is set to 0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a #GdaDataModel, or %NULL</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store the column in the model sourcing the holder, or 
%NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value" c:identifier="gda_holder_get_value">
+        <doc xml:whitespace="preserve">Get the value held into the holder. If @holder is set to use its 
default value
+and that default value is not of the same type as @holder, then %NULL is returned.
+
+If @holder is set to NULL, then the returned value is a #GDA_TYPE_NULL GValue.
+
+If @holder is invalid, then the returned value is %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value, or %NULL</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_value_str" c:identifier="gda_holder_get_value_str">
+        <doc xml:whitespace="preserve">Same functionality as gda_holder_get_value() except that it returns 
the value as a string
+(the conversion is done using @dh if not %NULL, or the default data handler otherwise).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the value, or %NULL</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="dh" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaDataHandler to use, or %NULL</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_valid" c:identifier="gda_holder_is_valid">
+        <doc xml:whitespace="preserve">Get the validity of @holder (that is, of the value held by 
@holder)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if @holder's value can safely be used</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_valid_e"
+              c:identifier="gda_holder_is_valid_e"
+              version="4.2.10"
+              throws="1">
+        <doc xml:whitespace="preserve">Get the validity of @holder (that is, of the value held by 
@holder)</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if @holder's value can safely be used</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_attribute" c:identifier="gda_holder_set_attribute">
+        <doc xml:whitespace="preserve">Set the value associated to a named attribute. The @attribute string 
is 'stolen' by this method, and
+the memory it uses will be freed using the @destroy function when no longer needed (if @destroy is %NULL,
+then the string will not be freed at all).
+
+Attributes can have any name, but Libgda proposes some default names, 
+see &lt;link linkend="libgda-5.0-Attributes-manager.synopsis"&gt;this section&lt;/link&gt;.
+
+For example one would use it as:
+
+&lt;code&gt;gda_holder_set_attribute (holder, g_strdup (my_attribute), my_value, g_free);&lt;/code&gt;
+&lt;code&gt;gda_holder_set_attribute (holder, GDA_ATTRIBUTE_NAME, my_value, NULL);&lt;/code&gt;
+
+If there is already an attribute named @attribute set, then its value is replaced with the new value (@value 
is
+copied), except if @value is %NULL, in which case the attribute is removed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="attribute" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">a function to be called when @attribute is not needed anymore, or 
%NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_bind" c:identifier="gda_holder_set_bind" throws="1">
+        <doc xml:whitespace="preserve">Sets @holder to change when @bind_to changes (and does not make 
@bind_to change when @holder changes).
+For the operation to succeed, the GType of @holder and @bind_to must be the same, with the exception that
+any of them can have a %GDA_TYPE_NULL type (in this situation, the GType of the two #GdaHolder objects
+involved is set to match the other when any of them sets its type to something different than GDA_TYPE_NULL).
+
+If @bind_to is %NULL, then @holder will not be bound anymore.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="bind_to" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder or %NULL</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_default_value"
+              c:identifier="gda_holder_set_default_value">
+        <doc xml:whitespace="preserve">Sets the default value within the holder. If @value is %NULL then 
@holder won't have a
+default value anymore. To set a default value to %NULL, then pass a #GValue created using
+gda_value_new_null().
+
+NOTE: the default value does not need to be of the same type as the one required by @holder.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a value to set the holder's default value, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_not_null" c:identifier="gda_holder_set_not_null">
+        <doc xml:whitespace="preserve">Sets if the holder can have a NULL value. If @not_null is TRUE, then 
that won't be allowed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="not_null" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if @holder should not accept %NULL values</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source_model"
+              c:identifier="gda_holder_set_source_model"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets an hint that @holder's values should be restricted among the 
values
+contained in the @col column of the @model data model. Note that this is just a hint,
+meaning this policy is not enforced by @holder's implementation.
+
+If @model is %NULL, then the effect is to cancel ant previous call to gda_holder_set_source_model()
+where @model was not %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="model" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataModel object or %NULL</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+          <parameter name="col" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the reference column in @model</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value" c:identifier="gda_holder_set_value" throws="1">
+        <doc xml:whitespace="preserve">Sets the value within the holder. If @holder is an alias for another
+holder, then the value is also set for that other holder.
+
+On success, the action of any call to gda_holder_force_invalid() is cancelled
+as soon as this method is called (even if @holder's value does not actually change)
+
+If the value is not different from the one already contained within @holder,
+then @holder is not changed and no signal is emitted.
+
+Note1: the @value argument is treated the same way if it is %NULL or if it is a #GDA_TYPE_NULL value
+
+Note2: if @holder can't accept the @value value, then this method returns FALSE, and @holder will be left
+in an invalid state.
+
+Note3: before the change is accepted by @holder, the "validate-change" signal will be emitted (the value
+of which can prevent the change from happening) which can be connected to to have a greater control
+of which values @holder can have, or implement some business rules.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if value has been set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a value to set the holder to, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_str"
+              c:identifier="gda_holder_set_value_str"
+              throws="1">
+        <doc xml:whitespace="preserve">Same functionality as gda_holder_set_value() except that it uses a 
string representation
+of the value to set, which will be converted into a GValue first (using default data handler if
+ dh is %NULL).
+
+Note1: if @value is %NULL or is the "NULL" string, then @holder's value is set to %NULL.
+Note2: if @holder can't accept the @value value, then this method returns FALSE, and @holder will be left
+in an invalid state.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if value has been set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="dh" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaDataHandler to use, or %NULL</doc>
+            <type name="DataHandler" c:type="GdaDataHandler*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a value to set the holder to, as a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_to_default"
+              c:identifier="gda_holder_set_value_to_default">
+        <doc xml:whitespace="preserve">Set @holder's value to its default value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if @holder has got a default value</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="take_static_value"
+              c:identifier="gda_holder_take_static_value"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets the const value within the holder. If @holder is an alias for 
another
+holder, then the value is also set for that other holder.
+
+The value will not be freed, and user should take care of it, either for its
+freeing or for its correct value at the moment of query.
+
+If the value is not different from the one already contained within @holder,
+then @holder is not changed and no signal is emitted.
+
+Note1: if @holder can't accept the @value value, then this method returns NULL, and @holder will be left
+in an invalid state.
+
+Note2: before the change is accepted by @holder, the "validate-change" signal will be emitted (the value
+of which can prevent the change from happening) which can be connected to to have a greater control
+of which values @holder can have, or implement some business rules.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">NULL if an error occurred or if the previous GValue was NULL 
itself. It returns the static GValue user set previously, so that he can free it.</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a const value to set the holder to</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="value_changed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a boolean set with TRUE if the value changes, FALSE 
elsewhere.</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_value"
+              c:identifier="gda_holder_take_value"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets the value within the holder. If @holder is an alias for another
+holder, then the value is also set for that other holder.
+
+On success, the action of any call to gda_holder_force_invalid() is cancelled
+as soon as this method is called (even if @holder's value does not actually change).
+
+If the value is not different from the one already contained within @holder,
+then @holder is not changed and no signal is emitted.
+
+Note1: if @holder can't accept the @value value, then this method returns FALSE, and @holder will be left
+in an invalid state.
+
+Note2: before the change is accepted by @holder, the "validate-change" signal will be emitted (the value
+of which can prevent the change from happening) which can be connected to to have a greater control
+of which values @holder can have, or implement some business rules.
+
+Note3: if user previously set this holder with gda_holder_take_static_value () the GValue
+stored internally will be forgiven and replaced by the @value. User should then
+take care of the 'old' static GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if value has been set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="full">
+            <doc xml:whitespace="preserve">a value to set the holder to</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="value_is_default"
+              c:identifier="gda_holder_value_is_default">
+        <doc xml:whitespace="preserve">Tells if @holder's current value is the default one.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if @holder @holder's current value is the default one</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="holder" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaHolder object</doc>
+            <type name="Holder" c:type="GdaHolder*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="description" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="full-bind" writable="1" transfer-ownership="none">
+        <type name="Holder"/>
+      </property>
+      <property name="g-type"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </property>
+      <property name="id" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="name" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="not-null" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="simple-bind" writable="1" transfer-ownership="none">
+        <type name="Holder"/>
+      </property>
+      <property name="source-column" writable="1" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="source-model" writable="1" transfer-ownership="none">
+        <type name="DataModel"/>
+      </property>
+      <property name="validate-changes"
+                version="5.2.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Defines if the "validate-change" signal gets emitted when
+the holder's value changes.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="HolderPrivate" c:type="GdaHolderPrivate*"/>
+      </field>
+      <glib:signal name="attribute-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when any @holder's attribute has changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="att_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute's name</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="att_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute's value</doc>
+            <type name="GObject.Value"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when @holder's value has changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="source-changed" when="first">
+        <doc xml:whitespace="preserve">Gets emitted when the data model in which @holder's values should be 
has changed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="validate-change" when="last">
+        <doc xml:whitespace="preserve">Gets emitted when @holder is going to change its value. One can 
connect to
+this signal to control which values @holder can have (for example to implement some business rules)</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">NULL if @holder is allowed to change its value to @new_value, or a 
#GError otherwise.</doc>
+          <type name="GLib.Error"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the proposed new value for @holder</doc>
+            <type name="GObject.Value"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="HolderClass"
+            c:type="GdaHolderClass"
+            glib:is-gtype-struct-for="Holder">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="changed">
+        <callback name="changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="holder" transfer-ownership="none">
+              <type name="Holder" c:type="GdaHolder*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="source_changed">
+        <callback name="source_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="holder" transfer-ownership="none">
+              <type name="Holder" c:type="GdaHolder*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="validate_change">
+        <callback name="validate_change">
+          <return-value transfer-ownership="full">
+            <type name="GLib.Error" c:type="GError*"/>
+          </return-value>
+          <parameters>
+            <parameter name="holder" transfer-ownership="none">
+              <type name="Holder" c:type="GdaHolder*"/>
+            </parameter>
+            <parameter name="new_value" transfer-ownership="none">
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="att_changed">
+        <callback name="att_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="holder" transfer-ownership="none">
+              <type name="Holder" c:type="GdaHolder*"/>
+            </parameter>
+            <parameter name="att_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="att_value" transfer-ownership="none">
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="HolderError" c:type="GdaHolderError">
+      <member name="string_conversion_error"
+              value="0"
+              c:identifier="GDA_HOLDER_STRING_CONVERSION_ERROR">
+      </member>
+      <member name="value_type_error"
+              value="1"
+              c:identifier="GDA_HOLDER_VALUE_TYPE_ERROR">
+      </member>
+      <member name="value_null_error"
+              value="2"
+              c:identifier="GDA_HOLDER_VALUE_NULL_ERROR">
+      </member>
+    </enumeration>
+    <record name="HolderPrivate" c:type="GdaHolderPrivate" disguised="1">
+    </record>
+    <interface name="Lockable"
+               c:symbol-prefix="lockable"
+               c:type="GdaLockable"
+               glib:type-name="GdaLockable"
+               glib:get-type="gda_lockable_get_type"
+               glib:type-struct="LockableIface">
+      <virtual-method name="i_lock">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="lock" transfer-ownership="none">
+            <type name="Lockable" c:type="GdaLockable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_trylock">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="lock" transfer-ownership="none">
+            <type name="Lockable" c:type="GdaLockable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="i_unlock">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="lock" transfer-ownership="none">
+            <type name="Lockable" c:type="GdaLockable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="lock" c:identifier="gda_lockable_lock">
+        <doc xml:whitespace="preserve">Locks @lockable. If it is already locked by another thread, the 
current thread will block until it is unlocked 
+by the other thread.
+
+This function can be used even if g_thread_init() has not yet been called, and, in that case, will do 
nothing.
+
+Note: unlike g_mutex_lock(), this method recursive, which means a thread can lock @lockable several times 
+(and has to unlock it as many times to actually unlock it).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="lockable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaLockable object.</doc>
+            <type name="Lockable" c:type="GdaLockable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="trylock" c:identifier="gda_lockable_trylock">
+        <doc xml:whitespace="preserve">Tries to lock @lockable. If it is already locked by another thread, 
then it immediately returns FALSE, otherwise
+it locks @lockable.
+
+This function can be used even if g_thread_init() has not yet been called, and, in that case, will do 
nothing.
+
+Note: unlike g_mutex_lock(), this method recursive, which means a thread can lock @lockable several times 
+(and has to unlock it as many times to actually unlock it).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the object has successfully been locked.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="lockable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaLockable object.</doc>
+            <type name="Lockable" c:type="GdaLockable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unlock" c:identifier="gda_lockable_unlock">
+        <doc xml:whitespace="preserve">Unlocks @lockable. This method should not be called if the current 
does not already holds a lock on @lockable (having
+used gda_lockable_lock() or gda_lockable_trylock()).
+
+This function can be used even if g_thread_init() has not yet been called, and, in that case, will do 
nothing.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="lockable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaLockable object.</doc>
+            <type name="Lockable" c:type="GdaLockable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="LockableIface"
+            c:type="GdaLockableIface"
+            glib:is-gtype-struct-for="Lockable">
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="i_lock">
+        <callback name="i_lock">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="lock" transfer-ownership="none">
+              <type name="Lockable" c:type="GdaLockable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_trylock">
+        <callback name="i_trylock">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="lock" transfer-ownership="none">
+              <type name="Lockable" c:type="GdaLockable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="i_unlock">
+        <callback name="i_unlock">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="lock" transfer-ownership="none">
+              <type name="Lockable" c:type="GdaLockable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="MetaContext"
+            c:type="GdaMetaContext"
+            glib:type-name="GdaMetaContext"
+            glib:get-type="gda_meta_context_get_type"
+            c:symbol-prefix="meta_context">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;GdaMetaContext&lt;/structname&gt; represents a 
meta data modification
+context: the &lt;emphasis&gt;how&lt;/emphasis&gt; when used with gda_meta_store_modify_with_context(),
+and the &lt;emphasis&gt;what&lt;/emphasis&gt; when used with gda_connection_update_meta_store().
+
+To create a new #GdaMetaContext use #gda_meta_context_new. 
+
+To add a new column/value pair use #gda_meta_context_add_column.
+
+To free a #GdaMetaContext, created by #gda_meta_context_new, use #gda_attributes_manager_free.
+
+Since 5.2, you must consider this struct as opaque. Any access to its internal must use public API.
+Don't try to use #gda_meta_context_free on a struct that was created manually.</doc>
+      <field name="table_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="column_names" writable="1">
+        <type name="utf8" c:type="gchar**"/>
+      </field>
+      <field name="column_values" writable="1">
+        <type name="GObject.Value" c:type="GValue**"/>
+      </field>
+      <field name="columns" introspectable="0" writable="1">
+        <type name="GLib.HashTable" c:type="GHashTable*">
+          <type name="utf8"/>
+          <type/>
+        </type>
+      </field>
+      <constructor name="new"
+                   c:identifier="gda_meta_context_new"
+                   version="5.2">
+        <doc xml:whitespace="preserve">Creates a new #GdaMetaContext struct with a #GHashTable to store 
column/value pairs.
+
+Return: (transfer full): a new #GdaMetaContext struct with a new created hash to
+store column name/value pairs.</doc>
+        <return-value transfer-ownership="full">
+          <type name="MetaContext" c:type="GdaMetaContext*"/>
+        </return-value>
+      </constructor>
+      <method name="copy" c:identifier="gda_meta_context_copy" version="5.2">
+        <doc xml:whitespace="preserve">Copy constructor.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaMetaContext</doc>
+          <type name="MetaContext" c:type="GdaMetaContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="ctx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaContext</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="gda_meta_context_free" version="5.2">
+        <doc xml:whitespace="preserve">Frees any resources taken by @ctx struct. If @ctx is %NULL, then 
nothing happens.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="ctx"
+                              transfer-ownership="none"
+                              allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaMetaContext struct to free</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_table"
+              c:identifier="gda_meta_context_get_table"
+              version="5.2">
+        <doc xml:whitespace="preserve">Get table's name to used in the context.
+
+Return: (transfer none): A string with the table's name used in the context.</doc>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="ctx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaContext struct to get table's name from</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_column"
+              c:identifier="gda_meta_context_set_column"
+              version="5.2">
+        <doc xml:whitespace="preserve">Sets a new column/value pair to the given context @ctx. Column, must 
be a column in the given table's
+name setted by #gda_meta_context_set_table () (a table in the &lt;link 
linkend="information_schema"&gt;database
+schema&lt;/link&gt;). If the given @column already exists it's value is overwrited.
+
+Column's name and value is copied and destroyed when #gda_meta_context_free is called.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="ctx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaContext struct to add column/value pais to</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </instance-parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column's name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column's value</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection to be used when identifier are normalized, or 
NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_columns"
+              c:identifier="gda_meta_context_set_columns"
+              version="5.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Set columns to use in the context. The #GHashTable use column's name 
as key and a #GValue as value,
+to represent its value.
+
+ columns incements its reference counting. Is recommended to use #gda_meta_context_free in order to free 
them.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="ctx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaContext struct to set colums to</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </instance-parameter>
+          <parameter name="columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GHashTable with the table's columns' name and their values to 
use in context.</doc>
+            <type name="GLib.HashTable" c:type="GHashTable*">
+              <type name="utf8"/>
+              <type/>
+            </type>
+          </parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection to used to normalize identifiers quoting, or 
NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_table"
+              c:identifier="gda_meta_context_set_table"
+              version="5.2">
+        <doc xml:whitespace="preserve">Set table's name to use in the context. The table is one of &lt;link 
linkend="information_schema"&gt;database
+schema&lt;/link&gt; used to store meta information about the database. Use "_tables" to update meta 
information
+about database's tables.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="ctx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaContext struct to set table to</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string with the table's name to use in context</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="MetaDbObject" c:type="GdaMetaDbObject">
+      <doc xml:whitespace="preserve">Struture to hold information about each database object (tables, views, 
...),
+its contents must not be modified.
+
+Note: @obj_catalog, @obj_schema, @obj_name, @obj_short_name and @obj_full_name respect the
+&lt;link linkend="information_schema:sql_identifiers"&gt;SQL identifiers&lt;/link&gt; convention used in
+#GdaMetaStore objects. Before using these SQL identifiers, you should check the
+gda_sql_identifier_quote() to know if is it is necessary to surround by double quotes
+before using in an SQL statement.</doc>
+      <union name="extra" c:type="extra">
+        <field name="meta_table" writable="1">
+          <type name="MetaTable" c:type="GdaMetaTable"/>
+        </field>
+        <field name="meta_view" writable="1">
+          <type name="MetaView" c:type="GdaMetaView"/>
+        </field>
+      </union>
+      <field name="obj_type" writable="1">
+        <type name="MetaDbObjectType" c:type="GdaMetaDbObjectType"/>
+      </field>
+      <field name="outdated" writable="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="obj_catalog" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="obj_schema" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="obj_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="obj_short_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="obj_full_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="obj_owner" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="depend_list" writable="1">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="MetaDbObject"/>
+        </type>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </record>
+    <enumeration name="MetaDbObjectType" c:type="GdaMetaDbObjectType">
+      <doc xml:whitespace="preserve">Type of database object which can be handled as a #GdaMetaDbObject</doc>
+      <member name="unknown" value="0" c:identifier="GDA_META_DB_UNKNOWN">
+        <doc xml:whitespace="preserve">unknown type</doc>
+      </member>
+      <member name="table" value="1" c:identifier="GDA_META_DB_TABLE">
+        <doc xml:whitespace="preserve">represents a table</doc>
+      </member>
+      <member name="view" value="2" c:identifier="GDA_META_DB_VIEW">
+        <doc xml:whitespace="preserve">represents a view</doc>
+      </member>
+    </enumeration>
+    <enumeration name="MetaForeignKeyPolicy" c:type="GdaMetaForeignKeyPolicy">
+      <doc xml:whitespace="preserve">Defines the filtering policy of a foreign key when invoked on an UPDATE
+or DELETE operation.</doc>
+      <member name="unknown"
+              value="0"
+              c:identifier="GDA_META_FOREIGN_KEY_UNKNOWN">
+        <doc xml:whitespace="preserve">unspecified policy</doc>
+      </member>
+      <member name="none" value="1" c:identifier="GDA_META_FOREIGN_KEY_NONE">
+        <doc xml:whitespace="preserve">not enforced policy</doc>
+      </member>
+      <member name="no_action"
+              value="2"
+              c:identifier="GDA_META_FOREIGN_KEY_NO_ACTION">
+        <doc xml:whitespace="preserve">return an error, no action taken</doc>
+      </member>
+      <member name="restrict"
+              value="3"
+              c:identifier="GDA_META_FOREIGN_KEY_RESTRICT">
+        <doc xml:whitespace="preserve">same as @GDA_META_FOREIGN_KEY_NO_ACTION, not deferrable</doc>
+      </member>
+      <member name="cascade"
+              value="4"
+              c:identifier="GDA_META_FOREIGN_KEY_CASCADE">
+        <doc xml:whitespace="preserve">policy is to delete any rows referencing the deleted row, or update 
the value of the referencing column to the new value of the referenced column, respectively</doc>
+      </member>
+      <member name="set_null"
+              value="5"
+              c:identifier="GDA_META_FOREIGN_KEY_SET_NULL">
+        <doc xml:whitespace="preserve">policy is to set the referencing column to NULL</doc>
+      </member>
+      <member name="set_default"
+              value="6"
+              c:identifier="GDA_META_FOREIGN_KEY_SET_DEFAULT">
+        <doc xml:whitespace="preserve">policy is to set the referencing column to its default value</doc>
+      </member>
+    </enumeration>
+    <bitfield name="MetaGraphInfo" c:type="GdaMetaGraphInfo">
+      <member name="meta_graph_columns"
+              value="1"
+              c:identifier="GDA_META_GRAPH_COLUMNS">
+      </member>
+    </bitfield>
+    <enumeration name="MetaSortType" c:type="GdaMetaSortType">
+      <doc xml:whitespace="preserve">Types of sorting</doc>
+      <member name="alhapetical"
+              value="0"
+              c:identifier="GDA_META_SORT_ALHAPETICAL">
+        <doc xml:whitespace="preserve">sort alphabetically</doc>
+      </member>
+      <member name="dependencies"
+              value="1"
+              c:identifier="GDA_META_SORT_DEPENDENCIES">
+        <doc xml:whitespace="preserve">sort by dependencies</doc>
+      </member>
+    </enumeration>
+    <class name="MetaStore"
+           c:symbol-prefix="meta_store"
+           c:type="GdaMetaStore"
+           parent="GObject.Object"
+           glib:type-name="GdaMetaStore"
+           glib:get-type="gda_meta_store_get_type"
+           glib:type-struct="MetaStoreClass">
+      <constructor name="new" c:identifier="gda_meta_store_new">
+        <doc xml:whitespace="preserve">Create a new #GdaMetaStore object.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created object, or %NULL if an error occurred</doc>
+          <type name="MetaStore" c:type="GdaMetaStore*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cnc_string"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a connection string, or %NULL for an in-memory internal 
database</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_file"
+                   c:identifier="gda_meta_store_new_with_file">
+        <doc xml:whitespace="preserve">Create a new #GdaMetaStore object using @file_name as its internal
+database</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created object, or %NULL if an error occurred</doc>
+          <type name="MetaStore" c:type="GdaMetaStore*"/>
+        </return-value>
+        <parameters>
+          <parameter name="file_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a file name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="gda_meta_store_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <function name="sql_identifier_quote"
+                c:identifier="gda_meta_store_sql_identifier_quote"
+                version="4.0.3">
+        <doc xml:whitespace="preserve">Use this method to get a correctly quoted (if necessary) SQL 
identifier which can be used
+to retrieve or filter information in a #GdaMetaStore which stores meta data about @cnc.
+
+The returned SQL identifier can be used in conjunction with gda_connection_update_meta_store(),
+gda_connection_get_meta_store_data(), gda_connection_get_meta_store_data_v() and
+gda_meta_store_extract().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, to free with g_free() once not needed anymore</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an SQL identifier</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaConnection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="meta_changed" introspectable="0">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="changes" transfer-ownership="none">
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="gpointer" c:type="gpointer"/>
+            </type>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="meta_reset">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="suggest_update">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Error" c:type="GError*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="suggest" transfer-ownership="none">
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="create_modify_data_model"
+              c:identifier="gda_meta_store_create_modify_data_model">
+        <doc xml:whitespace="preserve">Creates a new #GdaDataModelArray data model which can be used, after 
being correctly filled,
+with the gda_meta_store_modify*() methods.*
+
+To be used by provider's implementation</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="table_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a table present in @store</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="declare_foreign_key"
+              c:identifier="gda_meta_store_declare_foreign_key"
+              version="4.2.4"
+              throws="1">
+        <doc xml:whitespace="preserve">Defines a new declared foreign key into @store. If another declared 
foreign key is already defined
+between the two tables and with the same name, then it is first removed.
+
+This method begins a transaction if possible (ie. none is already started), and if it can't,
+then if there is an error, the job may be partially done.
+
+A check is always performed to make sure all the database objects actually
+exist and returns an error if not. The check is performed using @mstruct if it's not %NULL (in
+this case only the tables already represented in @mstruct will be considered, in other words: @mstruct
+will not be modified), and using an internal #GdaMetaStruct is %NULL.
+
+The @catalog, @schema, @table, @ref_catalog, @ref_schema and @ref_table must follow the SQL
+identifiers naming convention, see the &lt;link linkend="gen:sql_identifiers"&gt;SQL identifiers&lt;/link&gt;
+section. The same convention needs to be respected for the strings in @conames and @ref_colnames.
+
+If @catalog is not %NULL, then @schema must also be not %NULL (the same restriction applies to
+ ref_catalog and @ref_schema).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="mstruct" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct, or %NULL</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </parameter>
+          <parameter name="fk_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the foreign key to declare</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="catalog" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the catalog in which the table (for which the foreign key is for) 
is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="schema" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the schema in which the table (for which the foreign key is for) 
is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the table (for which the foreign key is for)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="ref_catalog"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the catalog in which the referenced table is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="ref_schema"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the schema in which the referenced table is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="ref_table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the referenced table</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="nb_cols" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns involved (&gt;0)</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="colnames" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of column names from the table for which the foreign key 
is for</doc>
+            <array length="8" zero-terminated="0" c:type="gchar**">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+          <parameter name="ref_colnames" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of column names from the referenced table</doc>
+            <array length="8" zero-terminated="0" c:type="gchar**">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="extract"
+              c:identifier="gda_meta_store_extract"
+              shadowed-by="extract_v"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Extracts some data stored in @store using a custom SELECT query. If 
the @select_sql filter involves
+SQL identifiers (such as table or column names), then the values should have been adapted using
+gda_meta_store_sql_identifier_quote().
+
+For more information about
+SQL identifiers are represented in @store, see the
+&lt;link linkend="information_schema:sql_identifiers"&gt;meta data section about SQL 
identifiers&lt;/link&gt;.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel, or %NULL if an error occurred</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="select_sql" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a SELECT statement</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a place to store errors, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="arg3" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="extract_v"
+              c:identifier="gda_meta_store_extract_v"
+              shadows="extract"
+              version="4.2.6"
+              throws="1">
+        <doc xml:whitespace="preserve">Extracts some data stored in @store using a custom SELECT query. If 
the @select_sql filter involves
+SQL identifiers (such as table or column names), then the values should have been adapted using
+gda_meta_store_sql_identifier_quote().
+
+For more information about
+SQL identifiers are represented in @store, see the
+&lt;link linkend="information_schema:sql_identifiers"&gt;meta data section about SQL 
identifiers&lt;/link&gt;.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaDataModel, or %NULL if an error occurred</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="select_sql" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a SELECT statement</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="vars" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a hash table with all variables names as keys and GValue* as 
value, representing values for all the variables mentioned in @select_sql. If there is no variable then this 
part can be omitted.</doc>
+            <type name="GLib.HashTable" c:type="GHashTable*">
+              <type name="utf8"/>
+              <type name="GObject.Value"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute_value"
+              c:identifier="gda_meta_store_get_attribute_value"
+              throws="1">
+        <doc xml:whitespace="preserve">The #GdaMetaStore object maintains a list of (name,value) attributes 
(attributes names starting with a '_'
+character are for internal use only and cannot be altered). This method and the 
gda_meta_store_set_attribute_value()
+method allows the user to add, set or remove attributes specific to their usage.
+
+This method allows to get the value of a attribute stored in @store. The returned attribute value is
+placed at @att_value, the caller is responsible for free that string.
+
+If there is no attribute named @att_name then @att_value is set to %NULL
+and @error will contain the GDA_META_STORE_ATTRIBUTE_NOT_FOUND_ERROR error code, and FALSE is returned.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="att_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the attribute to get</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="att_value"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">the place to store the attribute value</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_internal_connection"
+              c:identifier="gda_meta_store_get_internal_connection">
+        <doc xml:whitespace="preserve">Get a pointer to the #GdaConnection object internally used by @store 
to store
+its contents.
+
+The returned connection can be used to access some other data than the one managed by @store
+itself. The returned object is not owned by the caller (if you need to keep it, then use g_object_ref()).
+Do not close the connection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaConnection, or %NULL</doc>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_version" c:identifier="gda_meta_store_get_version">
+        <doc xml:whitespace="preserve">Get @store's internal schema's version</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the version (incremented each time the schema changes, backward 
compatible)</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="modify"
+              c:identifier="gda_meta_store_modify"
+              shadowed-by="modify_v"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Propagates an update to @store, the update's contents is represented 
by @new_data, this function is
+primarily reserved to database providers.
+
+For example tell @store to update its list of tables, @new_data should contain the same columns as the 
"_tables"
+table of @store, and contain one row per table in the store; there should not be any more argument after the 
@error
+argument.
+
+Now, to update only one table, the @new_data data model should have one row for the table to update (or no 
row
+at all if the table does not exist anymore), and have values for the primary key of the "_tables" table of
+ store, namely "table_catalog", "table_schema" and "table_name".</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="table_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the table to modify within @store</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="new_data" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaDataModel containing the new data to set in @table_name, or 
%NULL (treated as a data model with no row at all)</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+          <parameter name="condition" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">SQL expression (which may contain variables) defining the rows 
which are being obsoleted by @new_data, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a place to store errors, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="arg5" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="modify_v"
+              c:identifier="gda_meta_store_modify_v"
+              shadows="modify"
+              version="4.2.6"
+              throws="1">
+        <doc xml:whitespace="preserve">Propagates an update to @store, the update's contents is represented 
by @new_data, this function is
+primarily reserved to database providers.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="table_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the table to modify within @store</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="new_data" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaDataModel containing the new data to set in @table_name, or 
%NULL (treated as a data model with no row at all)</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+          <parameter name="condition" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">SQL expression (which may contain variables) defining the rows 
which are being obsoleted by @new_data, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="nvalues" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of values in @value_names and @values</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="value_names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">names of values</doc>
+            <array length="3" zero-terminated="0" c:type="gchar**">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">values</doc>
+            <array length="3" zero-terminated="0" c:type="GValue**">
+              <type name="GObject.Value" c:type="GValue*"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="modify_with_context"
+              c:identifier="gda_meta_store_modify_with_context"
+              throws="1">
+        <doc xml:whitespace="preserve">Propagates an update to @store, the update's contents is represented 
by @new_data, this function is
+primarily reserved to database providers.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaContext context describing what to modify in 
@store</doc>
+            <type name="MetaContext" c:type="GdaMetaContext*"/>
+          </parameter>
+          <parameter name="new_data" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaDataModel containing the new data to set in @table_name, or 
%NULL (treated as a data model with no row at all)</doc>
+            <type name="DataModel" c:type="GdaDataModel*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="schema_add_custom_object"
+              c:identifier="gda_meta_store_schema_add_custom_object"
+              throws="1">
+        <doc xml:whitespace="preserve">The internal database used by @store can be 'augmented' with some 
user-defined database objects
+(such as tables or views). This method allows one to add a new database object.
+
+If the internal database already contains the object, then:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;if the object is equal to the provided description then TRUE is 
returned&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;if the object exists but differs from the provided description, then FALSE is 
returned,
+     with the GDA_META_STORE_SCHEMA_OBJECT_CONFLICT_ERROR error code&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+The @xml_description defines the table of view's definition, for example:
+&lt;programlisting&gt;&lt;![CDATA[&lt;table name="mytable"&gt;
+    &lt;column name="id" pkey="TRUE"/&gt;
+    &lt;column name="value"/&gt;
+&lt;/table&gt;]]&gt;&lt;/programlisting&gt;
+
+The partial DTD for this XML description of the object to add is the following (the top node must be
+a &amp;lt;table&amp;gt; or a &amp;lt;view&amp;gt;):
+&lt;programlisting&gt;&lt;![CDATA[&lt;!ELEMENT table (column*,check*,fkey*,unique*)&gt;
+&lt;!ATTLIST table
+          name NMTOKEN #REQUIRED&gt;
+
+&lt;!ELEMENT column EMPTY&gt;
+&lt;!ATTLIST column
+          name NMTOKEN #REQUIRED
+          type CDATA #IMPLIED
+          pkey (TRUE|FALSE) #IMPLIED
+          autoinc (TRUE|FALSE) #IMPLIED
+          nullok (TRUE|FALSE) #IMPLIED&gt;
+
+&lt;!ELEMENT check (#PCDATA)&gt;
+
+&lt;!ELEMENT fkey (part+)&gt;
+&lt;!ATTLIST fkey
+          ref_table NMTOKEN #REQUIRED&gt;
+
+&lt;!ELEMENT part EMPTY&gt;
+&lt;!ATTLIST part
+          column NMTOKEN #IMPLIED
+          ref_column NMTOKEN #IMPLIED&gt;
+
+&lt;!ELEMENT unique (column*)&gt;
+
+&lt;!ELEMENT view (definition)&gt;
+&lt;!ATTLIST view
+          name NMTOKEN #REQUIRED
+          descr CDATA #IMPLIED&gt;
+
+&lt;!ELEMENT definition (#PCDATA)&gt;]]&gt;&lt;/programlisting&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the new object has successfully been added</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="xml_description" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an XML description of the table or view to add to @store</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="schema_get_all_tables"
+              c:identifier="gda_meta_store_schema_get_all_tables">
+        <doc xml:whitespace="preserve">Get an ordered list of the tables @store knows about. The tables are 
ordered in a way that tables dependencies
+are respected: if table B has a foreign key on table A, then table A will be listed before table B in the 
returned
+list.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a new list of tables names (as gchar*), the list must be freed when 
no longer needed, but the strings present in the list must not be modified.</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="schema_get_depend_tables"
+              c:identifier="gda_meta_store_schema_get_depend_tables">
+        <doc xml:whitespace="preserve">Get an ordered list of the tables @store knows about on which the 
@table_name table depends (recursively).
+The tables are ordered in a way that tables dependencies
+are respected: if table B has a foreign key on table A, then table A will be listed before table B in the 
returned
+list.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a new list of tables names (as gchar*), the list must be freed when 
no longer needed, but the strings present in the list must not be modified.</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="table_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the table for which all the dependencies must be 
listed</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="schema_get_structure"
+              c:identifier="gda_meta_store_schema_get_structure"
+              throws="1">
+        <doc xml:whitespace="preserve">Creates a new #GdaMetaStruct object representing @store's internal 
database structure.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaMetaStruct object, or %NULL if an error occurred</doc>
+          <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="schema_remove_custom_object"
+              c:identifier="gda_meta_store_schema_remove_custom_object"
+              throws="1">
+        <doc xml:whitespace="preserve">Removes the custom database object named @obj_name.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the custom object has successfully been removed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="obj_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the custom object to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_attribute_value"
+              c:identifier="gda_meta_store_set_attribute_value"
+              throws="1">
+        <doc xml:whitespace="preserve">Set the value of the attribute named @att_name to @att_value; see 
gda_meta_store_get_attribute_value() for
+more information.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="att_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the attribute to set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="att_value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">value of the attribute to set, or %NULL to unset the 
attribute</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_identifiers_style"
+              c:identifier="gda_meta_store_set_identifiers_style"
+              version="4.2">
+        <doc xml:whitespace="preserve">Specifies how @store must handle SQL identifiers it has to store. 
This method is mainly used by
+database providers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="style" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a style</doc>
+            <type name="SqlIdentifierStyle" c:type="GdaSqlIdentifierStyle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_reserved_keywords_func"
+              c:identifier="gda_meta_store_set_reserved_keywords_func"
+              version="4.2">
+        <doc xml:whitespace="preserve">Specifies a function which @store will use to determine if a keyword 
is an SQL reserved
+keyword or not.
+
+This method is mainly used by database providers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore object</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="call">
+            <doc xml:whitespace="preserve">a #GdaSqlReservedKeywordsFunc function, or %NULL</doc>
+            <type name="SqlReservedKeywordsFunc"
+                  c:type="GdaSqlReservedKeywordsFunc"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="undeclare_foreign_key"
+              c:identifier="gda_meta_store_undeclare_foreign_key"
+              version="4.2.4"
+              throws="1">
+        <doc xml:whitespace="preserve">Removes a declared foreign key from @store.
+
+This method begins a transaction if possible (ie. none is already started), and if it can't, then if there
+is an error, the job may be partially done.
+
+A check is always performed to make sure all the database objects actually
+exist and returns an error if not. The check is performed using @mstruct if it's not %NULL (in
+this case only the tables already represented in @mstruct will be considered, in other words: @mstruct
+will not be modified), and using an internal #GdaMetaStruct is %NULL.
+
+See gda_meta_store_declare_foreign_key() for more information anout the @catalog, @schema, @name,
+ ref_catalog, @ref_schema and @ref_name arguments.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </instance-parameter>
+          <parameter name="mstruct" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct, or %NULL</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </parameter>
+          <parameter name="fk_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the foreign key to declare</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="catalog" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the catalog in which the table (for which the foreign key is for) 
is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="schema" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the schema in which the table (for which the foreign key is for) 
is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the table (for which the foreign key is for)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="ref_catalog"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the catalog in which the referenced table is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="ref_schema"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the schema in which the referenced table is, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="ref_table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the referenced table</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="catalog"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="cnc"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Connection"/>
+      </property>
+      <property name="cnc-string"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="schema"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="MetaStorePrivate" c:type="GdaMetaStorePrivate*"/>
+      </field>
+      <glib:signal name="meta-changed" when="first">
+        <doc xml:whitespace="preserve">This signal is emitted when the @store's contents have changed (the 
changes are in the @changes list)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="changes" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of changes made, as a #GSList of pointers to 
#GdaMetaStoreChange (which must not be modified)</doc>
+            <type name="GLib.SList" c:type="gpointer">
+              <type name="MetaStoreChange"/>
+            </type>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="meta-reset" when="first">
+        <doc xml:whitespace="preserve">This signal is emitted when the @store's contents have been reset 
completely and when
+no detailed changes are available</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="suggest-update" when="last">
+        <doc xml:whitespace="preserve">This signal is emitted when the contents of a table should be updated 
(data to update or insert only;
+deleting data is done automatically). This signal is used for internal purposes by the #GdaConnection
+object.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GError error structure if there was an error when processing 
the signal, or %NULL if signal propagation should continue</doc>
+          <type name="GLib.Error"/>
+        </return-value>
+        <parameters>
+          <parameter name="suggest" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the suggested update, as a #GdaMetaContext structure</doc>
+            <type name="MetaContext" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="MetaStoreChange" c:type="GdaMetaStoreChange">
+      <field name="c_type" writable="1">
+        <type name="MetaStoreChangeType" c:type="GdaMetaStoreChangeType"/>
+      </field>
+      <field name="table_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="keys" introspectable="0" writable="1">
+        <type name="GLib.HashTable" c:type="GHashTable*">
+          <type name="utf8"/>
+          <type/>
+        </type>
+      </field>
+    </record>
+    <enumeration name="MetaStoreChangeType" c:type="GdaMetaStoreChangeType">
+      <member name="add" value="0" c:identifier="GDA_META_STORE_ADD">
+      </member>
+      <member name="remove" value="1" c:identifier="GDA_META_STORE_REMOVE">
+      </member>
+      <member name="modify" value="2" c:identifier="GDA_META_STORE_MODIFY">
+      </member>
+    </enumeration>
+    <record name="MetaStoreClass"
+            c:type="GdaMetaStoreClass"
+            glib:is-gtype-struct-for="MetaStore">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="cpriv">
+        <type name="MetaStoreClassPrivate" c:type="GdaMetaStoreClassPrivate*"/>
+      </field>
+      <field name="meta_reset">
+        <callback name="meta_reset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="store" transfer-ownership="none">
+              <type name="MetaStore" c:type="GdaMetaStore*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="suggest_update">
+        <callback name="suggest_update">
+          <return-value transfer-ownership="full">
+            <type name="GLib.Error" c:type="GError*"/>
+          </return-value>
+          <parameters>
+            <parameter name="store" transfer-ownership="none">
+              <type name="MetaStore" c:type="GdaMetaStore*"/>
+            </parameter>
+            <parameter name="suggest" transfer-ownership="none">
+              <type name="MetaContext" c:type="GdaMetaContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="meta_changed" introspectable="0">
+        <callback name="meta_changed" introspectable="0">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="store" transfer-ownership="none">
+              <type name="MetaStore" c:type="GdaMetaStore*"/>
+            </parameter>
+            <parameter name="changes" transfer-ownership="none">
+              <type name="GLib.SList" c:type="GSList*">
+                <type name="gpointer" c:type="gpointer"/>
+              </type>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="MetaStoreClassPrivate"
+            c:type="GdaMetaStoreClassPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="MetaStoreError" c:type="GdaMetaStoreError">
+      <member name="incorrect_schema_error"
+              value="0"
+              c:identifier="GDA_META_STORE_INCORRECT_SCHEMA_ERROR">
+      </member>
+      <member name="unsupported_provider_error"
+              value="1"
+              c:identifier="GDA_META_STORE_UNSUPPORTED_PROVIDER_ERROR">
+      </member>
+      <member name="internal_error"
+              value="2"
+              c:identifier="GDA_META_STORE_INTERNAL_ERROR">
+      </member>
+      <member name="meta_context_error"
+              value="3"
+              c:identifier="GDA_META_STORE_META_CONTEXT_ERROR">
+      </member>
+      <member name="modify_contents_error"
+              value="4"
+              c:identifier="GDA_META_STORE_MODIFY_CONTENTS_ERROR">
+      </member>
+      <member name="extract_sql_error"
+              value="5"
+              c:identifier="GDA_META_STORE_EXTRACT_SQL_ERROR">
+      </member>
+      <member name="attribute_not_found_error"
+              value="6"
+              c:identifier="GDA_META_STORE_ATTRIBUTE_NOT_FOUND_ERROR">
+      </member>
+      <member name="attribute_error"
+              value="7"
+              c:identifier="GDA_META_STORE_ATTRIBUTE_ERROR">
+      </member>
+      <member name="schema_object_not_found_error"
+              value="8"
+              c:identifier="GDA_META_STORE_SCHEMA_OBJECT_NOT_FOUND_ERROR">
+      </member>
+      <member name="schema_object_conflict_error"
+              value="9"
+              c:identifier="GDA_META_STORE_SCHEMA_OBJECT_CONFLICT_ERROR">
+      </member>
+      <member name="schema_object_descr_error"
+              value="10"
+              c:identifier="GDA_META_STORE_SCHEMA_OBJECT_DESCR_ERROR">
+      </member>
+      <member name="transaction_already_started_error"
+              value="11"
+              c:identifier="GDA_META_STORE_TRANSACTION_ALREADY_STARTED_ERROR">
+      </member>
+    </enumeration>
+    <record name="MetaStorePrivate" c:type="GdaMetaStorePrivate" disguised="1">
+    </record>
+    <class name="MetaStruct"
+           c:symbol-prefix="meta_struct"
+           c:type="GdaMetaStruct"
+           parent="GObject.Object"
+           glib:type-name="GdaMetaStruct"
+           glib:get-type="gda_meta_struct_get_type"
+           glib:type-struct="MetaStructClass">
+      <constructor name="new" c:identifier="gda_meta_struct_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaMetaStruct object. The @features specifies the 
extra features which will also be computed:
+the more features, the more time it takes to run. Features such as table's columns, each column's 
attributes, etc
+are not optional and will always be computed.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #GdaMetaStruct object</doc>
+          <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+        </return-value>
+        <parameters>
+          <parameter name="store" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStore from which the new #GdaMetaStruct object will 
fetch information</doc>
+            <type name="MetaStore" c:type="GdaMetaStore*"/>
+          </parameter>
+          <parameter name="features" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the kind of extra information the new #GdaMetaStruct object will 
compute</doc>
+            <type name="MetaStructFeature" c:type="GdaMetaStructFeature"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="gda_meta_struct_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <method name="complement"
+              c:identifier="gda_meta_struct_complement"
+              throws="1">
+        <doc xml:whitespace="preserve">Creates a new #GdaMetaDbObject structure in @mstruct to represent the 
database object (of type @type)
+which can be uniquely identified as @catalog  schema @name.
+
+If @catalog is not %NULL, then @schema should not be %NULL.
+
+If both @catalog and @schema are %NULL, then the database object will be the one which is
+"visible" by default (that is which can be accessed only by its short @name name).
+
+If @catalog is %NULL and @schema is not %NULL, then the database object will be the one which 
+can be accessed by its @schema  name name.
+
+Important note: @catalog, @schema and @name will be used using the following convention:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;be surrounded by double quotes for a case sensitive 
search&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;otherwise for case insensitive search&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+For more information, see the &lt;link linkend="information_schema:sql_identifiers"&gt;
+meta data section about SQL identifiers&lt;/link&gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaMetaDbObject corresponding to the database object if no 
error occurred, or %NULL</doc>
+          <type name="MetaDbObject" c:type="GdaMetaDbObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of object to add (which can be GDA_META_DB_UNKNOWN)</doc>
+            <type name="MetaDbObjectType" c:type="GdaMetaDbObjectType"/>
+          </parameter>
+          <parameter name="catalog" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the catalog the object belongs to (as a G_TYPE_STRING GValue), or 
%NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="schema" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the schema the object belongs to (as a G_TYPE_STRING GValue), or 
%NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the object's name (as a G_TYPE_STRING GValue), not %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="complement_all"
+              c:identifier="gda_meta_struct_complement_all"
+              throws="1">
+        <doc xml:whitespace="preserve">This method is similar to gda_meta_struct_complement() and 
gda_meta_struct_complement_default()
+but creates #GdaMetaDbObject for all the database object.
+
+Please refer to gda_meta_struct_complement() form more information.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="complement_default"
+              c:identifier="gda_meta_struct_complement_default"
+              throws="1">
+        <doc xml:whitespace="preserve">This method is similar to gda_meta_struct_complement() and 
gda_meta_struct_complement_all()
+but creates #GdaMetaDbObject for all the
+database object which are usable using only their short name (that is which do not need to be prefixed by 
+the schema in which they are to be used).
+
+Please refer to gda_meta_struct_complement() form more information.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="complement_depend"
+              c:identifier="gda_meta_struct_complement_depend"
+              throws="1">
+        <doc xml:whitespace="preserve">This method is similar to gda_meta_struct_complement() but creates 
#GdaMetaDbObject for all the dependencies
+of @dbo.
+
+Please refer to gda_meta_struct_complement() form more information.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="dbo" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaDbObject part of @mstruct</doc>
+            <type name="MetaDbObject" c:type="GdaMetaDbObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="complement_schema"
+              c:identifier="gda_meta_struct_complement_schema"
+              throws="1">
+        <doc xml:whitespace="preserve">This method is similar to gda_meta_struct_complement() but creates 
#GdaMetaDbObject for all the
+database object which are in the @schema schema (and in the @catalog catalog).
+If @catalog is %NULL, then any catalog will be used, and
+if @schema is %NULL then any schema will be used (if @schema is %NULL then catalog must also be %NULL).
+
+Please refer to gda_meta_struct_complement() form more information.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="catalog" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">name of a catalog, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="schema" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">name of a schema, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dump_as_graph"
+              c:identifier="gda_meta_struct_dump_as_graph"
+              throws="1">
+        <doc xml:whitespace="preserve">Creates a new graph (in the GraphViz syntax) representation of 
@mstruct.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, or %NULL if an error occurred.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">informs what kind of information to show in the resulting 
graph</doc>
+            <type name="MetaGraphInfo" c:type="GdaMetaGraphInfo"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_all_db_objects"
+              c:identifier="gda_meta_struct_get_all_db_objects">
+        <doc xml:whitespace="preserve">Get a list of all the #GdaMetaDbObject structures representing 
database objects in @mstruct. Note that
+no #GdaMetaDbObject structure must not be modified.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a new #GSList list of pointers to #GdaMetaDbObject structures which 
must be destroyed after usage using g_slist_free(). The individual #GdaMetaDbObject must not be 
modified.</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="MetaDbObject"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_db_object"
+              c:identifier="gda_meta_struct_get_db_object">
+        <doc xml:whitespace="preserve">Tries to locate the #GdaMetaDbObject structure representing the 
database object named after
+ catalog, @schema and @name.
+
+If one or both of @catalog and @schema are %NULL, and more than one database object matches the name, then
+the return value is also %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaMetaDbObject or %NULL if not found</doc>
+          <type name="MetaDbObject" c:type="GdaMetaDbObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="catalog" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the catalog the object belongs to (as a G_TYPE_STRING GValue), or 
%NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="schema" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the schema the object belongs to (as a G_TYPE_STRING GValue), or 
%NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the object's name (as a G_TYPE_STRING GValue), not %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_table_column"
+              c:identifier="gda_meta_struct_get_table_column"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Tries to find the #GdaMetaTableColumn representing the column named 
@col_name in @table.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaMetaTableColumn or %NULL if not found</doc>
+          <type name="MetaTableColumn" c:type="GdaMetaTableColumn*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GdaMetaTable structure to find the column for</doc>
+            <type name="MetaTable" c:type="GdaMetaTable*"/>
+          </parameter>
+          <parameter name="col_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the column to find (as a G_TYPE_STRING GValue)</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_xml_file"
+              c:identifier="gda_meta_struct_load_from_xml_file"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads an XML description into @mstruct. This method is still 
experimental and no description
+the XML file structure is given, and no guarantee that it will remain as it is given.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error has occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="catalog" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the catalog name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="schema" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the schema name, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="xml_spec_file" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the specifications as the name of an XML file</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sort_db_objects"
+              c:identifier="gda_meta_struct_sort_db_objects"
+              throws="1">
+        <doc xml:whitespace="preserve">Reorders the list of database objects within @mstruct in a way 
specified by @sort_type.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="mstruct" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaStruct object</doc>
+            <type name="MetaStruct" c:type="GdaMetaStruct*"/>
+          </instance-parameter>
+          <parameter name="sort_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the kind of sorting requested</doc>
+            <type name="MetaSortType" c:type="GdaMetaSortType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="features"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="meta-store"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="MetaStore"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="MetaStructPrivate" c:type="GdaMetaStructPrivate*"/>
+      </field>
+    </class>
+    <record name="MetaStructClass"
+            c:type="GdaMetaStructClass"
+            glib:is-gtype-struct-for="MetaStruct">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="MetaStructError" c:type="GdaMetaStructError">
+      <member name="unknown_object_error"
+              value="0"
+              c:identifier="GDA_META_STRUCT_UNKNOWN_OBJECT_ERROR">
+      </member>
+      <member name="duplicate_object_error"
+              value="1"
+              c:identifier="GDA_META_STRUCT_DUPLICATE_OBJECT_ERROR">
+      </member>
+      <member name="incoherence_error"
+              value="2"
+              c:identifier="GDA_META_STRUCT_INCOHERENCE_ERROR">
+      </member>
+      <member name="xml_error"
+              value="3"
+              c:identifier="GDA_META_STRUCT_XML_ERROR">
+      </member>
+    </enumeration>
+    <bitfield name="MetaStructFeature" c:type="GdaMetaStructFeature">
+      <doc xml:whitespace="preserve">Controls which features are computed about database objects.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="GDA_META_STRUCT_FEATURE_NONE">
+        <doc xml:whitespace="preserve">database objects only have their own attributes</doc>
+      </member>
+      <member name="foreign_keys"
+              value="1"
+              c:identifier="GDA_META_STRUCT_FEATURE_FOREIGN_KEYS">
+        <doc xml:whitespace="preserve">foreign keys are computed for tables</doc>
+      </member>
+      <member name="view_dependencies"
+              value="2"
+              c:identifier="GDA_META_STRUCT_FEATURE_VIEW_DEPENDENCIES">
+        <doc xml:whitespace="preserve">for views, the tables they use are also computed</doc>
+      </member>
+      <member name="all" value="3" c:identifier="GDA_META_STRUCT_FEATURE_ALL">
+        <doc xml:whitespace="preserve">all the features are computed</doc>
+      </member>
+    </bitfield>
+    <record name="MetaStructPrivate"
+            c:type="GdaMetaStructPrivate"
+            disguised="1">
+    </record>
+    <record name="MetaTable" c:type="GdaMetaTable">
+      <doc xml:whitespace="preserve">This structure specifies a #GdaMetaDbObject to represent a table's 
specific attributes,
+its contents must not be modified.
+
+Note that in some cases, the columns cannot be determined for views, and in this case the
+ columns will be %NULL (this can be the case for example with SQLite where a view
+uses a function which is not natively provided by SQLite.</doc>
+      <field name="columns" writable="1">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="MetaTableColumn"/>
+        </type>
+      </field>
+      <field name="pk_cols_array" writable="1">
+        <type name="gint" c:type="gint*"/>
+      </field>
+      <field name="pk_cols_nb" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="reverse_fk_list" writable="1">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="MetaTableForeignKey"/>
+        </type>
+      </field>
+      <field name="fk_list" writable="1">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="MetaTableForeignKey"/>
+        </type>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </record>
+    <record name="MetaTableColumn" c:type="GdaMetaTableColumn">
+      <doc xml:whitespace="preserve">This structure represents a table of view's column, its contents must 
not be modified.</doc>
+      <field name="column_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="column_type" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="gtype" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="pkey" writable="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="nullok" writable="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <method name="foreach_attribute"
+              c:identifier="gda_meta_table_column_foreach_attribute">
+        <doc xml:whitespace="preserve">Calls @func for each attribute set to tcol</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tcol" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaTableColumn</doc>
+            <type name="MetaTableColumn" c:type="GdaMetaTableColumn*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a #GdaAttributesManagerFunc function</doc>
+            <type name="AttributesManagerFunc"
+                  c:type="GdaAttributesManagerFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to be passed as last argument of @func each time it is 
called</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute"
+              c:identifier="gda_meta_table_column_get_attribute">
+        <doc xml:whitespace="preserve">Get the value associated to a named attribute.
+
+Attributes can have any name, but Libgda proposes some default names, see &lt;link 
linkend="libgda-5.0-Attributes-manager.synopsis"&gt;this section&lt;/link&gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a read-only #GValue, or %NULL if not attribute named @attribute has 
been set for @column</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tcol" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaTableColumn</doc>
+            <type name="MetaTableColumn" c:type="GdaMetaTableColumn*"/>
+          </instance-parameter>
+          <parameter name="attribute" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute name as a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_attribute"
+              c:identifier="gda_meta_table_column_set_attribute">
+        <doc xml:whitespace="preserve">Set the value associated to a named attribute.
+
+Attributes can have any name, but Libgda proposes some default names, see &lt;link 
linkend="libgda-40-Attributes-manager.synopsis"&gt;this section&lt;/link&gt;.
+If there is already an attribute named @attribute set, then its value is replaced with the new @value, 
+except if @value is %NULL, in which case the attribute is removed.
+
+Warning: @attribute is not copied, if it needs to be freed when not used anymore, then @destroy should point 
to
+the functions which will free it (typically g_free()). If @attribute does not need to be freed, then 
@destroy can be %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tcol" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaMetaTableColumn</doc>
+            <type name="MetaTableColumn" c:type="GdaMetaTableColumn*"/>
+          </instance-parameter>
+          <parameter name="attribute" transfer-ownership="none">
+            <doc xml:whitespace="preserve">attribute name as a static string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GValue, or %NULL</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="destroy"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async">
+            <doc xml:whitespace="preserve">function called when @attribute has to be freed, or %NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="MetaTableForeignKey" c:type="GdaMetaTableForeignKey">
+      <doc xml:whitespace="preserve">This structure represents a foreign key constraint, its contents must 
not be modified.</doc>
+      <field name="meta_table" writable="1">
+        <type name="MetaDbObject" c:type="GdaMetaDbObject*"/>
+      </field>
+      <field name="depend_on" writable="1">
+        <type name="MetaDbObject" c:type="GdaMetaDbObject*"/>
+      </field>
+      <field name="cols_nb" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="fk_cols_array" writable="1">
+        <type name="gint" c:type="gint*"/>
+      </field>
+      <field name="fk_names_array" writable="1">
+        <type name="utf8" c:type="gchar**"/>
+      </field>
+      <field name="ref_pk_cols_array" writable="1">
+        <type name="gint" c:type="gint*"/>
+      </field>
+      <field name="ref_pk_names_array" writable="1">
+        <type name="utf8" c:type="gchar**"/>
+      </field>
+      <field name="on_update_policy" readable="0" private="1">
+        <type name="MetaForeignKeyPolicy" c:type="GdaMetaForeignKeyPolicy"/>
+      </field>
+      <field name="on_delete_policy" readable="0" private="1">
+        <type name="MetaForeignKeyPolicy" c:type="GdaMetaForeignKeyPolicy"/>
+      </field>
+      <field name="declared" readable="0" private="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="fk_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </record>
+    <record name="MetaView" c:type="GdaMetaView">
+      <doc xml:whitespace="preserve">This structure specifies a #GdaMetaDbObject to represent a view's 
specific attributes,
+its contents must not be modified.</doc>
+      <field name="table" writable="1">
+        <type name="MetaTable" c:type="GdaMetaTable"/>
+      </field>
+      <field name="view_def" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="is_updatable" writable="1">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </record>
+    <glib:boxed glib:name="Null"
+                c:symbol-prefix="null"
+                glib:type-name="GdaNull"
+                glib:get-type="gda_null_get_type">
+    </glib:boxed>
+    <record name="Numeric"
+            c:type="GdaNumeric"
+            glib:type-name="GdaNumeric"
+            glib:get-type="gda_numeric_get_type"
+            c:symbol-prefix="numeric">
+      <doc xml:whitespace="preserve">Holds numbers represented as strings.
+
+This struct must be considered as opaque. Any access to its members must use its
+accessors added since version 5.0.2.</doc>
+      <field name="number" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="precision" writable="1">
+        <type name="glong" c:type="glong"/>
+      </field>
+      <field name="width" writable="1">
+        <type name="glong" c:type="glong"/>
+      </field>
+      <field name="reserved" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <constructor name="new" c:identifier="gda_numeric_new" version="5.0.2">
+        <doc xml:whitespace="preserve">Creates a new #GdaNumeric with defaults.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaNumeric.</doc>
+          <type name="Numeric" c:type="GdaNumeric*"/>
+        </return-value>
+      </constructor>
+      <method name="copy" c:identifier="gda_numeric_copy">
+        <doc xml:whitespace="preserve">Creates a new #GdaNumeric structure from an existing one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaNumeric which contains a copy of information 
in @boxed.  Free-function: gda_numeric_free</doc>
+          <type name="Numeric" c:type="GdaNumeric*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src" transfer-ownership="none">
+            <doc xml:whitespace="preserve">source to get a copy from.</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="gda_numeric_free">
+        <doc xml:whitespace="preserve">Deallocates all memory associated to the given @boxed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="full">
+            <doc xml:whitespace="preserve">a #GdaNumeric pointer</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_double"
+              c:identifier="gda_numeric_get_double"
+              version="5.0.2">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #gdouble representation of @numeric</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_precision"
+              c:identifier="gda_numeric_get_precision"
+              version="5.0.2">
+        <doc xml:whitespace="preserve">Gets the precision of a #GdaNumeric.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an integer with the precision of a #GdaNumeric.</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_string"
+              c:identifier="gda_numeric_get_string"
+              version="5.0.2">
+        <doc xml:whitespace="preserve">Get the string representation of @numeric.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string representing the stored valued in @numeric</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="gda_numeric_get_width"
+              version="5.0.2">
+        <doc xml:whitespace="preserve">Gets the width of a #GdaNumeric. (Not yet implemented).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an integer with the width of a #GdaNumeric. (Not jet 
implemented).</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_double"
+              c:identifier="gda_numeric_set_double"
+              version="5.0.2">
+        <doc xml:whitespace="preserve">Sets @numeric using a #gdouble represented by @number.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+          <parameter name="number" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #gdouble</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_string"
+              c:identifier="gda_numeric_set_from_string">
+        <doc xml:whitespace="preserve">Sets @numeric with a number represented by @str. By default converts 
@str to
+#gdouble.
+
+* Since: 5.0.2</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string representing a number</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_precision"
+              c:identifier="gda_numeric_set_precision"
+              version="5.0.2">
+        <doc xml:whitespace="preserve">Sets the precision of a #GdaNumeric.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+          <parameter name="precision" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #glong</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_width"
+              c:identifier="gda_numeric_set_width"
+              version="5.0.2">
+        <doc xml:whitespace="preserve">Sets the width of a #GdaNumeric. (Not yet implemented).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="numeric" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaNumeric</doc>
+            <type name="Numeric" c:type="GdaNumeric*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #glong</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="PStmt"
+           c:symbol-prefix="pstmt"
+           c:type="GdaPStmt"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="GdaPStmt"
+           glib:get-type="gda_pstmt_get_type"
+           glib:type-struct="PStmtClass">
+      <method name="copy_contents" c:identifier="gda_pstmt_copy_contents">
+        <doc xml:whitespace="preserve">Copies @src's data to @dest</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaPStmt object</doc>
+            <type name="PStmt" c:type="GdaPStmt*"/>
+          </instance-parameter>
+          <parameter name="dest" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaPStmt object</doc>
+            <type name="PStmt" c:type="GdaPStmt*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_gda_statement"
+              c:identifier="gda_pstmt_get_gda_statement">
+        <doc xml:whitespace="preserve">Get a pointer to the #GdaStatement which led to the creation of this 
prepared statement.
+
+Note: if that statement has been modified since the creation of @pstmt, then this method
+will return %NULL</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaStatement</doc>
+          <type name="Statement" c:type="GdaStatement*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pstmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaPStmt object</doc>
+            <type name="PStmt" c:type="GdaPStmt*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_gda_statement"
+              c:identifier="gda_pstmt_set_gda_statement">
+        <doc xml:whitespace="preserve">Informs @pstmt that it corresponds to the preparation of the @stmt 
statement</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pstmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaPStmt object</doc>
+            <type name="PStmt" c:type="GdaPStmt*"/>
+          </instance-parameter>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="PStmtPrivate" c:type="GdaPStmtPrivate*"/>
+      </field>
+      <field name="sql">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="param_ids">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="utf8"/>
+        </type>
+      </field>
+      <field name="ncols">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="types">
+        <type name="GType" c:type="GType*"/>
+      </field>
+      <field name="tmpl_columns" introspectable="0">
+        <type name="GLib.SList" c:type="GSList*">
+          <type/>
+        </type>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </class>
+    <record name="PStmtClass"
+            c:type="GdaPStmtClass"
+            glib:is-gtype-struct-for="PStmt">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="PStmtPrivate" c:type="GdaPStmtPrivate" disguised="1">
+    </record>
+    <record name="ProviderInfo" c:type="GdaProviderInfo">
+      <doc xml:whitespace="preserve">This structure holds the information associated to a database provider 
as discovered by Libgda.</doc>
+      <field name="id" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="location" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="dsn_params" writable="1">
+        <type name="Set" c:type="GdaSet*"/>
+      </field>
+      <field name="auth_params" writable="1">
+        <type name="Set" c:type="GdaSet*"/>
+      </field>
+      <field name="_gda_reserved1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="_gda_reserved4" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </record>
+    <record name="QuarkList"
+            c:type="GdaQuarkList"
+            glib:type-name="GdaQuarkList"
+            glib:get-type="gda_quark_list_get_type"
+            c:symbol-prefix="quark_list">
+      <constructor name="new" c:identifier="gda_quark_list_new">
+        <doc xml:whitespace="preserve">Creates a new #GdaQuarkList, which is a set of key-&gt;value pairs,
+very similar to GLib's GHashTable, but with the only purpose to
+make easier the parsing and creation of data source connection
+strings.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #GdaQuarkList.  Free-function: 
gda_quark_list_free</doc>
+          <type name="QuarkList" c:type="GdaQuarkList*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_from_string"
+                   c:identifier="gda_quark_list_new_from_string">
+        <doc xml:whitespace="preserve">Creates a new #GdaQuarkList given a string.
+
+ string must be a semi-colon separated list of "&amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;" strings (for 
example
+"DB_NAME=notes;USERNAME=alfred"). Each key and value must respect the RFC 1738 recommendations: the
+&lt;constant&gt;&amp;lt;&amp;gt;&amp;quot;#%{}|\^~[]&amp;apos;`;/?:@=&amp;amp;&lt;/constant&gt; and space 
characters are replaced by 
+&lt;constant&gt;&amp;quot;%%ab&amp;quot;&lt;/constant&gt; where
+&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character (for example the
+"DB_NAME=notes;USERNAME=al%%20fred" string will specify a username as "al fred"). If this formalism
+is not respected, then some unexpected results may occur.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #GdaQuarkList.  Free-function: 
gda_quark_list_free</doc>
+          <type name="QuarkList" c:type="GdaQuarkList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_from_string"
+              c:identifier="gda_quark_list_add_from_string">
+        <doc xml:whitespace="preserve">@string must be a semi-colon separated list of 
"&amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;" strings (for example
+"DB_NAME=notes;USERNAME=alfred"). Each key and value must respect the RFC 1738 recommendations: the
+&lt;constant&gt;&amp;lt;&amp;gt;&amp;quot;#%{}|\^~[]&amp;apos;`;/?:@=&amp;amp;&lt;/constant&gt; and space 
characters are replaced by 
+&lt;constant&gt;&amp;quot;%%ab&amp;quot;&lt;/constant&gt; where
+&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character (for example the
+"DB_NAME=notes;USERNAME=al%%20fred" string will specify a username as "al fred"). If this formalism
+is not respected, then some unexpected results may occur.
+
+Adds new key-&gt;value pairs from the given @string. If @cleanup is
+set to %TRUE, the previous contents will be discarded before adding
+the new pairs.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+          <parameter name="string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cleanup" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether to cleanup the previous content or not.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear" c:identifier="gda_quark_list_clear">
+        <doc xml:whitespace="preserve">Removes all strings in the given #GdaQuarkList.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="gda_quark_list_copy">
+        <doc xml:whitespace="preserve">Creates a new #GdaQuarkList from an existing one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaQuarkList with a copy of the data in 
@qlist.</doc>
+          <type name="QuarkList" c:type="GdaQuarkList*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">quark_list to get a copy from.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="find" c:identifier="gda_quark_list_find">
+        <doc xml:whitespace="preserve">Searches for the value identified by @name in the given 
#GdaQuarkList. For protected values
+(authentification data), don't forget to call gda_quark_list_protect_values() when you
+don't need them anymore (when needed again, they will be unmangled again).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value associated with the given key if found, or %NULL if not 
found.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the value to search for.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach" c:identifier="gda_quark_list_foreach">
+        <doc xml:whitespace="preserve">Calls the given function for each of the key/value pairs in @qlist. 
The function is passed the key and value 
+of each pair, and the given user_data parameter. @qlist may not be modified while iterating over it.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList structure.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">the function to call for each key/value pair</doc>
+            <type name="GLib.HFunc" c:type="GHFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to pass to the function</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="gda_quark_list_free">
+        <doc xml:whitespace="preserve">Releases all memory occupied by the given #GdaQuarkList.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="protect_values"
+              c:identifier="gda_quark_list_protect_values"
+              version="5.2.0">
+        <doc xml:whitespace="preserve">Call this function to get rid of the clear version of the value 
associated to
+ name </doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove" c:identifier="gda_quark_list_remove">
+        <doc xml:whitespace="preserve">Removes an entry from the #GdaQuarkList, given its name.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="qlist" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaQuarkList structure.</doc>
+            <type name="QuarkList" c:type="GdaQuarkList*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an entry name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="RepetitiveStatement"
+           c:symbol-prefix="repetitive_statement"
+           c:type="GdaRepetitiveStatement"
+           parent="GObject.Object"
+           glib:type-name="GdaRepetitiveStatement"
+           glib:get-type="gda_repetitive_statement_get_type"
+           glib:type-struct="RepetitiveStatementClass">
+      <constructor name="new"
+                   c:identifier="gda_repetitive_statement_new"
+                   version="4.2">
+        <doc xml:whitespace="preserve">Creates a new #GdaRepetitiveStatement object which, when executed, 
will execute @stmt once for all
+the values set which will have been defined using gda_repetitive_statement_append_set().
+Use gda_connection_repetitive_statement_execute() to actually execute it.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaRepetitiveStatement object</doc>
+          <type name="RepetitiveStatement" c:type="GdaRepetitiveStatement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="stmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaStatement object</doc>
+            <type name="Statement" c:type="GdaStatement*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="append_set"
+              c:identifier="gda_repetitive_statement_append_set"
+              version="4.2">
+        <doc xml:whitespace="preserve">Specifies that @rstmt be executed one time with the values contained 
in @values. 
+
+A new #GdaSet to be used as the @values argument can be obtained using
+gda_repetitive_statement_get_template_set().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a new #GdaRepetitiveStatement object</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rstmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRepetitiveStatement object</doc>
+            <type name="RepetitiveStatement" c:type="GdaRepetitiveStatement*"/>
+          </instance-parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaSet object with the values to be used</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+          <parameter name="make_copy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if @values is copied, and %FALSE if @values is only 
ref'ed</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_all_sets"
+              c:identifier="gda_repetitive_statement_get_all_sets"
+              version="4.2">
+        <doc xml:whitespace="preserve">Get all the values sets which will have been added using 
gda_repetitive_statement_append_set().</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a new #GSList of #GdaSet objects (free with g_slist_free()).</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Set"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rstmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRepetitiveStatement object</doc>
+            <type name="RepetitiveStatement" c:type="GdaRepetitiveStatement*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_template_set"
+              c:identifier="gda_repetitive_statement_get_template_set"
+              version="4.2"
+              throws="1">
+        <doc xml:whitespace="preserve">Gets a new #GdaSet object with the parameters used by the template 
statement in the
+ rstmt object. 
+
+Use this object with gda_repetitive_statement_append_set().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE on success, %FALSE on error</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rstmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRepetitiveStatement object</doc>
+            <type name="RepetitiveStatement" c:type="GdaRepetitiveStatement*"/>
+          </instance-parameter>
+          <parameter name="set" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store the returned template set</doc>
+            <type name="Set" c:type="GdaSet**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="statement"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Statement"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="RepetitiveStatementClass"
+            c:type="GdaRepetitiveStatementClass"
+            glib:is-gtype-struct-for="RepetitiveStatement">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="Row"
+           c:symbol-prefix="row"
+           c:type="GdaRow"
+           parent="GObject.Object"
+           glib:type-name="GdaRow"
+           glib:get-type="gda_row_get_type"
+           glib:type-struct="RowClass">
+      <constructor name="new" c:identifier="gda_row_new">
+        <doc xml:whitespace="preserve">Creates a #GdaRow which can hold @count #GValue values.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GdaRow object.</doc>
+          <type name="Row" c:type="GdaRow*"/>
+        </return-value>
+        <parameters>
+          <parameter name="count" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of #GValue in the new #GdaRow.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_length" c:identifier="gda_row_get_length">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns that the @row has.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRow.</doc>
+            <type name="Row" c:type="GdaRow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_value" c:identifier="gda_row_get_value">
+        <doc xml:whitespace="preserve">Gets a pointer to a #GValue stored in a #GdaRow.
+
+This is a pointer to the internal array of values. Don't try to free
+or modify it (modifying is reserved to database provider's implementations).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the #GValue in the position @num of @row.</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRow</doc>
+            <type name="Row" c:type="GdaRow*"/>
+          </instance-parameter>
+          <parameter name="num" transfer-ownership="none">
+            <doc xml:whitespace="preserve">field index.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate_value" c:identifier="gda_row_invalidate_value">
+        <doc xml:whitespace="preserve">Marks @value as being invalid. This method is mainly used by database
+providers' implementations to report any error while reading a value from the database.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRow</doc>
+            <type name="Row" c:type="GdaRow*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue belonging to @row (obtained with 
gda_row_get_value()).</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate_value_e"
+              c:identifier="gda_row_invalidate_value_e"
+              version="4.2.10">
+        <doc xml:whitespace="preserve">Marks @value as being invalid. This method is mainly used by database
+providers' implementations to report any error while reading a value from the database.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRow</doc>
+            <type name="Row" c:type="GdaRow*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue belonging to @row (obtained with 
gda_row_get_value()).</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="full" allow-none="1">
+            <doc xml:whitespace="preserve">the error which lead to the invalidation</doc>
+            <type name="GLib.Error" c:type="GError*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="value_is_valid" c:identifier="gda_row_value_is_valid">
+        <doc xml:whitespace="preserve">Tells if @value has been marked as being invalid by 
gda_row_invalidate_value().
+This method is mainly used by database
+providers' implementations to report any error while reading a value from the database.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @value is valid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRow.</doc>
+            <type name="Row" c:type="GdaRow*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue belonging to @row (obtained with 
gda_row_get_value()).</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="value_is_valid_e"
+              c:identifier="gda_row_value_is_valid_e"
+              version="4.2.10"
+              throws="1">
+        <doc xml:whitespace="preserve">Tells if @value has been marked as being invalid by 
gda_row_invalidate_value().
+This method is mainly used by database
+providers' implementations to report any error while reading a value from the database.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @value is valid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaRow.</doc>
+            <type name="Row" c:type="GdaRow*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue belonging to @row (obtained with 
gda_row_get_value()).</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="nb-values"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="RowPrivate" c:type="GdaRowPrivate*"/>
+      </field>
+    </class>
+    <record name="RowClass"
+            c:type="GdaRowClass"
+            glib:is-gtype-struct-for="Row">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="RowPrivate" c:type="GdaRowPrivate" disguised="1">
+    </record>
+    <constant name="SERVER_PROVIDER_UNDEFINED_LIMITING_THREAD"
+              value="1"
+              c:type="GDA_SERVER_PROVIDER_UNDEFINED_LIMITING_THREAD"
+              introspectable="0">
+      <type name="gpointer" c:type="gpointer"/>
+    </constant>
+    <constant name="SQLSTATE_GENERAL_ERROR"
+              value="HY000"
+              c:type="GDA_SQLSTATE_GENERAL_ERROR">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="SQLSTATE_NO_ERROR"
+              value="00000"
+              c:type="GDA_SQLSTATE_NO_ERROR">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <class name="ServerOperation"
+           c:symbol-prefix="server_operation"
+           c:type="GdaServerOperation"
+           parent="GObject.Object"
+           glib:type-name="GdaServerOperation"
+           glib:get-type="gda_server_operation_get_type"
+           glib:type-struct="ServerOperationClass">
+      <constructor name="new" c:identifier="gda_server_operation_new">
+        <doc xml:whitespace="preserve">IMPORTANT NOTE: Using this funtion is not the recommended way of 
creating a #GdaServerOperation object, the
+correct way is to use gda_server_provider_create_operation(); this method is reserved for the database 
provider's
+implementation.
+
+Creates a new #GdaServerOperation object from the @xml_file specifications
+
+The @xml_file must respect the DTD described in the "libgda-server-operation.dtd" file: its top
+node must be a &amp;lt;serv_op&amp;gt; tag.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaServerOperation object</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="op_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">type of operation</doc>
+            <type name="ServerOperationType" c:type="GdaServerOperationType"/>
+          </parameter>
+          <parameter name="xml_file" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a file which has the specifications for the GdaServerOperation 
object to create</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark"
+                c:identifier="gda_server_operation_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <function name="op_type_to_string"
+                c:identifier="gda_server_operation_op_type_to_string">
+        <doc xml:whitespace="preserve">Get a string version of @type</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a non %NULL string (do not free or modify)</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperationType value</doc>
+            <type name="ServerOperationType" c:type="GdaServerOperationType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="prepare_create_database"
+                c:identifier="gda_server_operation_prepare_create_database"
+                version="4.2.3"
+                throws="1">
+        <doc xml:whitespace="preserve">Creates a new #GdaServerOperation object which contains the 
specifications required
+to create a database. Once these specifications provided, use
+gda_server_operation_perform_create_database() to perform the database creation.
+
+If @db_name is left %NULL, then the name of the database to create will have to be set in the
+returned #GdaServerOperation using gda_server_operation_set_value_at().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">new #GdaServerOperation object, or %NULL if the provider does not 
support database creation</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="provider" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the database provider to use</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="db_name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the name of the database to create, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="prepare_create_table"
+                c:identifier="gda_server_operation_prepare_create_table"
+                version="4.2.3"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Add more arguments if the flag needs them:
+
+GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;string with the table's name referenced&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;an integer with the number pairs "local_field", "referenced_field"
+  used in the reference&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;Pairs of "local_field", "referenced_field" to use, must match
+   the number specified above.&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;a string with the action for ON DELETE; can be: "RESTRICT", "CASCADE",
+   "NO ACTION", "SET NULL" and "SET DEFAULT". Example: "ON UPDATE CASCADE".&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;a string with the action for ON UPDATE (see 
above).&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Create a #GdaServerOperation object using an opened connection, taking three
+arguments, a column's name the column's GType and #GdaServerOperationCreateTableFlag
+flag, you need to finish the list using %NULL.
+
+You'll be able to modify the #GdaServerOperation object to add custom options * to the operation. When 
finished call #gda_server_operation_perform_create_table
+or #gda_server_provider_perform_operation
+in order to execute the operation.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #GdaServerOperation if no errors; NULL and set @error 
otherwise</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="table_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the table to create</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store errors, or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="arg3" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="prepare_drop_database"
+                c:identifier="gda_server_operation_prepare_drop_database"
+                version="4.2.3"
+                throws="1">
+        <doc xml:whitespace="preserve">Creates a new #GdaServerOperation object which contains the 
specifications required
+to drop a database. Once these specifications provided, use
+gda_server_operation_perform_drop_database() to perform the database creation.
+
+If @db_name is left %NULL, then the name of the database to drop will have to be set in the
+returned #GdaServerOperation using gda_server_operation_set_value_at().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">new #GdaServerOperation object, or %NULL if the provider does not 
support database destruction</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="provider" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the database provider to use</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="db_name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the name of the database to drop, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="prepare_drop_table"
+                c:identifier="gda_server_operation_prepare_drop_table"
+                version="4.2.3"
+                throws="1">
+        <doc xml:whitespace="preserve">This is just a convenient function to create a #GdaServerOperation to 
drop a
+table in an opened connection.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaServerOperation or %NULL if couldn't create the 
opereration.</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cnc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opened connection</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="table_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the table to drop</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="string_to_op_type"
+                c:identifier="gda_server_operation_string_to_op_type"
+                version="4.2">
+        <doc xml:whitespace="preserve">Performs the reverse of gda_server_operation_op_type_to_string()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GdaServerOperationType represented by @str, or #G_MAXINT if 
@str is not a valid representation of a #GdaServerOperationType</doc>
+          <type name="ServerOperationType" c:type="GdaServerOperationType"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="seq_item_added">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="seq_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="item_index" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="seq_item_remove">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="seq_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="item_index" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_item_to_sequence"
+              c:identifier="gda_server_operation_add_item_to_sequence">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the index of the new entry in the sequence (like 5 for example if a 
6th item has been added to the sequence.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="seq_path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the path to the sequence to which an item must be added (like 
"/SEQ_NAME" for instance)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="del_item_from_sequence"
+              c:identifier="gda_server_operation_del_item_from_sequence">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the specified node has been removed from the sequence</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="item_path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the path to the sequence's item to remove (like "/SEQ_NAME/5" for 
instance)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_node_info"
+              c:identifier="gda_server_operation_get_node_info"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get information about the node identified by @path. The returned 
#GdaServerOperationNode structure can be 
+copied but not modified; it may change or cease to exist if @op changes</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaServerOperationNode structure, or %NULL if the node was not 
found</doc>
+          <type c:type="GdaServerOperationNode*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path_format" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/") as a format string, 
similar to g_strdup_printf()'s argument</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_node_parent"
+              c:identifier="gda_server_operation_get_node_parent">
+        <doc xml:whitespace="preserve">Get the complete path to the parent of the node defined by @path</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string or %NULL if the node does not have any parent or does 
not exist.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_node_path_portion"
+              c:identifier="gda_server_operation_get_node_path_portion">
+        <doc xml:whitespace="preserve">Get the last part of @path</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, or %NULL if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_node_type"
+              c:identifier="gda_server_operation_get_node_type">
+        <doc xml:whitespace="preserve">Convenience function to get the type of a node.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of node, or GDA_SERVER_OPERATION_NODE_UNKNOWN if the node 
was not found</doc>
+          <type name="ServerOperationNodeType"
+                c:type="GdaServerOperationNodeType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="status" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a place to store the status of the node, or %NULL</doc>
+            <type name="ServerOperationNodeStatus"
+                  c:type="GdaServerOperationNodeStatus*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_op_type"
+              c:identifier="gda_server_operation_get_op_type">
+        <doc xml:whitespace="preserve">Get the type of operation @op is for</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaServerOperationType enum</doc>
+          <type name="ServerOperationType" c:type="GdaServerOperationType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_root_nodes"
+              c:identifier="gda_server_operation_get_root_nodes">
+        <doc xml:whitespace="preserve">Get an array of strings containing the paths of nodes situated at the 
root of @op.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new array, which must be freed with g_strfreev().</doc>
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sequence_item_names"
+              c:identifier="gda_server_operation_get_sequence_item_names">
+        <doc xml:whitespace="preserve">Fetch the contents of a sequence. @path can describe either a 
sequence (for example "/SEQNAME") or an item in a sequence
+(for example "/SEQNAME/3")</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a array of strings containing the complete paths of the nodes 
contained at @path (free with g_strfreev())</doc>
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a sequence node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sequence_max_size"
+              c:identifier="gda_server_operation_get_sequence_max_size">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the maximum number of items in the sequence at @path, or 0 if @path 
is not a sequence node</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a sequence node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sequence_min_size"
+              c:identifier="gda_server_operation_get_sequence_min_size">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the minimum number of items in the sequence at @path, or 0 if @path 
is not a sequence node</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a sequence node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sequence_name"
+              c:identifier="gda_server_operation_get_sequence_name">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the sequence at @path</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a sequence node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sequence_size"
+              c:identifier="gda_server_operation_get_sequence_size">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of items in the sequence at @path, or 0 if @path is not 
a sequence node</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a sequence node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sql_identifier_at"
+              c:identifier="gda_server_operation_get_sql_identifier_at"
+              shadowed-by="get_sql_identifier_at_path"
+              version="4.0.3"
+              introspectable="0">
+        <doc xml:whitespace="preserve">This method is similar to gda_server_operation_get_value_at(), but 
for SQL identifiers: a new string
+is returned instead of a #GValue. Also the returned string is assumed to represents an SQL identifier
+and will correctly be quoted to be used with @cnc, or @prov if @cnc is %NULL (a generic quoting rule
+will be applied if both are %NULL).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, or %NULL if the value is undefined or if the @path is 
not defined or @path does not hold any value, or if the value held is not a string (in that last case a 
warning is shown).</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection, or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="prov" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaServerProvider, or %NULL</doc>
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </parameter>
+          <parameter name="path_format" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg4" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sql_identifier_at_path"
+              c:identifier="gda_server_operation_get_sql_identifier_at_path"
+              shadows="get_sql_identifier_at"
+              version="4.2.6">
+        <doc xml:whitespace="preserve">This method is similar to gda_server_operation_get_value_at(), but 
for SQL identifiers: a new string
+is returned instead of a #GValue. Also the returned string is assumed to represents an SQL identifier
+and will correctly be quoted to be used with @cnc, or @prov if @cnc is %NULL (a generic quoting rule
+will be applied if both are %NULL).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string, or %NULL if the value is undefined or if the @path is 
not defined or @path does not hold any value, or if the value held is not a string (in that last case a 
warning is shown).</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection, or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="prov" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaServerProvider, or %NULL</doc>
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_at"
+              c:identifier="gda_server_operation_get_value_at"
+              shadowed-by="get_value_at_path"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the value for the node at the path formed using @path_format and 
... (the rules are the same as
+for g_strdup_printf())</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a constant #GValue if a value has been defined, or %NULL if the 
value is undefined or if the @path is not defined or @path does not hold any value.</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path_format" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg2" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_at_path"
+              c:identifier="gda_server_operation_get_value_at_path"
+              shadows="get_value_at"
+              version="4.2.6">
+        <doc xml:whitespace="preserve">Get the value for the node at the @path path</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a constant #GValue if a value has been defined, or %NULL if the 
value is undefined or if the @path is not defined or @path does not hold any value.</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_valid"
+              c:identifier="gda_server_operation_is_valid"
+              throws="1">
+        <doc xml:whitespace="preserve">Tells if all the required values in @op have been defined.
+
+if @xml_file is not %NULL, the validity of @op is tested against that specification, 
+and not against the current @op's specification.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @op is valid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation widget</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="xml_file" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">an XML specification file (see gda_server_operation_new()) or 
%NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_data_from_xml"
+              c:identifier="gda_server_operation_load_data_from_xml"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads the contents of @node into @op. The XML tree passed through the 
@node
+argument must correspond to an XML tree saved using gda_server_operation_save_data_to_xml().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #xmlNodePtr</doc>
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perform_create_database"
+              c:identifier="gda_server_operation_perform_create_database"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Creates a new database using the specifications in @op. @op can be 
obtained using
+gda_server_provider_create_operation(), or gda_server_operation_prepare_create_database().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred and the database has been created, FALSE 
otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object obtained using 
gda_server_operation_prepare_create_database()</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="provider" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the database provider to use, or %NULL if @op has been created 
using gda_server_operation_prepare_create_database()</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perform_create_table"
+              c:identifier="gda_server_operation_perform_create_table"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Performs a prepared #GdaServerOperation to create a table. This could 
perform
+an operation created by #gda_server_operation_prepare_create_table or any other using the
+the #GdaServerOperation API.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the table was created; FALSE and set @error otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a valid #GdaServerOperation</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="perform_drop_database"
+              c:identifier="gda_server_operation_perform_drop_database"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Destroys an existing database using the specifications in @op. @op 
can be obtained using
+gda_server_provider_create_operation(), or gda_server_operation_prepare_drop_database().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if no error occurred and the database has been destroyed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object obtained using 
gda_server_operation_prepare_drop_database()</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="provider" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the database provider to use, or %NULL if @op has been created 
using gda_server_operation_prepare_drop_database()</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perform_drop_table"
+              c:identifier="gda_server_operation_perform_drop_table"
+              version="4.2.3"
+              throws="1">
+        <doc xml:whitespace="preserve">This is just a convenient function to perform a drop a table 
operation.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the table was dropped</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="save_data_to_xml"
+              c:identifier="gda_server_operation_save_data_to_xml"
+              introspectable="0"
+              throws="1">
+        <doc xml:whitespace="preserve">Creates a new #xmlNodePtr tree which can be used to save the #op 
object. This
+XML structure can then be saved to disk if necessary. Use xmlFreeNode to free
+the associated memory when not needed anymore.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #xmlNodePtr structure, or %NULL</doc>
+          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_value_at"
+              c:identifier="gda_server_operation_set_value_at"
+              shadowed-by="set_value_at_path"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Set the value for the node at the path formed using @path_format and 
the ... ellipse (the rules are the same as
+for g_strdup_printf()). 
+
+Note that trying to set a value for a path which is not used by the current
+provider, such as "/TABLE_OPTIONS_P/TABLE_ENGINE" for a PostgreSQL connection (this option is only supported 
for MySQL), 
+will &lt;emphasis&gt;not&lt;/emphasis&gt; generate
+any error; this allows one to give values to a superset of the parameters and thus use the same code for 
several providers.
+
+Here are the possible formats of @path_format:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;If the path corresponds to a #GdaHolder, then the parameter is set to 
&lt;![CDATA["@value"]]&gt;&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;If the path corresponds to a sequence item like for example 
"/SEQUENCE_NAME/5/NAME" for
+    the "NAME" value of the 6th item of the "SEQUENCE_NAME" sequence then:
+    &lt;itemizedlist&gt;
+       &lt;listitem&gt;&lt;para&gt;if the sequence already has 6 or more items, then the value is just set 
to the corresponding 
+          value in the 6th item of the sequence&lt;/para&gt;&lt;/listitem&gt;
+       &lt;listitem&gt;&lt;para&gt;if the sequence has less then 6 items, then items are added up to the 6th 
one before setting
+          the value to the corresponding in the 6th item of the sequence&lt;/para&gt;&lt;/listitem&gt;
+    &lt;/itemizedlist&gt;
+ &lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;If the path corresponds to a #GdaDataModel, like for example 
"/ARRAY/@@COLUMN/5" for the value at the
+    6th row of the "COLUMN" column of the "ARRAY" data model, then:
+    &lt;itemizedlist&gt;
+       &lt;listitem&gt;&lt;para&gt;if the data model already contains 6 or more rows, then the value is just 
set&lt;/para&gt;&lt;/listitem&gt;
+       &lt;listitem&gt;&lt;para&gt;if the data model has less than 6 rows, then rows are added up to the 6th 
one before setting
+          the value&lt;/para&gt;&lt;/listitem&gt;
+    &lt;/itemizedlist&gt;
+ &lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a place to store errors or %NULL</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="path_format" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg4" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_at_path"
+              c:identifier="gda_server_operation_set_value_at_path"
+              shadows="set_value_at"
+              version="4.2.6"
+              throws="1">
+        <doc xml:whitespace="preserve">Set the value for the node at the path formed using @path_format and 
the ... ellipse (the rules are the same as
+for g_strdup_printf()). 
+
+Note that trying to set a value for a path which is not used by the current
+provider, such as "/TABLE_OPTIONS_P/TABLE_ENGINE" for a PostgreSQL connection (this option is only supported 
for MySQL), 
+will &lt;emphasis&gt;not&lt;/emphasis&gt; generate
+any error; this allows one to give values to a superset of the parameters and thus use the same code for 
several providers.
+
+Here are the possible formats of @path_format:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;If the path corresponds to a #GdaHolder, then the parameter is set to 
&lt;![CDATA["@value"]]&gt;&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;If the path corresponds to a sequence item like for example 
"/SEQUENCE_NAME/5/NAME" for
+    the "NAME" value of the 6th item of the "SEQUENCE_NAME" sequence then:
+    &lt;itemizedlist&gt;
+       &lt;listitem&gt;&lt;para&gt;if the sequence already has 6 or more items, then the value is just set 
to the corresponding 
+          value in the 6th item of the sequence&lt;/para&gt;&lt;/listitem&gt;
+       &lt;listitem&gt;&lt;para&gt;if the sequence has less then 6 items, then items are added up to the 6th 
one before setting
+          the value to the corresponding in the 6th item of the sequence&lt;/para&gt;&lt;/listitem&gt;
+    &lt;/itemizedlist&gt;
+ &lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;If the path corresponds to a #GdaDataModel, like for example 
"/ARRAY/@@COLUMN/5" for the value at the
+    6th row of the "COLUMN" column of the "ARRAY" data model, then:
+    &lt;itemizedlist&gt;
+       &lt;listitem&gt;&lt;para&gt;if the data model already contains 6 or more rows, then the value is just 
set&lt;/para&gt;&lt;/listitem&gt;
+       &lt;listitem&gt;&lt;para&gt;if the data model has less than 6 rows, then rows are added up to the 6th 
one before setting
+          the value&lt;/para&gt;&lt;/listitem&gt;
+    &lt;/itemizedlist&gt;
+ &lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no error occurred</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="op" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GdaServerOperation object</doc>
+            <type name="ServerOperation" c:type="GdaServerOperation*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a string</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a complete path to a node (starting with "/")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="connection"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Connection"/>
+      </property>
+      <property name="op-type"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="provider"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="ServerProvider"/>
+      </property>
+      <property name="spec-filename"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ServerOperationPrivate"
+              c:type="GdaServerOperationPrivate*"/>
+      </field>
+      <glib:signal name="sequence-item-added" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a new sequence item (from a sequence template) 
has been added</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="seq_path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the path to the new sequence item</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="item_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index (starting from 0) of the new sequence item in the 
sequence</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="sequence-item-remove" when="first">
+        <doc xml:whitespace="preserve">Gets emitted whenever a sequence item is about to be removed</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="seq_path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the path to the sequence item to be removed</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="item_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index (starting from 0) of the sequence item in the 
sequence</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ServerOperationClass"
+            c:type="GdaServerOperationClass"
+            glib:is-gtype-struct-for="ServerOperation">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="seq_item_added">
+        <callback name="seq_item_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="op" transfer-ownership="none">
+              <type name="ServerOperation" c:type="GdaServerOperation*"/>
+            </parameter>
+            <parameter name="seq_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="item_index" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="seq_item_remove">
+        <callback name="seq_item_remove">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="op" transfer-ownership="none">
+              <type name="ServerOperation" c:type="GdaServerOperation*"/>
+            </parameter>
+            <parameter name="seq_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="item_index" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gda_reserved1" introspectable="0">
+        <callback name="_gda_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved2" introspectable="0">
+        <callback name="_gda_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved3" introspectable="0">
+        <callback name="_gda_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_gda_reserved4" introspectable="0">
+        <callback name="_gda_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <bitfield name="ServerOperationCreateTableFlag"
+              c:type="GdaServerOperationCreateTableFlag">
+      <member name="nothing_flag"
+              value="1"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_NOTHING_FLAG">
+      </member>
+      <member name="pkey_flag"
+              value="2"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_PKEY_FLAG">
+      </member>
+      <member name="not_null_flag"
+              value="4"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_NOT_NULL_FLAG">
+      </member>
+      <member name="unique_flag"
+              value="8"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_UNIQUE_FLAG">
+      </member>
+      <member name="autoinc_flag"
+              value="16"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_AUTOINC_FLAG">
+      </member>
+      <member name="fkey_flag"
+              value="32"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG">
+      </member>
+      <member name="pkey_autoinc_flag"
+              value="18"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE_PKEY_AUTOINC_FLAG">
+      </member>
+    </bitfield>
+    <enumeration name="ServerOperationError" c:type="GdaServerOperationError">
+      <member name="object_name_error"
+              value="0"
+              c:identifier="GDA_SERVER_OPERATION_OBJECT_NAME_ERROR">
+      </member>
+      <member name="incorrect_value_error"
+              value="1"
+              c:identifier="GDA_SERVER_OPERATION_INCORRECT_VALUE_ERROR">
+      </member>
+      <member name="xml_error"
+              value="2"
+              c:identifier="GDA_SERVER_OPERATION_XML_ERROR">
+      </member>
+    </enumeration>
+    <enumeration name="ServerOperationNodeStatus"
+                 c:type="GdaServerOperationNodeStatus">
+      <member name="optional"
+              value="0"
+              c:identifier="GDA_SERVER_OPERATION_STATUS_OPTIONAL">
+      </member>
+      <member name="required"
+              value="1"
+              c:identifier="GDA_SERVER_OPERATION_STATUS_REQUIRED">
+      </member>
+      <member name="unknown"
+              value="2"
+              c:identifier="GDA_SERVER_OPERATION_STATUS_UNKNOWN">
+      </member>
+    </enumeration>
+    <enumeration name="ServerOperationNodeType"
+                 c:type="GdaServerOperationNodeType">
+      <member name="paramlist"
+              value="0"
+              c:identifier="GDA_SERVER_OPERATION_NODE_PARAMLIST">
+      </member>
+      <member name="data_model"
+              value="1"
+              c:identifier="GDA_SERVER_OPERATION_NODE_DATA_MODEL">
+      </member>
+      <member name="param"
+              value="2"
+              c:identifier="GDA_SERVER_OPERATION_NODE_PARAM">
+      </member>
+      <member name="sequence"
+              value="3"
+              c:identifier="GDA_SERVER_OPERATION_NODE_SEQUENCE">
+      </member>
+      <member name="sequence_item"
+              value="4"
+              c:identifier="GDA_SERVER_OPERATION_NODE_SEQUENCE_ITEM">
+      </member>
+      <member name="data_model_column"
+              value="5"
+              c:identifier="GDA_SERVER_OPERATION_NODE_DATA_MODEL_COLUMN">
+      </member>
+      <member name="unknown"
+              value="6"
+              c:identifier="GDA_SERVER_OPERATION_NODE_UNKNOWN">
+      </member>
+    </enumeration>
+    <record name="ServerOperationPrivate"
+            c:type="GdaServerOperationPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="ServerOperationType" c:type="GdaServerOperationType">
+      <member name="create_db"
+              value="0"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_DB">
+      </member>
+      <member name="drop_db"
+              value="1"
+              c:identifier="GDA_SERVER_OPERATION_DROP_DB">
+      </member>
+      <member name="create_table"
+              value="2"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_TABLE">
+      </member>
+      <member name="drop_table"
+              value="3"
+              c:identifier="GDA_SERVER_OPERATION_DROP_TABLE">
+      </member>
+      <member name="rename_table"
+              value="4"
+              c:identifier="GDA_SERVER_OPERATION_RENAME_TABLE">
+      </member>
+      <member name="add_column"
+              value="5"
+              c:identifier="GDA_SERVER_OPERATION_ADD_COLUMN">
+      </member>
+      <member name="drop_column"
+              value="6"
+              c:identifier="GDA_SERVER_OPERATION_DROP_COLUMN">
+      </member>
+      <member name="create_index"
+              value="7"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_INDEX">
+      </member>
+      <member name="drop_index"
+              value="8"
+              c:identifier="GDA_SERVER_OPERATION_DROP_INDEX">
+      </member>
+      <member name="create_view"
+              value="9"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_VIEW">
+      </member>
+      <member name="drop_view"
+              value="10"
+              c:identifier="GDA_SERVER_OPERATION_DROP_VIEW">
+      </member>
+      <member name="comment_table"
+              value="11"
+              c:identifier="GDA_SERVER_OPERATION_COMMENT_TABLE">
+      </member>
+      <member name="comment_column"
+              value="12"
+              c:identifier="GDA_SERVER_OPERATION_COMMENT_COLUMN">
+      </member>
+      <member name="create_user"
+              value="13"
+              c:identifier="GDA_SERVER_OPERATION_CREATE_USER">
+      </member>
+      <member name="alter_user"
+              value="14"
+              c:identifier="GDA_SERVER_OPERATION_ALTER_USER">
+      </member>
+      <member name="drop_user"
+              value="15"
+              c:identifier="GDA_SERVER_OPERATION_DROP_USER">
+      </member>
+      <member name="last" value="16" c:identifier="GDA_SERVER_OPERATION_LAST">
+      </member>
+    </enumeration>
+    <class name="ServerProvider"
+           c:symbol-prefix="server_provider"
+           c:type="GdaServerProvider"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="GdaServerProvider"
+           glib:get-type="gda_server_provider_get_type"
+           glib:type-struct="ServerProviderClass">
+      <function name="error_quark"
+                c:identifier="gda_server_provider_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <function name="load_file_contents"
+                c:identifier="gda_server_provider_load_file_contents">
+        <doc xml:whitespace="preserve">Loads and returns the contents of @filename, which is searched in 
several places
+This function should only be used by database provider's
+implementations</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string containing @filename's contents, or %NULL if not found 
or if an error occurred</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="inst_dir" transfer-ownership="none">
+            <doc xml:whitespace="preserve">directory where the database provider has been installed</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="data_dir" transfer-ownership="none">
+            <doc xml:whitespace="preserve">DATA directory to look for ($prefix/share)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the file to load</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="add_savepoint" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="begin_transaction" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="level" transfer-ownership="none">
+            <type name="TransactionIsolation"
+                  c:type="GdaTransactionIsolation"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cancel" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="task_id" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="close_connection">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="commit_transaction" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_connection" introspectable="0">
+        <return-value>
+          <type name="Connection" c:type="GdaConnection*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_operation"
+                      invoker="create_operation"
+                      throws="1">
+        <doc xml:whitespace="preserve">Creates a new #GdaServerOperation object which can be modified in 
order to perform the @type type of
+action. The @options can contain:
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;named values which ID is a path in the resulting GdaServerOperation object, to initialize 
some value&lt;/listitem&gt;
+ &lt;listitem&gt;named values which may change the contents of the GdaServerOperation, see &lt;link 
linkend="gda-server-op-information-std"&gt;this section&lt;/link&gt; for more information&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaServerOperation object, or %NULL in the provider does not 
support the @type type of operation or if an error occurred</doc>
+          <type name="ServerOperation" c:type="GdaServerOperation*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection object which will be used to perform an action, 
or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of operation requested</doc>
+            <type name="ServerOperationType" c:type="GdaServerOperationType"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a list of parameters or %NULL</doc>
+            <type name="Set" c:type="GdaSet*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_parser" invoker="create_parser">
+        <doc xml:whitespace="preserve">Creates a new #GdaSqlParser object which is adapted to @provider (and 
possibly depending on
+ cnc for the actual database version).
+
+If @prov does not have its own parser, then %NULL is returned, and a general SQL parser can be obtained
+using gda_sql_parser_new().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #GdaSqlParser object, or %NULL.</doc>
+          <type name="SqlParser" c:type="GdaSqlParser*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection, or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="delete_savepoint" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="escape_string" invoker="escape_string">
+        <doc xml:whitespace="preserve">Escapes @str for use within an SQL command (to avoid SQL injection 
attacks). Note that the returned value still needs
+to be enclosed in single quotes before being used in an SQL statement.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new string suitable to use in SQL statements</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GdaConnection object, or %NULL</doc>
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string to escape</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_data_handler" introspectable="0">
+        <return-value>
+          <type name="DataHandler" c:type="GdaDataHandler*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="g_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="dbms_type" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_database">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_def_dbms_type">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="provider" transfer-ownership="none">
+            <type name="ServerProvider" c:type="GdaServerProvider*"/>
+          </instance-parameter>
+          <parameter name="cnc" transfer-ownership="none">
+            <type name="Connection" c:type="GdaConnection*"/>
+          </parameter>
+          <parameter name="g_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_name" invoker="get_name">
+        <doc xml:wh