[libgdamm] Regenerated C documentation.



commit d9b59a7b5c11fd147936d8d61a8554f952d29335
Author: Murray Cumming <murrayc murrayc com>
Date:   Sat Oct 16 15:21:58 2010 +0200

    Regenerated C documentation.
    
    * libgda/src/libgda_docs.xml: Regenerated with docextract_to_xml.py.

 ChangeLog                  |    6 +
 libgda/src/libgda_docs.xml | 9012 ++++++++++++++++++++++++++++++++------------
 2 files changed, 6657 insertions(+), 2361 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 526f8fc..3f7904d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-10-16  Murray Cumming  <murrayc murrayc com>
 
+	Regenerated C documentation.
+
+	* libgda/src/libgda_docs.xml: Regenerated with docextract_to_xml.py.
+
+2010-10-16  Murray Cumming  <murrayc murrayc com>
+
 	Added some methods.
 
 	* libgda/src/libgda_methods.defs: Regenerated with h2defs.py.
diff --git a/libgda/src/libgda_docs.xml b/libgda/src/libgda_docs.xml
index 73ee623..fffc481 100644
--- a/libgda/src/libgda_docs.xml
+++ b/libgda/src/libgda_docs.xml
@@ -1,8 +1,30 @@
 <root>
+<function name="gda_set_get_nth_holder">
+<description>
+Finds a #GdaHolder using its position
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="set">
+<parameter_description> a #GdaSet object
+</parameter_description>
+</parameter>
+<parameter name="pos">
+<parameter_description> the position of the requested #GdaHolder, starting at %0
+</parameter_description>
+</parameter>
+</parameters>
+<return> the requested #GdaHolder or %NULL
+
+</return>
+</function>
+
 <function name="gda_sql_select_field_new">
 <description>
 Creates a new #GdaSqlSelectField structure and sets its parent to @parent. A
-#GdaSqlSelectField is any expression in SELECT statements before the FROM clausure.
+#GdaSqlSelectField is any expression in SELECT statements before the FROM clause.
 
 
 </description>
@@ -18,7 +40,7 @@ Creates a new #GdaSqlSelectField structure and sets its parent to @parent. A
 
 <function name="gda_sql_select_order_serialize">
 <description>
-Creates a new string description of the ORDER BY clausure used in a SELECT statement.
+Creates a new string description of the ORDER BY clause used in a SELECT statement.
 
 
 </description>
@@ -32,9 +54,35 @@ Creates a new string description of the ORDER BY clausure used in a SELECT state
 </return>
 </function>
 
+<function name="gda_quark_list_new_from_string">
+<description>
+Creates a new #GdaQuarkList given a string.
+
+ string must be a semi-colon separated list of &quot;&lt;key&gt;=&lt;value&gt;&quot; strings (for example
+&quot;DB_NAME=notes;USERNAME=alfred&quot;). Each key and value must respect the RFC 1738 recommendations: the
+&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;`;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
+&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
+&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character (for example the
+&quot;DB_NAME=notes;USERNAME=al%%20fred&quot; string will specify a username as &quot;al fred&quot;). If this formalism
+is not respected, then some unexpected results may occur.
+
+
+</description>
+<parameters>
+<parameter name="string">
+<parameter_description> a string.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the newly created #GdaQuarkList.
+
+Free-function: gda_quark_list_free
+</return>
+</function>
+
 <function name="gda_connection_get_prepared_statement">
 <description>
-Retreives a pointer to an object representing a prepared statement for @gda_stmt within @cnc. The
+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().
 
 
@@ -53,6 +101,25 @@ association must have been done using gda_connection_add_prepared_statement().
 </return>
 </function>
 
+<function name="gda_server_operation_add_item_to_sequence">
+<description>
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
+</parameter_description>
+</parameter>
+<parameter name="seq_path">
+<parameter_description> the path to the sequence to which an item must be added (like &quot;/SEQ_NAME&quot; for instance)
+</parameter_description>
+</parameter>
+</parameters>
+<return> the index of the new entry in the sequence (like 5 for example if a 6th item has
+been added to the sequence.
+</return>
+</function>
+
 <function name="gda_connection_rollback_savepoint">
 <description>
 Rollback all the modifications made after the SAVEPOINT named @name.
@@ -81,13 +148,13 @@ Rollback all the modifications made after the SAVEPOINT named @name.
 <description>
 This is a factory method to get a unique instance of a #GdaSqlParser object
 for each #GdaServerProvider object
-Don&apos;t unref() it.
+Don't unref it.
 
 
 </description>
 <parameters>
 <parameter name="prov">
-<parameter_description>
+<parameter_description> a #GdaServerProvider
 </parameter_description>
 </parameter>
 </parameters>
@@ -95,15 +162,108 @@ Don&apos;t unref() it.
 </return>
 </function>
 
-<function name="gda_mutex_unlock">
+<function name="gda_tree_update_all">
 <description>
-Unlocks @m. If another thread is blocked in a gda_mutex_lock() call for @m, it will be woken and can lock @m itself.
-This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing. 
+Requests that @tree be populated with nodes. If an error occurs, then @tree's contents is left
+unchanged, and otherwise @tree's previous contents is completely replaced by the new one.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="m">
-<parameter_description> a #GdaMutex
+<parameter name="tree">
+<parameter_description> a #GdaTree object
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred.
+
+</return>
+</function>
+
+<function name="gda_sql_table_take_name">
+<description>
+Sets the table's name using the string held by @value. When call, @value is freed using
+gda_value_free().
+
+
+</description>
+<parameters>
+<parameter name="field">
+<parameter_description> a #GdaSqlTable structure
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue holding a string to take from
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_repetitive_statement_get_template_set">
+<description>
+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().
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="rstmt">
+<parameter_description> a #GdaRepetitiveStatement object
+</parameter_description>
+</parameter>
+<parameter name="set">
+<parameter_description> a place to store the returned template set
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store error, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE on success, %FALSE on error
+
+</return>
+</function>
+
+<function name="gda_config_dsn_needs_authentication">
+<description>
+Tells if the data source identified as @dsn_name needs any authentication. If a &lt;username&gt;
+and optionally a &lt;password&gt; are specified, they are ignored.
+
+
+</description>
+<parameters>
+<parameter name="dsn_name">
+<parameter_description> the name of a DSN, in the &quot;[&lt;username&gt;[:&lt;password&gt;] ]&lt;DSN&gt;&quot; format
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if an authentication is needed
+</return>
+</function>
+
+<function name="gda_sql_statement_delete_take_table_name">
+<description>
+Sets the name of the table to delete from in @stmt. @value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a table name as a G_TYPE_STRING #GValue 
 </parameter_description>
 </parameter>
 </parameters>
@@ -159,19 +319,26 @@ Adds a SAVEPOINT named @name.
 </return>
 </function>
 
-<function name="gda_sqlite_pstmt_get_type">
+<function name="gda_data_meta_wrapper_new">
 <description>
+Creates a new #GdaDataModel object which buffers the rows of @model. This object is useful
+only if @model can only be metaed using cursor based method.
+
 
 </description>
 <parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModel
+</parameter_description>
+</parameter>
 </parameters>
-<return> the #GType of GdaSqlitePStmt.
+<return> a pointer to the newly created #GdaDataModel.
 </return>
 </function>
 
 <function name="gda_attributes_manager_clear">
 <description>
-Remove all the attributes managed by @mgr for the @ptr ressource.
+Remove all the attributes managed by @mgr for the @ptr resource.
 
 </description>
 <parameters>
@@ -180,7 +347,53 @@ Remove all the attributes managed by @mgr for the @ptr ressource.
 </parameter_description>
 </parameter>
 <parameter name="ptr">
-<parameter_description> a pointer to the ressources for which all the attributes will be removed
+<parameter_description> a pointer to the resources for which all the attributes will be removed
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_sql_param_spec_take_name">
+<description>
+Sets @pspec's name. @value's ownership is transferred to
+ pspec (which means @pspec is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a #GdaSqlParamSpec pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_sql_builder_add_field_value_as_gvalue">
+<description>
+Valid only for: INSERT, UPDATE statements.
+
+Specifies that the field represented by @field_name will be set to the value identified
+by @value
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="field_name">
+<parameter_description> a field name
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> value to set the field to, or %NULL or a GDA_TYPE_NULL value to represent an SQL NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -207,7 +420,7 @@ Sets the auto increment flag for the given column.
 
 <function name="gda_sql_expr_copy">
 <description>
-Creates a new #GdaSqlExpr structure initated with the values stored in @expr.
+Creates a new #GdaSqlExpr structure initiated with the values stored in @expr.
 
 
 </description>
@@ -242,7 +455,7 @@ types. Using gda_data_model_array_new_with_g_types() is usually better.
 <description>
 Get the value associated to a named attribute.
 
-Attributes can have any name, but Libgda proposes some default names, see &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
 
 
 </description>
@@ -281,6 +494,44 @@ can also be used in hash tables as a #GEqualFunc.
 </return>
 </function>
 
+<function name="gda_sql_builder_import_expression">
+<description>
+Imports the @expr into @builder.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr obtained using gda_sql_builder_export_expression()
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
+</return>
+</function>
+
+<function name="gda_sql_param_spec_copy">
+<description>
+Creates a copy of @pspec.
+
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> #GdaSqlParamSpec pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaSqlParamSpec
+</return>
+</function>
+
 <function name="gda_data_proxy_get_value_attributes">
 <description>
 Get the attributes of the value stored at (proxy_row, col) in @proxy, which
@@ -316,13 +567,17 @@ is an ORed value of #GdaValueAttribute flags
 </parameter_description>
 </parameter>
 </parameters>
-<return> @event&apos;s source. 
+<return> @event's source. 
 </return>
 </function>
 
 <function name="gda_data_model_get_row_from_values">
 <description>
-Returns: the requested row number, of -1 if not found
+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
+
 
 </description>
 <parameters>
@@ -347,7 +602,7 @@ Returns: the requested row number, of -1 if not found
 <description>
 Begins a distributed transaction (managed by @xa_trans). Please note that this phase may fail
 for some connections if a (normal) transaction is already started (this depends on the database
-provider being used), so it&apos;s better to avoid starting any (normal) transaction on any of the
+provider being used), so it's better to avoid starting any (normal) transaction on any of the
 connections registered with @xa_trans.
 
 
@@ -366,74 +621,84 @@ connections registered with @xa_trans.
 </return>
 </function>
 
-<function name="gda_data_model_iter_move_next_default">
+<function name="gda_sql_statement_compound_set_type">
 <description>
+Specifies @stmt's type of compound
 
 </description>
 <parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="type">
+<parameter_description> a #GdaSqlStatementCompoundType value
+</parameter_description>
+</parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_holder_get_bind">
+<function name="gda_data_model_iter_move_next_default">
 <description>
-Get the holder which makes @holder change its value when the holder&apos;s value is changed.
-
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder
-</parameter_description>
-</parameter>
 </parameters>
-<return> the #GdaHolder or %NULL
-</return>
+<return></return>
 </function>
 
-<function name="gda_insert_row_into_table_from_string">
+<function name="gda_tree_mgr_select_new">
 <description>
-This is just a convenient function to insert a row with the values given as arguments.
-The values must be strings that could be converted to the type in the corresponding
-column. Finish the list with NULL.
-
-The arguments must be pairs of column name followed by his value.
-
-The SQL command is like: 
-INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
+Creates a new #GdaTreeMgrSelect object which will add one tree node for each row in
+the #GdaDataModel resulting from the execution of @stmt.
 
+Since: 4.2
 
 </description>
 <parameters>
 <parameter name="cnc">
-<parameter_description> an opened connection
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
-<parameter name="table_name">
-<parameter_description>
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object representing a SELECT statement
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="params">
+<parameter_description> a #GdaSet object representing fixed parameters which are to be used when executing @stmt
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> a list of strings to be converted as value, finished by %NULL
+</parameters>
+<return> a new #GdaTreeManager object
+
+</return>
+</function>
+
+<function name="gda_sql_operation_new">
+<description>
+Creates a new #GdaSqlOperation structure and sets its parent to @parent.
+
+
+</description>
+<parameters>
+<parameter name="parent">
+<parameter_description> a #GdaSqlAnyPart structure
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred, and FALSE and set error otherwise
+<return> a new #GdaSqlOperation structure.
 </return>
 </function>
 
 <function name="gda_meta_store_get_attribute_value">
 <description>
-The #GdaMetaStore object maintains a list of (name,value) attributes (attributes names starting with a &apos;_&apos;
+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 to free that string. 
+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.
@@ -464,7 +729,7 @@ and @error will contain the GDA_META_STORE_ATTRIBUTE_NOT_FOUND_ERROR error code,
 
 <function name="gda_sql_select_target_take_table_name">
 <description>
-Sets the target to be a SELECT subquery setting target&apos;s expression to use
+Sets the target to be a SELECT subquery setting target's expression to use
 @stmt; after call this function the target owns @stmt, then you must not free it.
 
 </description>
@@ -481,6 +746,28 @@ Sets the target to be a SELECT subquery setting target&apos;s expression to use
 <return></return>
 </function>
 
+<function name="gda_sql_any_part_check_structure">
+<description>
+Checks for any error in @node's structure to make sure it is valid. This
+is the same as gda_sql_statement_check_structure() but for individual #GdaSqlAnyPart
+parts. This function is mainly for database provider's implementations
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GdaSqlAnyPart pointer
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+</return>
+</function>
+
 <function name="gda_data_handler_accepts_g_type">
 <description>
 Checks wether the GdaDataHandler is able to handle the gda type given as argument.
@@ -493,7 +780,7 @@ Checks wether the GdaDataHandler is able to handle the gda type given as argumen
 </parameter_description>
 </parameter>
 <parameter name="type">
-<parameter_description>
+<parameter_description> a #GType
 </parameter_description>
 </parameter>
 </parameters>
@@ -507,6 +794,9 @@ Parses @sql and creates a #GdaStatement statement from the first SQL statement c
 contains more than one statement, then the remaining part of the string is not parsed at all, and @remain (if
 not %NULL) will point at the first non parsed character.
 
+To include variables in the @sql string, see the
+&lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser's object description&lt;/link&gt;.
+
 
 </description>
 <parameters>
@@ -539,7 +829,7 @@ Creates a new #GdaSqlCase structure and sets its parent to @parent.
 </description>
 <parameters>
 <parameter name="parent">
-<parameter_description> a #GdaSqlExpr structure
+<parameter_description> a #GdaSqlAnyPart structure
 </parameter_description>
 </parameter>
 </parameters>
@@ -570,26 +860,47 @@ model, depending on its implementation
 <return></return>
 </function>
 
-<function name="gda_server_provider_split_update_query">
+<function name="gda_sql_identifier_split">
 <description>
-When an update query will affect N&amp;gt;1 rows, it can be refined into a new update query which can be executed N times wich
-will affect one row at a time. This is usefull for providers implementations when dealing with BLOBs where updating
-rows with a blob can be done only one row at a time.
-
-After execution, @out_select contains a new GdaQuery, or %NULL if it is not possible to create the update query.
+Splits @id into an array of it sub parts. @id's format has to be &quot;&lt;part&gt;[.&lt;part&gt;[...]]&quot; where
+each part is either a text surrounded by double quotes which can contain upper and lower cases or
+an SQL identifier in lower case.
 
-For example UPDATE blobs set name = ##/ *name:&apos;name&apos; type:gchararray* /, data = ##/ *name:&apos;theblob&apos; type:&apos;GdaBlob&apos;* / WHERE name= ##/ *name:&apos;oname&apos; type:gchararray* /
-will create (if &apos;id&apos; is a PK of the table to update):
-UPDATE blobs set name = ##/ *name:&apos;name&apos; type:gchararray* /, data = ##/ *name:&apos;theblob&apos; type:&apos;GdaBlob&apos;* / WHERE id= ##/ *name:&apos;oid&apos; type:gint* /
+For example the &lt;![CDATA[&quot;test.\&quot;ATable\&quot;&quot;]]&gt; string will result in the array: &lt;![CDATA[{&quot;test&quot;, &quot;\&quot;ATable\&quot;&quot;, NULL}]]&gt;
 
 
 </description>
 <parameters>
+<parameter name="id">
+<parameter_description> an SQL identifier
+</parameter_description>
+</parameter>
 </parameters>
-<return> TRUE if no error occurred.
+<return> a new %NULL-terminated array of strings, or NULL (use g_strfreev() to free the returned array)
 </return>
 </function>
 
+<function name="gda_sql_param_spec_take_type">
+<description>
+Sets @pspec's data type. @value's ownership is transferred to
+ pspec (which means @pspec is then responsible for freeing it when no longer needed).
+
+ value must represent a data type, as understood by gda_g_type_from_string().
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a #GdaSqlParamSpec pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_data_handler_get_sane_init_value">
 <description>
 Creates a new GValue which holds a sane initial value to be used if no value is specifically
@@ -603,7 +914,7 @@ provided. For example for a simple string, this would return a new value contain
 </parameter_description>
 </parameter>
 <parameter name="type">
-<parameter_description> 
+<parameter_description> a GTYpe
 </parameter_description>
 </parameter>
 </parameters>
@@ -611,47 +922,81 @@ provided. For example for a simple string, this would return a new value contain
 </return>
 </function>
 
-<function name="gda_vconnection_hub_foreach">
+<function name="gda_connection_point_available_event">
 <description>
-Call @func for each #GdaConnection represented in @hub.
+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(). This method is a drop-in replacament
+for gda_connection_event_new() which improves performances by reusing as much as possible
+#GdaConnectionEvent objects. Newly written database providers should use this method.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="hub">
-<parameter_description> a #GdaVconnectionHub connection
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
-<parameter name="func">
-<parameter_description> a #GdaVConnectionDataModelFunc function pointer
+<parameter name="type">
+<parameter_description> a #GdaConnectionEventType
 </parameter_description>
 </parameter>
-<parameter name="data">
-<parameter_description> data to pass to @cunc calls
+</parameters>
+<return> a pointer to the next available connection event, or %NULL if event should
+be ignored
+
+</return>
+</function>
+
+<function name="gda_tree_get_node_manager">
+<description>
+Get the #GdaTreeManager which created @node in @tree
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode present in @tree
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the #GdaTreeManager, or %NULL if @node is not present in @tree
+
+</return>
 </function>
 
-<function name="gda_config_list_dsn">
+<function name="gda_data_model_append_values">
 <description>
-Get a #GdaDataModel representing all the configured DSN, and keeping itself up to date with
-the changes in the declared DSN.
+Appends a row to the given data model. If any value in @values is actually %NULL, then 
+it is considered as a default value.
 
-The returned data model is composed of the following columns:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;DSN name&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Provider name&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Description&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Connection string&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Username if it exists&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+Upon errors -1 will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
 
 
 </description>
 <parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
+</parameter_description>
+</parameter>
+<parameter name="values">
+<parameter_description> #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).
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
-<return> a new #GdaDataModel
+<return> the number of the added row, or -1 if an error occurred
 </return>
 </function>
 
@@ -676,47 +1021,39 @@ blob is truncated from its previous length.
 </return>
 </function>
 
-<function name="gda_vconnection_data_model_add_model">
+<function name="gda_tree_manager_set_node_create_func">
 <description>
-Make @model appear as a table named @table_name in the @cnc connection (as if a
-&quot;CREATE TABLE...&quot; statement was executed, except that the data contained within @model
-is actually used when @table_name&apos;s contents is read or written).
+Sets the function to be called when a new node is being created by @manager. If @func is %NULL
+then each created node will be a #GdaTreeNode object.
 
-For a more general approach, see the gda_vconnection_data_model_add() method.
+Specifying a custom #GdaTreeManagerNodeFunc function for example allows one to use
+specialized sub-classed #GdaTreeNode objects.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaVconnectionDataModel connection
-</parameter_description>
-</parameter>
-<parameter name="model">
-<parameter_description> a #GdaDataModel
-</parameter_description>
-</parameter>
-<parameter name="table_name">
-<parameter_description> the name of the table
+<parameter name="manager">
+<parameter_description> a #GdaTreeManager tree manager object
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="func">
+<parameter_description> a #GdaTreeManagerNodeFunc function pointer, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
-</return>
+<return></return>
 </function>
 
 <function name="gda_handler_time_get_format">
 <description>
-Get a string representing the locale-dependant way to enter a date/time/datetime, using
+Get a string representing the locale-dependent way to enter a date/time/datetime, using
 a syntax suitable for the #GnomeDbFormatEntry widget
 
 
 </description>
 <parameters>
-<parameter name="hdl">
+<parameter name="dh">
 <parameter_description> a #GdaHandlerTime object
 </parameter_description>
 </parameter>
@@ -742,39 +1079,87 @@ no #GdaMetaDbObject structure must not be modified.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GSList list of pointers which must be destroyed after usage using g_slist_free().
+<return> 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.
 </return>
 </function>
 
-<function name="gda_server_operation_op_type_to_string">
+<function name="gda_quark_list_foreach">
 <description>
-Get a string version of @type
+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.
+
+</description>
+<parameters>
+<parameter name="qlist">
+<parameter_description> a #GdaQuarkList structure.
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to call for each key/value pair
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data to pass to the function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
 
+<function name="gda_tree_node_get_parent">
+<description>
+Get the #GdaTreeNode parent of @node in the #GdaTree node belongs to. If @node is at the top level,
+then this method return %NULL.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="type">
-<parameter_description>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode object
 </parameter_description>
 </parameter>
 </parameters>
-<return> a non %NULL string (do not free or modify)
+<return> the parent #GdaTreeNode
+
 </return>
 </function>
 
-<function name="gda_mutex_lock">
+<function name="gda_sql_select_target_take_table_alias">
 <description>
-Locks @m. If @m is already locked by another thread, the current thread will block until @m is unlocked by the other thread.
+Sets the target alias (AS) to the string held by @alias; after call
+this function @alias is freed.
 
-This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing.
+</description>
+<parameters>
+<parameter name="target">
+<parameter_description> a #GdaSqlSelectTarget structure
+</parameter_description>
+</parameter>
+<parameter name="alias">
+<parameter_description> a #GValue holding the alias string to take from
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
 
-Note: unlike g_mutex_lock(), the #GdaMutex is recursive, which means a thread can lock it several times (and has
-to unlock it as many times to actually unlock it).
+<function name="gda_sql_builder_select_group_by">
+<description>
+Valid only for: SELECT statements
+
+Adds the @expr_id expression to the GROUP BY clause's expressions list
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="m">
-<parameter_description> a #GdaMutex
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="expr_id">
+<parameter_description> the ID of the expression to set use in the GROUP BY clause, or 0 to unset any previous GROUP BY clause
 </parameter_description>
 </parameter>
 </parameters>
@@ -804,7 +1189,7 @@ column @col
 
 <function name="gda_sql_select_from_take_new_join">
 <description>
-Append @join to the joins in the FROM clausure and set @join&apos;s parent to
+Append @join to the joins in the FROM clause and set @join's parent to
 @from; after call this function @from owns @join then you must not free it.
 
 </description>
@@ -821,6 +1206,62 @@ Append @join to the joins in the FROM clausure and set @join&apos;s parent to
 <return></return>
 </function>
 
+<function name="gda_sql_statement_update_take_on_conflict">
+<description>
+Sets the name of the resolution conflict algorithm used by @stmt. @value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> name of the resolution conflict algorithm, as a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_insert_row_into_table_v">
+<description>
+ col_names and @values must have length (&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 &lt;table&gt; (&lt;column_name&gt; [,...]) VALUES (&lt;column_name&gt; = &lt;new_value&gt; [,...]).
+
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> an opened connection
+</parameter_description>
+</parameter>
+<parameter name="table">
+<parameter_description> table's name to insert into
+</parameter_description>
+</parameter>
+<parameter name="col_names">
+<parameter_description> a list of column names (as const gchar *)
+</parameter_description>
+</parameter>
+<parameter name="values">
+<parameter_description> a list of values (as #GValue)
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+</return>
+</function>
+
 <function name="gda_value_take_blob">
 <description>
 Stores @val into @value, but on the contrary to gda_value_set_blob(), the @blob
@@ -870,12 +1311,12 @@ statement was executed, except that no data gets destroyed as the associated dat
 Dumps a textual representation of the @model to the @to_stream stream
 
 The following environment variables can affect the resulting output:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_ROW_NUMBERS: if set, the first coulumn of the output will contain row numbers&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_ATTRIBUTES: if set, also dump the data model&apos;s columns&apos; types and value&apos;s attributes&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_TITLE: if set, also dump the data model&apos;s title&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_NULL_AS_EMPTY: if set, replace the &apos;NULL&apos; string with an empty string for NULL values &amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&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_DUMP_NULL_AS_EMPTY: if set, replace the 'NULL' string with an empty string for NULL values &lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 </description>
 <parameters>
@@ -891,139 +1332,158 @@ The following environment variables can affect the resulting output:
 <return></return>
 </function>
 
-<function name="gda_data_model_iter_set_value_at">
+<function name="gda_sql_builder_select_set_distinct">
 <description>
-Sets a value in @iter, at the column specified by @col
+Defines (if @distinct is %TRUE) or removes (if @distinct is %FALSE) a DISTINCT clause
+for a SELECT statement.
+
+If @distinct is %TRUE, then the ID of an expression can be specified as the @expr_id argument:
+if not %0, this is the expression used to apply the DISTINCT clause on (the resuting SQL
+will then usually be &quot;... DISTINCT ON &lt;expression&gt;...&quot;).
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="iter">
-<parameter_description> a #GdaDataModelIter object
-</parameter_description>
-</parameter>
-<parameter name="col">
-<parameter_description> the column number
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="value">
-<parameter_description> a #GValue (not %NULL)
+<parameter name="distinct">
+<parameter_description> set to %TRUE to have the DISTINCT requirement
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="expr_id">
+<parameter_description> the ID of the DISTINCT ON expression, or %0 if no expression is to be used. It is ignored
+if @distinct is %FALSE.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
-</return>
+<return></return>
 </function>
 
-<function name="gda_server_provider_get_version">
+<function name="gda_tree_node_get_node_attribute">
 <description>
-Get the version of the provider.
+Get the value associated to the attribute named @attribute for @node. The difference with gda_tree_node_fetch_attribute()
+is that gda_tree_node_fetch_attribute() will also query @node's parents (recursively up to the top level node) if
+the attribute is not set for @node.
 
+Attributes can have any name, but Libgda proposes some default names, 
+see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a #GdaServerProvider object.
+<parameter name="node">
+<parameter_description> a #GdaTreeNode
+</parameter_description>
+</parameter>
+<parameter name="attribute">
+<parameter_description> attribute name as a string
 </parameter_description>
 </parameter>
 </parameters>
-<return> a string containing the version identification.
-</return>
-</function>
-
-<function name="gda_server_provider_blob_list_for_delete">
-<description>
-Create a SELECT query from a DELETE query which lists all the BLOB fields in the
-query which will be deleted. This function is used by GdaServerProvider implementations
-when dealing with BLOB deletions.
-
-After execution, @out_select contains a new GdaQuery, or %NULL if the delete query does not have any
-BLOB to delete.
-
-For example DELETE FROM blobs WHERE id= ##/ *name:&apos;id&apos; type:gint* /
-will create:
-SELECT t1.data FROM blobs AS t1 WHERE id= ##/ *name:&apos;id&apos; type:gint* /
-
+<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @node
 
-</description>
-<parameters>
-</parameters>
-<return> TRUE if no error occurred.
 </return>
 </function>
 
-<function name="gda_sql_select_target_serialize">
+<function name="gda_holder_force_invalid">
 <description>
-Creates a new string representing a target used in a SELECT statement
-after the FROM clausure.
+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.
 
 </description>
 <parameters>
-<parameter name="target">
-<parameter_description> a #GdaSqlSelectTarget structure
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string with the description of the expression or &quot;null&quot; in case @field is invalid.
-</return>
+<return></return>
 </function>
 
-<function name="gda_server_operation_get_root_nodes">
+<function name="gda_sql_builder_add_cond_v">
 <description>
-Get an array of strings containing the paths of nodes situated at the root of @op.
+Builds a new expression which reprenents a condition (or operation).
+
+As a side case, if @ops_ids_size is 1,
+then @op is ignored, and the returned ID represents @op_ids[0] (this avoids any problem for example
+when @op is GDA_SQL_OPERATOR_TYPE_AND and there is in fact only one operand).
 
+Since: 4.2
 
 </description>
 <parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
 <parameter name="op">
-<parameter_description> a #GdaServerOperation object
+<parameter_description> type of condition
+</parameter_description>
+</parameter>
+<parameter name="op_ids">
+<parameter_description> an array of ID for the arguments (not %0)
+</parameter_description>
+</parameter>
+<parameter name="op_ids_size">
+<parameter_description> size of @ops_ids
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new array, which must be freed with g_strfreev().
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
-<function name="gda_data_model_import_new_file">
+<function name="gda_connection_statement_execute_select_fullv">
 <description>
-Creates a new #GdaDataModel object which contains the data stored within the @filename file.
+Executes a selection command on the given connection.
 
-The options are the following ones:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;For the CSV format:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;ENCODING (string): specifies the encoding of the data in the file&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;SEPARATOR (string): specifies the CSV separator (comma as default)&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;QUOTE (string): specifies the character used to as quote park (double quote as default)&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;TITLE_AS_FIRST_LINE (boolean): consider that the first line of the file contains columns&apos; titles&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;G_TYPE_&amp;lt;column number&amp;gt; (GType): specifies the type of value expected in column &amp;lt;column number&amp;gt;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
-&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Other formats: no option&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+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.
 
 
 </description>
 <parameters>
-<parameter name="filename">
-<parameter_description> the file to import data from
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object.
 </parameter_description>
 </parameter>
-<parameter name="random_access">
-<parameter_description> TRUE if random access will be required
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object.
 </parameter_description>
 </parameter>
-<parameter name="options">
-<parameter_description> list of importing options
+<parameter name="params">
+<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
+</parameter_description>
+</parameter>
+<parameter name="model_usage">
+<parameter_description> specifies how the returned data model will be used as a #GdaStatementModelUsage enum
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store an error, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a (-1 terminated) list of (column number, GType) specifying for each column mentioned the GType
+of the column in the returned #GdaDataModel.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a pointer to the newly created #GdaDataModel.
+<return> a #GdaDataModel containing the data returned by the
+data source, or %NULL if an error occurred
 </return>
 </function>
 
@@ -1039,13 +1499,42 @@ added multiple times to a #GdaBatch object.
 </parameter_description>
 </parameter>
 <parameter name="stmt">
-<parameter_description> a statement to add to @batch&apos;s statements list
+<parameter_description> a statement to add to @batch's statements list
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
+<function name="gda_sql_any_part_foreach">
+<description>
+Calls a function for each element of a #GdaSqlAnyPart node
+
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> the stat node
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> function to call for each sub node
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @func each time it is called
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL (is also passed to @func)
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if @func has been called for any sub node of @node and always returned TRUE, or FALSE
+otherwise.
+</return>
+</function>
+
 <function name="gda_meta_store_new">
 <description>
 Create a new #GdaMetaStore object.
@@ -1053,7 +1542,7 @@ Create a new #GdaMetaStore object.
 
 </description>
 <parameters>
-<parameter name="string">
+<parameter name="cnc_string">
 <parameter_description> a connection string, or %NULL for an in-memory internal database
 </parameter_description>
 </parameter>
@@ -1062,6 +1551,76 @@ Create a new #GdaMetaStore object.
 </return>
 </function>
 
+<function name="gda_batch_get_parameters">
+<description>
+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.
+
+
+</description>
+<parameters>
+<parameter name="batch">
+<parameter_description> a #GdaBatch object
+</parameter_description>
+</parameter>
+<parameter name="out_params">
+<parameter_description> a place to store a new #GdaSet object, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred.
+</return>
+</function>
+
+<function name="gda_sql_builder_add_param">
+<description>
+Defines a parameter in @builder which may be reused to build other parts of a statement.
+
+The new expression will contain the @string literal.
+For example:
+&lt;programlisting&gt;
+gda_sql_builder_add_param (b, &quot;age&quot;, G_TYPE_INT, FALSE)
+&lt;/programlisting&gt;
+
+will be rendered as SQL as:
+&lt;programlisting&gt;&lt;![CDATA[
+##age::int
+]]&gt;
+&lt;/programlisting&gt;
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="param_name">
+<parameter_description> parameter's name
+</parameter_description>
+</parameter>
+<parameter name="type">
+<parameter_description> parameter's type
+</parameter_description>
+</parameter>
+<parameter name="nullok">
+<parameter_description> TRUE if the parameter can be set to %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
+</return>
+</function>
+
 <function name="gda_value_get_ushort">
 <description>
 
@@ -1101,6 +1660,40 @@ argument must correspond to an XML tree saved using gda_server_operation_save_da
 </return>
 </function>
 
+<function name="gda_sql_builder_select_add_field">
+<description>
+Valid only for: SELECT statements.
+
+Add a selected selected item to the SELECT statement.
+
+For non-SELECT statements, see gda_sql_builder_add_field_id().
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="field_name">
+<parameter_description> a field name
+</parameter_description>
+</parameter>
+<parameter name="table_name">
+<parameter_description> a table name, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="alias">
+<parameter_description> an alias (eg. for the &quot;AS&quot; clause), or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the added field, or %0 if there was an error
+
+</return>
+</function>
+
 <function name="gda_handler_string_new">
 <description>
 Creates a data handler for strings
@@ -1115,7 +1708,7 @@ Creates a data handler for strings
 
 <function name="gda_connection_get_provider_name">
 <description>
-Get the name (identifier) of the database provider used by @cnc
+Gets the name (identifier) of the database provider used by @cnc
 
 
 </description>
@@ -1147,23 +1740,36 @@ and modified, so they should not be used anymore afterwards.
 </return>
 </function>
 
-<function name="gda_data_proxy_row_is_deleted">
+<function name="gda_connection_statement_prepare">
 <description>
-Tells if the row number @proxy_row is marked to be deleted.
+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[&quot;SELECT * FROM ##tablename::string&quot;]]&gt; because database usually don't allow variables to be used in place of a 
+table name).
 
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
 </parameter_description>
 </parameter>
-<parameter name="proxy_row">
-<parameter_description> A proxy row number
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the row is marked to be deleted
+<return> TRUE if no error occurred.
 </return>
 </function>
 
@@ -1183,22 +1789,34 @@ Creates a new #GdaSqlField structure, using @parent as its parent part.
 </return>
 </function>
 
-<function name="gda_data_model_get_column_title">
+<function name="gda_timestamp_copy">
 <description>
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+</parameters>
+<return>
+</return>
+</function>
+
+<function name="gda_sql_statement_insert_take_fields_list">
+<description>
+Sets the list of fields for which values will be specified in @stmt. @list's 
+ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
 </parameter_description>
 </parameter>
-<parameter name="col">
-<parameter_description> column number.
+<parameter name="list">
+<parameter_description> a list of #GdaSqlField pointers
 </parameter_description>
 </parameter>
 </parameters>
-<return> the title for the given column in a data model object.
-</return>
+<return></return>
 </function>
 
 <function name="gda_sql_function_free">
@@ -1229,13 +1847,31 @@ Frees a #GdaSqlFunction structure and its members.
 </return>
 </function>
 
-<function name="BLOB">
+<function name="gda_virtual_connection_open_extended">
 <description>
+Creates and opens a new virtual connection using the @virtual_provider provider. If @options
+contains the %GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flag, then the returned connection will be
+a thread wrapped connection, and the actual (wrapped) virtual connection can be obtained through
+the &quot;gda-virtual-connection&quot; user property (use g_object_get_data() to get it).
+
 
 </description>
 <parameters>
+<parameter name="virtual_provider">
+<parameter_description> a #GdaVirtualProvider object
+</parameter_description>
+</parameter>
+<parameter name="options">
+<parameter_description> a set of options to specify the new connection
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
-<return></return>
+<return> a new #GdaConnection object, or %NULL if an error occurred
+</return>
 </function>
 
 <function name="gda_value_set_short">
@@ -1256,44 +1892,29 @@ Stores @val into @value.
 <return></return>
 </function>
 
-<function name="gda_quark_list_clear">
+<function name="gda_statement_check_structure">
 <description>
-Removes all strings in the given #GdaQuarkList.
+Checks that @stmt's structure is correct.
+
 
 </description>
 <parameters>
-<parameter name="qlist">
-<parameter_description> a #GdaQuarkList.
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
-</function>
-
-<function name="gda_server_provider_blob_list_for_update">
-<description>
-Create a SELECT query from an UPDATE query which lists all the BLOB fields in the
-query which will be updated. This function is used by GdaServerProvider implementations
-when dealing with BLOB updates.
-
-After execution, @out_select contains a new GdaQuery, or %NULL if the update query does not have any
-BLOB to update.
-
-For example UPDATE blobs set name = ##/ *name:&apos;name&apos; type:gchararray* /, data = ##/ *name:&apos;theblob&apos; type:&apos;GdaBlob&apos;* / WHERE id= ##/ *name:&apos;id&apos; type:gint* /
-will create:
-SELECT t1.data FROM blobs AS t1 WHERE id= ##/ *name:&apos;id&apos; type:gint* /
-
-
-</description>
-<parameters>
-</parameters>
-<return> TRUE if no error occurred.
+<return> TRUE if @stmt's structure is correct
 </return>
 </function>
 
 <function name="gda_set_get_node">
 <description>
-Finds a #GdaSetNode holding information for @holder, don&apos;t modify the returned structure
+Finds a #GdaSetNode holding information for @holder, don't modify the returned structure
 
 
 </description>
@@ -1307,7 +1928,7 @@ Finds a #GdaSetNode holding information for @holder, don&apos;t modify the retur
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaSetNode or %NULL
+<return> the requested #GdaSetNode or %NULL
 </return>
 </function>
 
@@ -1328,41 +1949,77 @@ Get the type of statement held by @stmt. It returns GDA_SQL_STATEMENT_NONE if
 </return>
 </function>
 
-<function name="gda_data_proxy_get_model">
+<function name="gda_holder_is_valid">
 <description>
-Get the #GdaDataModel which holds the unmodified (reference) data of @proxy
+Get the validity of @holder (that is, of the value held by @holder)
 
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GdaDataModel
+<return> TRUE if @holder's value can safely be used
 </return>
 </function>
 
-<function name="gda_holder_is_valid">
+<function name="gda_sql_builder_add_function_v">
 <description>
-Get the validity of @holder (that is, of the value held by @holder)
+Builds a new expression which represents a function applied to some arguments
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="func_name">
+<parameter_description> the functions's name
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> an array of IDs representing the function's arguments
+</parameter_description>
+</parameter>
+<parameter name="args_size">
+<parameter_description> @args's size
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
+</return>
+</function>
+
+<function name="gda_sql_builder_get_statement">
+<description>
+Creates a new #GdaStatement statement from @builder's contents.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @holder&apos;s value can safely be used
+<return> a new #GdaStatement object, or %NULL if an error occurred
+
 </return>
 </function>
 
 <function name="gda_holder_get_g_type">
 <description>
-Get @holder&apos;s type
+Get @holder's type
 
 
 </description>
@@ -1406,16 +2063,6 @@ destruction
 </return>
 </function>
 
-<function name="gda_server_provider_select_query_has_blobs">
-<description>
-Determines if @query (which must be a SELECT query) returns a data model with some BLOB data
-
-</description>
-<parameters>
-</parameters>
-<return></return>
-</function>
-
 <function name="gda_data_select_compute_row_selection_condition">
 <description>
 Offers the same features as gda_data_select_set_row_selection_condition() but the expression
@@ -1443,9 +2090,32 @@ if the table used does not have any primary key, then this method will fail
 </return>
 </function>
 
+<function name="gda_thread_wrapper_get_waiting_size">
+<description>
+Use this method to query the number of functions which have been queued to be executed
+but which have not yet been executed.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of jobs not yet executed
+
+</return>
+</function>
+
 <function name="gda_blob_op_write">
 <description>
-Writes a chunk of bytes from a @blob to the BLOB accessible through @op.
+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.
 
 
 </description>
@@ -1480,8 +2150,9 @@ Creates a new #GdaBlob structure from an existing one.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly allocated #GdaBlob which contains a copy of
-information in @boxed.
+<return> a newly allocated #GdaBlob which contains a copy of information in @boxed.
+
+Free-function: gda_blob_free
 </return>
 </function>
 
@@ -1542,7 +2213,7 @@ about the @params list of parameters.
 </parameter_description>
 </parameter>
 <parameter name="col_types">
-<parameter_description> an array of GType to request each returned #GdaDataModel&apos;s column&apos;s GType, terminated with the G_TYPE_NONE
+<parameter_description> 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.
 </parameter_description>
@@ -1559,11 +2230,14 @@ data source, or %NULL if an error occurred
 
 <function name="gda_data_model_set_values">
 <description>
-In a similar way to gda_data_model_set_value_at(), this method modifies a data model&apos;s contents
+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.
 
 
 </description>
@@ -1604,11 +2278,11 @@ may be %NULL)
 </parameter_description>
 </parameter>
 <parameter name="func">
-<parameter_description> a #GdaVConnectionDataModelFunc function pointer
+<parameter_description> a #GdaVconnectionDataModelFunc function pointer
 </parameter_description>
 </parameter>
 <parameter name="data">
-<parameter_description> data to pass to @cunc calls
+<parameter_description> data to pass to @func calls
 </parameter_description>
 </parameter>
 </parameters>
@@ -1635,24 +2309,35 @@ Find the #GdaDataModel object representing the @table_name table in @cnc
 </return>
 </function>
 
-<function name="gda_data_model_get_column_index">
+<function name="gda_transaction_status_find">
 <description>
-Get the index of the first column named @name in @model.
 
+</description>
+<parameters>
+</parameters>
+<return>
+</return>
+</function>
+
+<function name="gda_meta_store_set_identifiers_style">
+<description>
+Specifies how @store must handle SQL identifiers it has to store. This method is mainly used by
+database providers.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+<parameter name="store">
+<parameter_description> a #GdaMetaStore object
 </parameter_description>
 </parameter>
-<parameter name="name">
-<parameter_description> a column name
+<parameter name="style">
+<parameter_description> a style
 </parameter_description>
 </parameter>
 </parameters>
-<return> the column index, or -1 if no column named @name was found
-</return>
+<return></return>
 </function>
 
 <function name="gda_holder_take_value">
@@ -1661,12 +2346,12 @@ 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&apos;s value does not actually change).
+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 chaged and no signal is emitted.
+then @holder is not changed and no signal is emitted.
 
-Note1: if @holder can&apos;t accept the @value value, then this method returns FALSE, and @holder will be left
+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 &quot;validate-change&quot; signal will be emitted (the value
@@ -1675,7 +2360,7 @@ 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 &apos;old&apos; static GValue.
+take care of the 'old' static GValue.
 
 
 </description>
@@ -1697,10 +2382,34 @@ take care of the &apos;old&apos; static GValue.
 </return>
 </function>
 
+<function name="gda_sql_statement_select_take_limits">
+<description>
+Sets the LIMIT clause of @stmt
+
+ count and @offset's responsibility are transferred to
+ stmt (which means @stmt is then responsible for freeing them when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="count">
+<parameter_description> a #GdaSqlExpr pointer
+</parameter_description>
+</parameter>
+<parameter name="offset">
+<parameter_description> a #GdaSqlExpr pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_value_is_number">
 <description>
-Gets whether the value stored in the given #GValue is of
-numeric type or not.
+Gets whether the value stored in the given #GValue is of numeric type or not.
 
 
 </description>
@@ -1719,12 +2428,13 @@ numeric type or not.
 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&apos;s first row, then it can&apos;t be moved backwards
+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 &quot;current-row&quot; property
 is set to -1 (which means that gda_data_model_iter_is_valid() would return FALSE).
 
 If any other error occurred then the returned value is FALSE, but the &quot;current-row&quot;
-property is set to the new current row (one row less than it was before the call).
+property is set to the new current row (one row less than it was before the call).  In this case
+each #GdaHolder composing @iter for which an error occurred will be invalid (see gda_holder_is_valid()).
 
 
 </description>
@@ -1741,7 +2451,7 @@ property is set to the new current row (one row less than it was before the call
 <function name="gda_connection_internal_get_provider_data">
 <description>
 Get the opaque pointer previously set using gda_connection_internal_set_provider_data().
-If it&apos;s not set, then add a connection event and returns %NULL
+If it's not set, then add a connection event and returns %NULL
 
 
 </description>
@@ -1755,6 +2465,22 @@ If it&apos;s not set, then add a connection event and returns %NULL
 </return>
 </function>
 
+<function name="gda_sql_statement_serialize">
+<description>
+Creates a string representation of @stmt.
+
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new string
+</return>
+</function>
+
 <function name="gda_sql_function_serialize">
 <description>
 Creates a new string representing a function. You need to free the returned string
@@ -1789,6 +2515,8 @@ Makes a new #GValue of type #GDA_TYPE_BINARY with value @val.
 </parameter>
 </parameters>
 <return> the newly created #GValue.
+
+Free-function: gda_value_free
 </return>
 </function>
 
@@ -1810,18 +2538,26 @@ Informs @pstmt that it corresponds to the preparation of the @stmt statement
 <return></return>
 </function>
 
-<function name="gda_sql_operator_from_string">
+<function name="gda_meta_store_schema_get_depend_tables">
 <description>
-Returns: #GdaSqlOperatorType
+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.
+
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaSqlOperation structure
+<parameter name="store">
+<parameter_description> a #GdaMetaStore object
+</parameter_description>
+</parameter>
+<parameter name="table_name">
+<parameter_description> the name of the table for which all the dependencies must be listed
 </parameter_description>
 </parameter>
 </parameters>
-<return> #GdaSqlOperatorType
+<return> 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.
 </return>
 </function>
 
@@ -1848,6 +2584,8 @@ Returns: #GdaSqlOperatorType
 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.
+
 
 </description>
 <parameters>
@@ -1864,20 +2602,46 @@ but creates #GdaMetaDbObject for all the database object.
 </return>
 </function>
 
-<function name="gda_sql_table_take_name">
+<function name="gda_parse_sql_string">
 <description>
-Sets the table&apos;s name using the string holded by @value. When call, @value is freed using
-#gda_value_free().
+This function helps to parse a SQL witch use paramenters and store them at @params.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="field">
-<parameter_description> a #GdaSqlTable structure
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object, or %NULL
 </parameter_description>
 </parameter>
-<parameter name="value">
-<parameter_description> a #GValue holding a string to take from
+<parameter name="sql">
+<parameter_description> an SQL command to parse, not %NULL
+</parameter_description>
+</parameter>
+<parameter name="params">
+<parameter_description> a place to store a new #GdaSet, for parameters used in SQL command, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GdaStatement representing the SQL command, or %NULL if an error occurred
+
+</return>
+</function>
+
+<function name="gda_mutex_unlock">
+<description>
+Unlocks @mutex. If another thread is blocked in a gda_mutex_lock() call for @mutex, it wil
+be woken and can lock @mutex itself.
+This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing. 
+
+</description>
+<parameters>
+<parameter name="mutex">
+<parameter_description> a #GdaMutex
 </parameter_description>
 </parameter>
 </parameters>
@@ -1919,38 +2683,32 @@ Fetch the contents of a sequence. @path can describe either a sequence (for exam
 </return>
 </function>
 
-<function name="gda_server_provider_perform_operation_default">
+<function name="gda_time_valid">
 <description>
-Performs the operation described by @op, using the SQL from the rendering of the operation
-
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a #GdaServerProvider object
-</parameter_description>
-</parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object which will be used to perform an action, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store an error, or %NULL
+<parameter name="time">
+<parameter_description> a #GdaTime value to check if it is valid
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> #TRUE if #GdaTime is valid; %FALSE otherwise.
+
 </return>
 </function>
 
 <function name="gda_connection_batch_execute">
 <description>
 Executes all the statements contained in @batch (in the order in which they were added to @batch), and
-Returns: a list of #GObject objects
+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.
+
 
 </description>
 <parameters>
@@ -1975,10 +2733,31 @@ Returns: a list of #GObject objects
 </parameter_description>
 </parameter>
 </parameters>
-<return> a list of #GObject objects
+<return> a new list of #GObject objects
 </return>
 </function>
 
+<function name="gda_sql_statement_select_take_from">
+<description>
+Sets the FROM clause of @stmt
+
+ from's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="from">
+<parameter_description> a #GdaSqlSelectFrom pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_server_provider_value_to_sql_string">
 <description>
 Produces a fully quoted and escaped string from a GValue
@@ -2003,6 +2782,28 @@ Produces a fully quoted and escaped string from a GValue
 </return>
 </function>
 
+<function name="gda_meta_struct_new">
+<description>
+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.
+
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GdaMetaStore from which the new #GdaMetaStruct object will fetch information
+</parameter_description>
+</parameter>
+<parameter name="features">
+<parameter_description> the kind of extra information the new #GdaMetaStruct object will compute
+</parameter_description>
+</parameter>
+</parameters>
+<return> the newly created #GdaMetaStruct object
+</return>
+</function>
+
 <function name="gda_utility_holder_load_attributes">
 <description>
 Note: this method may set the &quot;source&quot; custom string property
@@ -2011,11 +2812,11 @@ Note: this method may set the &quot;source&quot; custom string property
 </description>
 <parameters>
 <parameter name="holder">
-<parameter_description>
+<parameter_description> a #GdaHolder
 </parameter_description>
 </parameter>
 <parameter name="node">
-<parameter_description> an xmlNodePtr with a &amp;lt;parameter&amp;gt; tag
+<parameter_description> an xmlNodePtr with a &lt;parameter&gt; tag
 </parameter_description>
 </parameter>
 <parameter name="sources">
@@ -2039,11 +2840,11 @@ Get a pointer to a read-only #GdaDsnInfo at the @index position
 </description>
 <parameters>
 <parameter name="index">
-<parameter_description>
+<parameter_description> an index
 </parameter_description>
 </parameter>
 </parameters>
-<return> the pointer or %NULL if no DSN exists at position @index
+<return>the pointer or %NULL if no DSN exists at position @index
 </return>
 </function>
 
@@ -2060,7 +2861,7 @@ table in an opened connection.
 </parameter_description>
 </parameter>
 <parameter name="table_name">
-<parameter_description>
+<parameter_description> name of the table to drop
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -2068,51 +2869,60 @@ table in an opened connection.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaServerOperation or NULL if couldn&apos;t create the opereration.
+<return> a new #GdaServerOperation or NULL if couldn't create the opereration.
 </return>
 </function>
 
+<function name="gda_tree_mgr_label_get_type">
+<description>
+Since: 4.2
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_server_provider_get_schema_nb_columns">
 <description>
+Deprecated: 4.2: This was a leftover from the pre 4.0 area
 
 </description>
 <parameters>
 <parameter name="schema">
-<parameter_description>
+<parameter_description> a #GdaConnectionSchema
 </parameter_description>
 </parameter>
 </parameters>
 <return> the number of columns the #GdaDataModel for the requested schema
 must have
+
 </return>
 </function>
 
-<function name="gda_sql_any_part_foreach">
+<function name="gda_server_provider_load_file_contents">
 <description>
-Calls a function for each element of a #GdaSqlAnyPart node
+Loads and returns the contents of @filename, which is searched in several places
+This function should only be used by database provider's
+implementations
 
 
 </description>
 <parameters>
-<parameter name="node">
-<parameter_description> the stat node
+<parameter name="inst_dir">
+<parameter_description> directory where the database provider has been installed
 </parameter_description>
 </parameter>
-<parameter name="func">
-<parameter_description> function to call for each sub node
+<parameter name="data_dir">
+<parameter_description> DATA directory to look for ($prefix/share)
 </parameter_description>
 </parameter>
-<parameter name="data">
-<parameter_description> data to pass to @func each time it is called
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL (is also passed to @func)
+<parameter name="filename">
+<parameter_description> name of the file to load
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @func has been called for any sub node of @node and always returned TRUE, or FALSE
-otherwise.
+<return> a new string containing @filename's contents, or %NULL if not found or if an error occurred
 </return>
 </function>
 
@@ -2132,30 +2942,53 @@ Creates a new #GdaDataModel object to list all the files starting from @basedir
 </return>
 </function>
 
-<function name="_gda_meta_store_finish_data_reset">
+<function name="gda_data_proxy_get_proxied_model_n_cols">
 <description>
-Commits any modification done since _gda_meta_store_begin_data_reset() was called.
+Get the number of columns in the proxied data model
 
 
 </description>
 <parameters>
-<parameter name="store">
-<parameter_description> a #GdaMetaStore object
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+</parameters>
+<return> the number of columns, or -1 if an error occurred
+</return>
+</function>
+
+<function name="gda_connection_internal_savepoint_added">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="parent_trans">
+<parameter_description> name of the parent transaction, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="svp_name">
+<parameter_description> savepoint's name, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
-</return>
+<return></return>
 </function>
 
 <function name="gda_batch_remove_statement">
 <description>
 Removes @stmt from the list of statements managed by @batch. If @stmt is present several
-times in @batch&apos;s statements&apos; list, then only the first one is removed.
+times in @batch's statements' list, then only the first one is removed.
 
 </description>
 <parameters>
@@ -2164,7 +2997,7 @@ times in @batch&apos;s statements&apos; list, then only the first one is removed
 </parameter_description>
 </parameter>
 <parameter name="stmt">
-<parameter_description> a statement to remove from @batch&apos;s statements list
+<parameter_description> a statement to remove from @batch's statements list
 </parameter_description>
 </parameter>
 </parameters>
@@ -2174,7 +3007,7 @@ times in @batch&apos;s statements&apos; list, then only the first one is removed
 <function name="gda_set_get_group">
 <description>
 Finds a #GdaSetGroup which lists a  #GdaSetNode containing @holder,
-don&apos;t modify the returned structure.
+don't modify the returned structure.
 
 
 </description>
@@ -2188,14 +3021,14 @@ don&apos;t modify the returned structure.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaSetGroup or %NULL
+<return> the requested #GdaSetGroup or %NULL
 </return>
 </function>
 
 <function name="gda_vconnection_data_model_add">
 <description>
 Create a new virtual table named @table_name in @cnc. The contents of that new table
-is dictated by what&apos;s in @spec.
+is dictated by what's in @spec.
 
 If there is just one #GdaDataModel to make appear as a table
 then the gda_vconnection_data_model_add_model() method is easier to use.
@@ -2228,6 +3061,63 @@ then the gda_vconnection_data_model_add_model() method is easier to use.
 </return>
 </function>
 
+<function name="gda_connection_async_statement_execute">
+<description>
+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).
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="params">
+<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
+</parameter_description>
+</parameter>
+<parameter name="model_usage">
+<parameter_description> in the case where @stmt is a SELECT statement, specifies how the returned data model will be used
+</parameter_description>
+</parameter>
+<parameter name="col_types">
+<parameter_description> an array of GType to request each returned #GdaDataModel's column's GType, terminated with the G_TYPE_NONE
+</parameter_description>
+</parameter>
+<parameter name="need_last_insert_row">
+<parameter_description> TRUE if the values of the last interted row must be computed
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> 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)
+
+</return>
+</function>
+
 <function name="gda_sql_table_serialize">
 <description>
 Creates a new string representing a table. You need to free the returned string
@@ -2250,13 +3140,13 @@ using g_free();
 Get a #GdaDataModel representing all the installed database providers.
 
 The returned data model is composed of the following columns:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Provider name&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Description&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;DSN parameters&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Authentication parameters&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;File name of the plugin&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&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;
 
 
 </description>
@@ -2269,7 +3159,8 @@ The returned data model is composed of the following columns:
 <function name="gda_default_escape_string">
 <description>
 Escapes @string to make it understandable by a DBMS. The escape method is very common and replaces any
-occurence of &quot;&apos;&quot; with &quot;&apos;&apos;&quot; and &quot;\&quot; with &quot;\\&quot;
+occurrence of &quot;'&quot; with &quot;''&quot; and &quot;\&quot; with &quot;\\&quot;
+
 
 </description>
 <parameters>
@@ -2278,54 +3169,72 @@ occurence of &quot;&apos;&quot; with &quot;&apos;&apos;&quot; and &quot;\&quot;
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new string
+</return>
 </function>
 
-<function name="gda_mutex_new">
+<function name="gda_data_model_import_new_xml_node">
 <description>
-Creates a new #GdaMutex.
-
-Note: Unlike g_mutex_new(), this function will return %NULL if g_thread_init() has not been called yet.
+Creates a new #GdaDataModel and loads the data in @node. The resulting data model
+can be accessed in a random way.
 
 
 </description>
 <parameters>
+<parameter name="node">
+<parameter_description> an XML node corresponding to a &lt;data-array&gt; tag
+</parameter_description>
+</parameter>
 </parameters>
-<return> a new #GdaMutex
+<return> a pointer to the newly created #GdaDataModel.
 </return>
 </function>
 
-<function name="gda_config_dsn_needs_auth">
+<function name="gda_batch_new">
 <description>
-Tells if the data source identified as @dsn_name needs any authentication. If a &amp;lt;username&amp;gt;
-and optionaly a &amp;lt;password&amp;gt; are specified, they are ignored.
+Creates a new #GdaBatch object
 
 
 </description>
 <parameters>
-<parameter name="dsn_name">
-<parameter_description> the name of a DSN, in the &quot;[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;DSN&amp;gt;&quot; format
-</parameter_description>
-</parameter>
 </parameters>
-<return> TRUE if an authentication is needed
+<return> the new object
 </return>
 </function>
 
-<function name="gda_config_get_provider_info">
+<function name="gda_connection_async_fetch_result">
 <description>
-Get some information about the a database provider (adaptator) named 
- provider_name
+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.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="provider_name">
-<parameter_description>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="task_id">
+<parameter_description> a task ID returned by gda_connection_async_statement_execute()
+</parameter_description>
+</parameter>
+<parameter name="last_insert_row">
+<parameter_description> a place to store a new #GdaSet object which contains the values of the last inserted row, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a pointer to read-only #GdaProviderInfo structure, or %NULL if not found
+<return> a #GObject, or %NULL if an error occurred
+
 </return>
 </function>
 
@@ -2352,7 +3261,7 @@ Same functionality as gda_holder_get_value() except that it returns the value as
 
 <function name="gda_holder_get_id">
 <description>
-Get the ID of @holder. The ID can be set using @holder&apos;s &quot;id&quot; property
+Get the ID of @holder. The ID can be set using @holder's &quot;id&quot; property
 
 
 </description>
@@ -2362,7 +3271,29 @@ Get the ID of @holder. The ID can be set using @holder&apos;s &quot;id&quot; pro
 </parameter_description>
 </parameter>
 </parameters>
-<return> the ID (don&apos;t modify the string).
+<return> the ID (don't modify the string).
+</return>
+</function>
+
+<function name="gda_sql_builder_add_sub_select">
+<description>
+Adds an expression which is a subselect.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="sqlst">
+<parameter_description> a pointer to a #GdaSqlStatement, which has to be a SELECT or compound SELECT. This will be copied.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
@@ -2378,11 +3309,36 @@ Creates a new #GdaNumeric structure from an existing one.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly allocated #GdaNumeric which contains a copy of
-information in @boxed.
+<return> a newly allocated #GdaNumeric which contains a copy of information in @boxed.
+
+Free-function: gda_numeric_free
 </return>
 </function>
 
+<function name="gda_tree_dump">
+<description>
+Dumps the contents of @tree to @stream, using a hierarchical view.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode to start the dump from, or %NULL for a full dump
+</parameter_description>
+</parameter>
+<parameter name="stream">
+<parameter_description> a stream to send the dump to, or %NULL for STDOUT
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_numeric_free">
 <description>
 Deallocates all memory associated to the given @boxed
@@ -2390,7 +3346,7 @@ Deallocates all memory associated to the given @boxed
 </description>
 <parameters>
 <parameter name="boxed">
-<parameter_description>
+<parameter_description> a #GdaNumeric pointer
 </parameter_description>
 </parameter>
 </parameters>
@@ -2407,87 +3363,77 @@ Deallocates all memory associated to the given @boxed
 </parameter_description>
 </parameter>
 </parameters>
-<return> the dbms_type of @column.
+<return> the database type of @column.
 </return>
 </function>
 
-<function name="gda_threader_new">
+<function name="gda_sql_statement_trans_take_mode">
 <description>
-Creates a new GdaThreader object. This object class is normally not instantiated
-directly but through child classes objects&apos; intantiation
+Sets the model of the transaction
 
+ value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING value
+</parameter_description>
+</parameter>
 </parameters>
-<return> the newly created object
-</return>
+<return></return>
 </function>
 
-<function name="gda_update_values_in_table">
+<function name="gda_set_get_source">
 <description>
-This is just a convenient function to update values in a table on a given column where
-the row is fitting the given condition.
-
-The SQL command is like: 
-UPDATE INTO table_name SET column1 = new_value1, column2 = new_value2 ... WHERE condition_column_name = condition
+Finds a #GdaSetSource which contains the #GdaDataModel restricting the possible values of
+ holder, don't modify the returned structure.
 
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> an opened connection
-</parameter_description>
-</parameter>
-<parameter name="table_name">
-<parameter_description> the name of the table where the update will be done
-</parameter_description>
-</parameter>
-<parameter name="condition_column_name">
-<parameter_description> the name of the column to used in the WHERE condition clause
-</parameter_description>
-</parameter>
-<parameter name="condition">
-<parameter_description> a GValue to used to find the values to be updated; it must correspond with the
-column&apos;s @GType
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="set">
+<parameter_description> a #GdaSet object
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> a list of string/@GValue pairs where the string is the name of the column to be 
-updated followed by the new @GValue to set, finished by %NULL
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> the requested #GdaSetSource or %NULL
 </return>
 </function>
 
-<function name="gda_data_select_set_row_selection_condition">
+<function name="gda_sql_builder_select_add_target_id">
 <description>
-Offers the same features as gda_data_select_set_row_selection_condition_sql() but using a #GdaSqlExpr
-structure instead of an SQL syntax.
+Adds a new target to a SELECT statement. If there already exists a target representing
+the same table and the same alias (or with the same absence of alias) then the same target
+ID is returned instead of the ID of a new target.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataSelect data model
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="expr">
-<parameter_description> a #GdaSqlExpr expression
+<parameter name="table_id">
+<parameter_description> the ID of the expression holding a table reference (not %0)
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="alias">
+<parameter_description> the alias to give to the target, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> the ID of the new (or existing) target, or %0 if there was an error
+
 </return>
 </function>
 
@@ -2496,7 +3442,7 @@ structure instead of an SQL syntax.
 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 reefrences to new rows and rows to be removed.
+the returned number also contains references to new rows and rows to be removed.
 
 
 </description>
@@ -2510,6 +3456,36 @@ the returned number also contains reefrences to new rows and rows to be removed.
 </return>
 </function>
 
+<function name="gda_data_proxy_is_read_only">
+<description>
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if the proxied data model is itself read-only
+</return>
+</function>
+
+<function name="gda_sql_statement_string_to_type">
+<description>
+Converts a string to a #GdaSqlStatementType value, see also gda_sql_statement_type_to_string()
+
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> a string representing a #GdaSqlStatementType type
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GdaSqlStatementType value
+</return>
+</function>
+
 <function name="gda_handler_type_new">
 <description>
 Creates a data handler for Gda types
@@ -2538,7 +3514,7 @@ Frees a #GdaSqlSelectJoin structure and its members.
 
 <function name="gda_sql_select_from_copy">
 <description>
-Creates a new #GdaSqlSelectFrom structure initated with the values stored in @from.
+Creates a new #GdaSqlSelectFrom structure initiated with the values stored in @from.
 
 
 </description>
@@ -2554,7 +3530,7 @@ Creates a new #GdaSqlSelectFrom structure initated with the values stored in @fr
 
 <function name="gda_data_select_compute_columns_attributes">
 <description>
-Computes correct attributes for each of @model&apos;s columns, which includes the &quot;NOT NULL&quot; attribute, the
+Computes correct attributes for each of @model's columns, which includes the &quot;NOT NULL&quot; attribute, the
 default value, the precision and scale for numeric values.
 
 
@@ -2585,7 +3561,7 @@ default value, the precision and scale for numeric values.
 
 <function name="gda_sql_select_target_copy">
 <description>
-Creates a new #GdaSqlSelectTarget structure initated with the values stored in @target.
+Creates a new #GdaSqlSelectTarget structure initiated with the values stored in @target.
 
 
 </description>
@@ -2602,11 +3578,11 @@ Creates a new #GdaSqlSelectTarget structure initated with the values stored in @
 <function name="gda_sql_statement_check_validity">
 <description>
 If @cnc is not %NULL, then checks that all the database objects referenced in the statement actually
-exist in the connection&apos;s database (for example the table being updated in a UPDATE statement must exist in the
-connection&apos;s database for the check to succeed). This method fills the @stmt-&amp;gt;validity_meta_struct attribute.
+exist in the connection's database (for example the table being updated in a UPDATE statement must exist in the
+connection's database for the check to succeed). This method fills the @stmt-&gt;validity_meta_struct attribute.
 
 If @cnc is %NULL, then remove any information from a previous call to this method stored in @stmt. In this case,
-the @stmt-&amp;gt;validity_meta_struct attribute is cleared.
+the @stmt-&gt;validity_meta_struct attribute is cleared.
 
 Also note that some parts of @stmt may be modified: for example leading and trailing spaces in aliases or
 objects names will be removed.
@@ -2636,11 +3612,11 @@ objects names will be removed.
 Dumps a textual representation of the @model into a new string
 
 The following environment variables can affect the resulting output:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_ROW_NUMBERS: if set, the first coulumn of the output will contain row numbers&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_TITLE: if set, also dump the data model&apos;s title&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_DATA_MODEL_DUMP_NULL_AS_EMPTY: if set, replace the &apos;NULL&apos; string with an empty string for NULL values &amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&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_DUMP_NULL_AS_EMPTY: if set, replace the 'NULL' string with an empty string for NULL values &lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 </description>
 <parameters>
@@ -2669,65 +3645,39 @@ Creates a new #GdaSqlSelectJoin structure and sets its parent to @parent.
 </return>
 </function>
 
-<function name="gda_server_operation_is_valid">
+<function name="gda_tree_node_get_children">
 <description>
-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 againts the current @op&apos;s specification.
+Get a list of all @node's children, free it with g_slist_free() after usage
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation widget
-</parameter_description>
-</parameter>
-<parameter name="xml_file">
-<parameter_description> an XML specification file (see gda_server_operation_new())
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store an error, or %NULL
+<parameter name="node">
+<parameter_description> a #GdaTreeNode object
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @op is valid
-</return>
-</function>
-
-<function name="gda_xa_transaction_string_to_id">
-<description>
-Creates a new #GdaXaTransactionId structure from its string representation, it&apos;s the opposite
-of gda_xa_transaction_id_to_string().
-
+<return> a new #GSList of #GdaTreeNode objects, or %NULL if @node does not have any child
 
-</description>
-<parameters>
-<parameter name="str">
-<parameter_description> a string representation of a #GdaXaTransactionId, in the &quot;gtrid,bqual,formatID&quot; format
-</parameter_description>
-</parameter>
-</parameters>
-<return> a new #GdaXaTransactionId structure, or %NULL in @str has a wrong format
 </return>
 </function>
 
 <function name="gda_holder_set_attribute">
 <description>
-Set the value associated to a named attribute. The @attribute string is &apos;stolen&apos; by this method, and
+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 &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
 
 For example one would use it as:
 
-&amp;lt;code&amp;gt;
+&lt;code&gt;
 gda_holder_set_attribute (holder, g_strdup (my_attribute), g_free, my_value);
 gda_holder_set_attribute (holder, GDA_ATTRIBUTE_NAME, NULL, my_value);
-&amp;lt;/code&amp;gt;
+&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.
@@ -2770,7 +3720,13 @@ Frees all the resssources managed by @mgr
 
 <function name="gda_meta_store_extract">
 <description>
-Extracts some data stored in @store using a custom SELECT query.
+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=&quot;information_schema:sql_identifiers&quot;&gt;meta data section about SQL identifiers&lt;/link&gt;.
 
 
 </description>
@@ -2789,7 +3745,7 @@ Extracts some data stored in @store using a custom SELECT query.
 </parameter>
 <parameter name="Varargs">
 <parameter_description> a list of (variable name (gchar *), GValue *value) terminated with NULL, representing values for all the
-variables mentionned in @select_sql. If there is no variable then this part can be omitted.
+variables mentioned in @select_sql. If there is no variable then this part can be omitted.
 </parameter_description>
 </parameter>
 </parameters>
@@ -2817,6 +3773,66 @@ Find the name of the table associated to @model in @cnc
 </return>
 </function>
 
+<function name="gda_data_proxy_row_has_changed">
+<description>
+Tells if the row number @proxy_row has changed
+
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+<parameter name="proxy_row">
+<parameter_description> A proxy row number
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if the row has changed
+</return>
+</function>
+
+<function name="gda_data_model_array_copy_model">
+<description>
+Makes a copy of @src into a new #GdaDataModelArray object
+
+
+</description>
+<parameters>
+<parameter name="src">
+<parameter_description> a #GdaDataModel to copy data from
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new data model, or %NULL if an error occurred
+</return>
+</function>
+
+<function name="gda_sql_builder_compound_add_sub_select">
+<description>
+Add a sub select to a COMPOUND statement
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="sqlst">
+<parameter_description> a pointer to a #GdaSqlStatement, which has to be a SELECT or compound SELECT. This will be copied.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_handler_string_new_with_provider">
 <description>
 Creates a data handler for strings, which will use some specific methods implemented
@@ -2884,7 +3900,7 @@ specifications
 </description>
 <parameters>
 <parameter name="xml_spec">
-<parameter_description> a #xmlNodePtr for a &amp;lt;holders&amp;gt; tag
+<parameter_description> a #xmlNodePtr for a &lt;holders&gt; tag
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -2896,9 +3912,27 @@ specifications
 </return>
 </function>
 
+<function name="gda_tree_node_new">
+<description>
+Creates a new #GdaTreeNode object
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="name">
+<parameter_description> a name, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaTreeNode
+
+</return>
+</function>
+
 <function name="gda_xa_transaction_new">
 <description>
-Creates a new #GdaXaTransaction object, which will control the processus of
+Creates a new #GdaXaTransaction object, which will control the process of
 performing a distributed transaction across several connections.
 
 
@@ -2917,35 +3951,80 @@ performing a distributed transaction across several connections.
 </return>
 </function>
 
-<function name="gda_holder_get_value">
+<function name="gda_data_model_array_new_with_g_types">
 <description>
-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.
+Creates a new #GdaDataModel object with the column types as
+specified.
 
-If @holder is set to NULL, then the returned value is a #GDA_TYPE_NULL GValue.
 
+</description>
+<parameters>
+<parameter name="cols">
+<parameter_description> number of columns for rows in this data model.
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> types of the columns of the model to create as #GType, as many as indicated by @cols
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to the newly created #GdaDataModel.
+</return>
+</function>
+
+<function name="gda_thread_wrapper_execute">
+<description>
+Make @wrapper execute the @func function with the @arg argument (along with a #GError which is not @error)
+in the sub thread managed by @wrapper. To execute a function which does not return anything,
+use gda_thread_wrapper_execute_void().
+
+This method returns immediately, and the caller then needs to use gda_thread_wrapper_fetch_result() to
+check if the execution has finished and get the result.
+
+Once @func's execution is finished, if it is not %NULL, the @arg_destroy_func destruction function is called
+on @arg. This occurs in the thread calling gda_thread_wrapper_fetch_result().
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to execute
+</parameter_description>
+</parameter>
+<parameter name="arg">
+<parameter_description> argument to pass to @func
+</parameter_description>
+</parameter>
+<parameter name="arg_destroy_func">
+<parameter_description> function to be called when the execution has finished, to destroy @arg
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, for errors occurring in this method, not errors occurring while @func
+is executed, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the value, or %NULL
+<return> the job ID, or 0 if an error occurred
+
 </return>
 </function>
 
 <function name="gda_data_proxy_set_filter_expr">
 <description>
 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&apos;s columns. For instance if @proxy has the &quot;id&quot; and
-&quot;name&quot; columns, then a filter can be &quot;length(name) &amp;lt; 5&quot; to filter only the rows where the length of the
-name is strictly inferior to 5, or &quot;id &amp;gt;= 1000 and id &amp;lt; 2000 order by name limit 50&quot; to filter only the rows where the id
+which can be any SQL valid expression using @proxy's columns. For instance if @proxy has the &quot;id&quot; and
+&quot;name&quot; columns, then a filter can be &quot;length(name) &lt; 5&quot; to filter only the rows where the length of the
+name is strictly inferior to 5, or &quot;id &gt;= 1000 and id &lt; 2000 order by name limit 50&quot; 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
-&quot;_&amp;lt;column number&amp;gt;&quot; with colmun numbers starting at 1.
+&quot;_&lt;column number&gt;&quot; 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).
@@ -2970,25 +4049,43 @@ Note that any previous filter expression is replaced with the new @filter_expr i
 </return>
 </function>
 
-<function name="gda_blob_to_string">
+<function name="gda_statement_to_sql_extended">
 <description>
-Converts all the non printable characters of blob-&amp;gt;data into the \xxx representation
-where xxx is the octal representation of the byte, and the &apos;\&apos; (backslash) character
-is converted to &quot;\\&quot;.
+Renders @stmt as an SQL statement, with some control on how it is rendered.
+
+If @cnc is not %NULL, then the rendered SQL will better be suited to be used by @cnc (in particular
+it may include some SQL tweaks and/or proprietary extensions specific to the database engine used by @cnc):
+in this case the result is similar to calling gda_connection_statement_to_sql().
 
 
 </description>
 <parameters>
-<parameter name="blob">
-<parameter_description> a correctly filled @GdaBlob structure
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
 </parameter_description>
 </parameter>
-<parameter name="maxlen">
-<parameter_description> a maximum len used to truncate, or 0 for no maximum length
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="params">
+<parameter_description> parameters contained in a single #GdaSet object
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> a set of flags to control the rendering
+</parameter_description>
+</parameter>
+<parameter name="params_used">
+<parameter_description>a place to store the list of actual #GdaHolder objects in @params used to do the rendering, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string from @blob
+<return> a new string if no error occurred
 </return>
 </function>
 
@@ -3001,6 +4098,9 @@ The @cols_trans is a hash table for which keys are @to columns numbers and the v
 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.
 
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
+
 
 </description>
 <parameters>
@@ -3013,7 +4113,7 @@ create an entry in the hash table with a negative value.
 </parameter_description>
 </parameter>
 <parameter name="overwrite">
-<parameter_description> TRUE if @to is completely overwritten by @from&apos;s data, and FALSE if @from&apos;s data is appended to @to
+<parameter_description> TRUE if @to is completely overwritten by @from's data, and FALSE if @from's data is appended to @to
 </parameter_description>
 </parameter>
 <parameter name="cols_trans">
@@ -3029,44 +4129,70 @@ create an entry in the hash table with a negative value.
 </return>
 </function>
 
-<function name="gda_meta_store_schema_get_depend_tables">
+<function name="gda_repetitive_statement_get_all_sets">
 <description>
+Get all the values sets which will have been added using gda_repetitive_statement_append_set().
 
-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.
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="rstmt">
+<parameter_description> a #GdaRepetitiveStatement object
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GSList of #GdaSet objects (free with g_slist_free()).
+
+</return>
+</function>
+
+<function name="gda_holder_set_source_model">
+<description>
+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.
 
 
 </description>
 <parameters>
-<parameter name="store">
-<parameter_description> a #GdaMetaStore object
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
 </parameter_description>
 </parameter>
-<parameter name="table_name">
-<parameter_description> the name of the table for which all the dependencies must be listed
+<parameter name="model">
+<parameter_description> a #GdaDataModel object or NULL
+</parameter_description>
+</parameter>
+<parameter name="col">
+<parameter_description> the reference column in @model
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store error, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> 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.
+<return> TRUE if no error occurred
 </return>
 </function>
 
-<function name="gda_sql_select_from_take_new_target">
+<function name="gda_sql_statement_unknown_take_expressions">
 <description>
-Append @target to the targets in the FROM clausure and set @target&apos;s parent to
- from; after call this function @from owns @target then you must not free it.
+Sets @stmt's list of expressions
+
+ expressions's 
+ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
-<parameter name="from">
-<parameter_description> a #GdaSqlSelectFrom structure
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
 </parameter_description>
 </parameter>
-<parameter name="target">
-<parameter_description> a #GdaSqlSelectTarget to take from
+<parameter name="expressions">
+<parameter_description> a list of #GdaSqlExpr pointers
 </parameter_description>
 </parameter>
 </parameters>
@@ -3075,7 +4201,7 @@ Append @target to the targets in the FROM clausure and set @target&apos;s parent
 
 <function name="gda_connection_clear_events_list">
 <description>
-This function lets you clear the list of #GdaConnectionEvent&apos;s of the
+This function lets you clear the list of #GdaConnectionEvent's of the
 given connection. 
 
 </description>
@@ -3088,11 +4214,32 @@ given connection.
 <return></return>
 </function>
 
+<function name="gda_sql_param_spec_take_nullok">
+<description>
+Sets @pspec's ability of being NULL. @value's ownership is transferred to
+ pspec (which means @pspec is then responsible for freeing it when no longer needed).
+
+If @value's string starts by 't' or 'T' then @pspec will be allowed to be %NULL
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> a #GdaSqlParamSpec pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING #GValue. 
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_sql_statement_check_structure">
 <description>
-Checks for any error in @stmt&apos;s structure to make sure the statement is valid
+Checks for any error in @stmt's structure to make sure the statement is valid
 (for example a SELECT statement must at least return a column, a DELETE statement must specify which table
-is targetted).
+is targeted).
 
 
 </description>
@@ -3110,52 +4257,43 @@ is targetted).
 </return>
 </function>
 
-<function name="gda_meta_struct_dump_as_graph">
+<function name="gda_sql_value_stringify">
 <description>
-Creates a new graph (in the GraphViz syntax) representation of @mstruct.
+Simplified version of gda_value_stringify().
 
 
 </description>
 <parameters>
-<parameter name="mstruct">
-<parameter_description> a #GdaMetaStruct object
-</parameter_description>
-</parameter>
-<parameter name="info">
-<parameter_description> informs what kind of information to show in the resulting graph
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="value">
+<parameter_description> a #GValue pointer
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string, or %NULL if an error occurred.
+<return> a new string
 </return>
 </function>
 
-<function name="gda_attributes_manager_new">
+<function name="gda_meta_struct_dump_as_graph">
 <description>
-Creates a new #GdaAttributesManager, which can store (name, value) attributes for pointers or GObject objects
-(in the latter case, the attibutes are destroyed when objects are also destroyed).
+Creates a new graph (in the GraphViz syntax) representation of @mstruct.
 
 
 </description>
 <parameters>
-<parameter name="for_objects">
-<parameter_description> set to TRUE if attributes will be set on objects.
+<parameter name="mstruct">
+<parameter_description> a #GdaMetaStruct object
 </parameter_description>
 </parameter>
-<parameter name="signal_func">
-<parameter_description> a function to be called whenever an attribute changes on an object (if @for_objects is TRUE), or %NULL
+<parameter name="info">
+<parameter_description> informs what kind of information to show in the resulting graph
 </parameter_description>
 </parameter>
-<parameter name="signal_data">
-<parameter_description> user data passed as last argument of @signal_func when it is called
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new #GdaAttributesManager
+<return> a new string, or %NULL if an error occurred.
 </return>
 </function>
 
@@ -3201,9 +4339,28 @@ Frees a #GdaSqlSelectField structure and its members.
 <return></return>
 </function>
 
+<function name="gda_row_invalidate_value">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="row">
+<parameter_description> a #GdaRow
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue belonging to @row (obtained with gda_row_get_value()).
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_sql_select_order_copy">
 <description>
-Creates a new #GdaSqlSelectOrder structure initated with the values stored in @order.
+Creates a new #GdaSqlSelectOrder structure initiated with the values stored in @order.
 
 
 </description>
@@ -3237,11 +4394,11 @@ Set the value of the #GdaHolder which ID is @holder_id to a specified value
 </parameter_description>
 </parameter>
 <parameter name="Varargs">
-<parameter_description> value, of the correct type, depending on the requested holder&apos;s type (not NULL)
+<parameter_description> value, of the correct type, depending on the requested holder's type (not NULL)
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred and the value was set correctly
+<return> %TRUE if no error occurred and the value was set correctly
 </return>
 </function>
 
@@ -3269,7 +4426,7 @@ the return value is also %NULL.
 </parameter_description>
 </parameter>
 <parameter name="name">
-<parameter_description> the object&apos;s name (as a G_TYPE_STRING GValue), not %NULL
+<parameter_description> the object's name (as a G_TYPE_STRING GValue), not %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -3277,22 +4434,6 @@ the return value is also %NULL.
 </return>
 </function>
 
-<function name="gda_holder_value_is_default">
-<description>
-Tells if @holder&apos;s current value is the default one.
-
-
-</description>
-<parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
-</parameter_description>
-</parameter>
-</parameters>
-<return> TRUE if @holder @holder&apos;s current value is the default one
-</return>
-</function>
-
 <function name="gda_sql_select_join_serialize">
 <description>
 Creates a new string description of the join used in a SELECT statement.
@@ -3326,7 +4467,7 @@ this one, and if @value is %NULL then the association is removed.
 
 Note: @att_name is *not* copied, so it should be a string which exists as long as @mgr exists.
 Libgda provides several predefined names for common attributes,
-see &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
 
 If @att_name needs to be freed when not used anymore, then use gda_attributes_manager_set_full().
 
@@ -3337,11 +4478,11 @@ If @att_name needs to be freed when not used anymore, then use gda_attributes_ma
 </parameter_description>
 </parameter>
 <parameter name="ptr">
-<parameter_description> a pointer to the ressources to which the attribute will apply
+<parameter_description> a pointer to the resources to which the attribute will apply
 </parameter_description>
 </parameter>
 <parameter name="att_name">
-<parameter_description> an attribute&apos;s name
+<parameter_description> an attribute's name
 </parameter_description>
 </parameter>
 <parameter name="value">
@@ -3352,9 +4493,19 @@ If @att_name needs to be freed when not used anymore, then use gda_attributes_ma
 <return></return>
 </function>
 
+<function name="gda_time_copy">
+<description>
+
+</description>
+<parameters>
+</parameters>
+<return>
+</return>
+</function>
+
 <function name="gda_sql_case_copy">
 <description>
-Creates a new #GdaSqlCase structure initated with the values stored in @sc.
+Creates a new #GdaSqlCase structure initiated with the values stored in @sc.
 
 
 </description>
@@ -3384,7 +4535,7 @@ will speed things up as less data will be processed.
 </parameter_description>
 </parameter>
 <parameter name="col_numbers">
-<parameter_description> a array of @nb_cols values
+<parameter_description> an array of @nb_cols values
 </parameter_description>
 </parameter>
 </parameters>
@@ -3410,45 +4561,43 @@ locele into account
 <return></return>
 </function>
 
-<function name="gda_connection_event_set_source">
+<function name="gda_sql_statement_select_take_distinct">
 <description>
-Sets @event&apos;s @source; this function should not be called directly
+Sets the DISTINCT clause of @stmt. 
+
+ distinct_expr's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
-<parameter name="event">
-<parameter_description> a #GdaConnectionEvent.
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
 </parameter_description>
 </parameter>
-<parameter name="source">
-<parameter_description> a source.
+<parameter name="distinct">
+<parameter_description> a TRUE/FALSE value
+</parameter_description>
+</parameter>
+<parameter name="distinct_expr">
+<parameter_description> a #GdaSqlExpr pointer representing what the DISTINCT is on, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_attributes_manager_copy">
+<function name="gda_connection_event_set_source">
 <description>
-For each attribute set for @from (in @from_mgr), set the same attribute to @to (in @to_mgr). @from_mgr and
- to_mgr can be equal.
+Sets @event's @source; this function should not be called directly
 
 </description>
 <parameters>
-<parameter name="from_mgr">
-<parameter_description> a #GdaAttributesManager
-</parameter_description>
-</parameter>
-<parameter name="from">
-<parameter_description>
-</parameter_description>
-</parameter>
-<parameter name="to_mgr">
-<parameter_description> a #GdaAttributesManager
+<parameter name="event">
+<parameter_description> a #GdaConnectionEvent.
 </parameter_description>
 </parameter>
-<parameter name="to">
-<parameter_description>
+<parameter name="source">
+<parameter_description> a source.
 </parameter_description>
 </parameter>
 </parameters>
@@ -3458,7 +4607,7 @@ For each attribute set for @from (in @from_mgr), set the same attribute to @to (
 <function name="gda_virtual_connection_internal_get_provider_data">
 <description>
 Get the opaque pointer previously set using gda_virtual_connection_internal_set_provider_data().
-If it&apos;s not set, then add a connection event and returns %NULL
+If it's not set, then add a connection event and returns %NULL
 
 
 </description>
@@ -3506,10 +4655,10 @@ creation
 <description>
 Creates a new #GdaServerOperation object which can be modified in order to perform the @type type of
 action. The @options can contain:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;named values which ID is a path in the resulting GdaServerOperation object, to initialize some value&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;named values which may change the contents of the GdaServerOperation, see &amp;lt;link linkend=&quot;gda-server-op-information-std&quot;&amp;gt;this section&amp;lt;/link&amp;gt; for more information&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&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=&quot;gda-server-op-information-std&quot;&gt;this section&lt;/link&gt; for more information&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 
 </description>
@@ -3535,15 +4684,14 @@ action. The @options can contain:
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaServerOperation object, or %NULL in the provider does not support the @type type
-of operation or if an error occurred
+<return> a new #GdaServerOperation object, or %NULL in the provider does not support the @type type of operation or if an error occurred
 </return>
 </function>
 
 <function name="gda_data_handler_get_str_from_value">
 <description>
 Creates a new string which is a &quot;user friendly&quot; representation of the given value
-(in the users&apos;s locale, specially for the dates). If the value is 
+(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 &quot;&quot; (empty string).
 
 
@@ -3558,10 +4706,29 @@ NULL or is of type GDA_TYPE_NULL, the returned string is a copy of &quot;&quot;
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new string.
+<return> the new string, or %NULL if an error occurred
 </return>
 </function>
 
+<function name="gda_sql_statement_insert_take_on_conflict">
+<description>
+Sets the name of the resolution conflict algorithm used by @stmt. @value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> name of the resolution conflict algorithm, as a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_xa_transaction_register_connection">
 <description>
 Registers @cnc to be used by @xa_trans to create a distributed transaction.
@@ -3590,7 +4757,7 @@ provider being used does not support it.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> %TRUE if no error occurred
 </return>
 </function>
 
@@ -3603,29 +4770,29 @@ provider being used does not support it.
 <return></return>
 </function>
 
-<function name="gda_config_remove_dsn">
+<function name="gda_sql_field_take_name">
 <description>
-Add or update a DSN from the definition in @info
+Sets the field's name using the string held by @value. When call, @value is freed using
+#gda_value_free().
 
 
 </description>
 <parameters>
-<parameter name="dsn_name">
-<parameter_description> the name of the DSN to remove
+<parameter name="field">
+<parameter_description> a #GdaSqlField structure
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="value">
+<parameter_description> a #GValue holding a string to take from
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
-</return>
+<return></return>
 </function>
 
 <function name="gda_sql_field_copy">
 <description>
-Creates a new GdaSqlField structure initated with the values stored in @field.
+Creates a new GdaSqlField structure initiated with the values stored in @field.
 
 
 </description>
@@ -3639,27 +4806,26 @@ Creates a new GdaSqlField structure initated with the values stored in @field.
 </return>
 </function>
 
-<function name="gda_sql_expr_free">
+<function name="gda_value_get_geometric_point">
 <description>
-Frees a #GdaSqlExpr structure and its members.
-
 
 </description>
 <parameters>
-<parameter name="expr">
-<parameter_description> a #GdaSqlExpr to be freed.
+<parameter name="value">
+<parameter_description> a #GValue whose value we want to get.
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the value stored in @value.
+</return>
 </function>
 
 <function name="gda_rfc1738_encode">
 <description>
 Encodes @string using the RFC 1738 recommendations: the
-&amp;lt;constant&amp;gt;&amp;lt;&amp;gt;&amp;quot;#%{}|\^~[]&amp;apos;`;/?:@=&amp;amp;&amp;lt;/constant&amp;gt; and space characters are replaced by 
-&amp;lt;constant&amp;gt;&amp;quot;%%ab&amp;quot;&amp;lt;/constant&amp;gt; where
-&amp;lt;constant&amp;gt;ab&amp;lt;/constant&amp;gt; is the hexadecimal number corresponding to the character.
+&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;`;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
+&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
+&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character.
 
 
 </description>
@@ -3673,18 +4839,23 @@ Encodes @string using the RFC 1738 recommendations: the
 </return>
 </function>
 
-<function name="gda_sql_operation_operator_to_string">
+<function name="gda_config_get_dsn_info">
 <description>
-Returns: a string with the operator&apos;s name or NULL in case @op is invalid.
+Get information about the DSN named @dsn_name. 
+
+ dsn_name's format is &quot;[&lt;username&gt;[:&lt;password&gt;] ]&lt;DSN&gt;&quot; (if &lt;username&gt;
+and optionally &lt;password&gt; are provided, they are ignored). Also see the gda_dsn_split() utility
+function.
+
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaSqlOperation structure
+<parameter name="dsn_name">
+<parameter_description> the name of the DSN to look for
 </parameter_description>
 </parameter>
 </parameters>
-<return> a string with the operator&apos;s name or NULL in case @op is invalid.
+<return> a pointer to read-only #GdaDsnInfo structure, or %NULL if not found
 </return>
 </function>
 
@@ -3699,7 +4870,7 @@ therefore be altered in any way as long as the returned data model exists.
 </description>
 <parameters>
 <parameter name="data">
-<parameter_description> a string containng the data to import
+<parameter_description> a string containing the data to import
 </parameter_description>
 </parameter>
 <parameter name="random_access">
@@ -3707,7 +4878,7 @@ therefore be altered in any way as long as the returned data model exists.
 </parameter_description>
 </parameter>
 <parameter name="options">
-<parameter_description> list of importing options, see gda_data_model_import_new_file() for more information
+<parameter_description> importing options, see gda_data_model_import_new_file() for more information
 </parameter_description>
 </parameter>
 </parameters>
@@ -3726,8 +4897,12 @@ therefore be altered in any way as long as the returned data model exists.
 
 <function name="gda_holder_get_source_model">
 <description>
-Tells if @holder has its values sourceed by a #GdaDataModel, and optionnaly
-allows to fetch the resteictions.
+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.
 
 
 </description>
@@ -3737,40 +4912,63 @@ allows to fetch the resteictions.
 </parameter_description>
 </parameter>
 <parameter name="col">
-<parameter_description> a place to store the column in the model sourceing the holder, or %NULL
+<parameter_description> a place to store the column in the model sourcing the holder, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a pointer to the #GdaDataModel source for @holder
+<return> a pointer to a #GdaDataModel, or %NULL
 </return>
 </function>
 
-<function name="gda_set_get_source">
+<function name="gda_compute_unique_table_row_condition">
 <description>
-Finds a #GdaSetSource which contains the #GdaDataModel restricting the possible values of
- holder, don&apos;t modify the returned structure.
+Computes a #GdaSqlExpr expression which can be used in the WHERE clause of an UPDATE
+or DELETE statement when a row from the result of the @stsel statement has to be modified.
 
 
 </description>
 <parameters>
-<parameter name="set">
-<parameter_description> a #GdaSet object
+<parameter name="stsel">
+<parameter_description> a #GdaSqlSelectStatement
 </parameter_description>
 </parameter>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
+<parameter name="mtable">
+<parameter_description> a #GdaMetaTable
+</parameter_description>
+</parameter>
+<parameter name="require_pk">
+<parameter_description> set to TRUE if a primary key ir required
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaSetSource or %NULL
+<return> a new #GdaSqlExpr, or %NULL if an error occurred.
 </return>
 </function>
 
+<function name="gda_data_model_thaw">
+<description>
+Re-enables notifications of changes on the given data model.
+
+</description>
+<parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_data_model_iter_invalidate_contents">
 <description>
 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.
+is for internal usage. Note that for gda_data_model_iter_is_valid() to return %FALSE,
+it is also necessary to set the &quot;current-row&quot; property to -1.
 
 </description>
 <parameters>
@@ -3793,7 +4991,7 @@ Calls @func for every attribute set to @ptr.
 </parameter_description>
 </parameter>
 <parameter name="ptr">
-<parameter_description> a pointer to the ressources for which all the attributes used
+<parameter_description> a pointer to the resources for which all the attributes used
 </parameter_description>
 </parameter>
 <parameter name="func">
@@ -3810,10 +5008,10 @@ Calls @func for every attribute set to @ptr.
 
 <function name="gda_sql_parser_parse_file_as_batch">
 <description>
-Parse @filename&apos;s contents and creates a #GdaBatch object which contains all the
+Parse @filename's contents and creates a #GdaBatch object which contains all the
 #GdaStatement objects created while parsing (one object per SQL statement).
 
- filename&apos;s contents are parsed and #GdaStatement objects are created as long as no error is found. If an error is found 
+ filename's contents are parsed and #GdaStatement objects are created as long as no error is found. If an error is found
 at some point, then the parsing stops, @error may be set and %NULL is returned
 
 if @sql is %NULL, then the returned #GdaBatch object will contain no statement.
@@ -3840,7 +5038,7 @@ if @sql is %NULL, then the returned #GdaBatch object will contain no statement.
 
 <function name="gda_meta_store_modify_with_context">
 <description>
-Propagates an update to @store, the update&apos;s contents is represented by @new_data, this function is
+Propagates an update to @store, the update's contents is represented by @new_data, this function is
 primarily reserved to database providers.
 
 
@@ -3901,7 +5099,7 @@ Calls @func for each attribute set to tcol
 
 </description>
 <parameters>
-<parameter name="column">
+<parameter name="tcol">
 <parameter_description> a #GdaMetaTableColumn
 </parameter_description>
 </parameter>
@@ -3917,18 +5115,36 @@ Calls @func for each attribute set to tcol
 <return></return>
 </function>
 
+<function name="gda_data_proxy_get_n_modified_rows">
+<description>
+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).
+
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of modified rows
+</return>
+</function>
+
 <function name="gda_data_proxy_set_sample_size">
 <description>
-Sets the size of each chunk of fata to display: the maximum number of rows which
-can be displayed at a time. The default value is arbitrary 300 as it is big enough to
+Sets the size of each chunk of data to display: the maximum number of rows which
+can be &quot;displayed&quot; 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 commited will always be displayed
+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.
+To remove the chunking of the data to display, simply pass @sample_size the %0 value.
 
 </description>
 <parameters>
@@ -3944,6 +5160,25 @@ To remove the chunking of the data to display, simply pass @sample_size the 0 va
 <return></return>
 </function>
 
+<function name="gda_sql_function_take_name">
+<description>
+Sets the function's name using the string held by @value. When call, @value is freed using
+#gda_value_free().
+
+</description>
+<parameters>
+<parameter name="function">
+<parameter_description> a #GdaSqlFunction structure
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue holding a string to take from
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_handler_time_new">
 <description>
 Creates a data handler for time values
@@ -3956,6 +5191,25 @@ Creates a data handler for time values
 </return>
 </function>
 
+<function name="gda_sql_select_field_take_expr">
+<description>
+Sets the expression field in the #GdaSqlSelectField structure to point to @expr
+and modify it to sets its parent to @field.
+
+</description>
+<parameters>
+<parameter name="field">
+<parameter_description> a #GdaSqlSelectField structure
+</parameter_description>
+</parameter>
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr to take from
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_row_get_length">
 <description>
 
@@ -3970,19 +5224,44 @@ Creates a data handler for time values
 </return>
 </function>
 
-<function name="gda_data_proxy_get_filter_expr">
+<function name="gda_update_row_in_table">
 <description>
-Get the current filter expression used by @proxy.
+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 &lt;table&gt; SET &lt;column_name&gt; = &lt;new_value&gt; [,...] WHERE &lt;condition_column_name&gt; = &lt;condition_value&gt;.
 
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="cnc">
+<parameter_description> an opened connection
+</parameter_description>
+</parameter>
+<parameter name="table">
+<parameter_description> the table's name with the row's values to be updated
+</parameter_description>
+</parameter>
+<parameter name="condition_column_name">
+<parameter_description> the name of the column to used in the WHERE condition clause
+</parameter_description>
+</parameter>
+<parameter name="condition_value">
+<parameter_description> the @condition_column_type's GType
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a list of string/GValue pairs with the name of the column to use and the
+GValue pointer containing the value to update the column to (value can be %NULL), finished by a %NULL. There must be
+at least one column name and value
 </parameter_description>
 </parameter>
 </parameters>
-<return> the current filter expression or %NULL if no filter has been set
+<return> TRUE if no error occurred
 </return>
 </function>
 
@@ -4019,21 +5298,50 @@ Sets the type of @value to #GDA_TYPE_NULL.
 <return></return>
 </function>
 
+<function name="gda_sql_statement_delete_take_condition">
+<description>
+Sets the WHERE condition of @stmt. @cond's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="cond">
+<parameter_description> the WHERE condition of the DELETE statement, as a #GdaSqlExpr 
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_meta_struct_load_from_xml_file">
 <description>
+Loads an XML description into @mstruct
+
 
 </description>
 <parameters>
 <parameter name="mstruct">
-<parameter_description>
+<parameter_description> a #GdaMetaStruct object
+</parameter_description>
+</parameter>
+<parameter name="catalog">
+<parameter_description> the catalog name, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="schema">
+<parameter_description> the schema name, or %NULL
 </parameter_description>
 </parameter>
 <parameter name="xml_spec_file">
-<parameter_description>
+<parameter_description> the specifications as the name of an XML file
 </parameter_description>
 </parameter>
 <parameter name="error">
-<parameter_description>
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -4045,7 +5353,7 @@ Sets the type of @value to #GDA_TYPE_NULL.
 <description>
 Creates a GValue from an XML representation of it. That XML
 node corresponds to the following string representation:
-&amp;lt;value type=&quot;gdatype&quot;&amp;gt;value&amp;lt;/value&amp;gt;
+&lt;value type=&quot;gdatype&quot;&gt;value&lt;/value&gt;
 
 For more information
 about the string format, see the gda_value_set_from_string() function.
@@ -4061,33 +5369,30 @@ independent.
 </parameter>
 </parameters>
 <return> the newly created #GValue.
+
+Free-function: gda_value_free
 </return>
 </function>
 
-<function name="gda_data_model_append_values">
+<function name="gda_config_list_dsn">
 <description>
-Appends a row to the given data model. If any value in @values is actually %NULL, then 
-it is considered as a default value.
+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;
 
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
-</parameter_description>
-</parameter>
-<parameter name="values">
-<parameter_description> #GList of #GValue* representing the row to add.  The
-length must match model&apos;s column count.  These #GValue
-are value-copied (the user is still responsible for freeing them).
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
-</parameter_description>
-</parameter>
 </parameters>
-<return> the number of the added row, or -1 if an error occurred
+<return> a new #GdaDataModel
 </return>
 </function>
 
@@ -4097,14 +5402,14 @@ 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&apos;s value does not actually change)
+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&apos;t accept the @value value, then this method returns FALSE, and @holder will be left
+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 &quot;validate-change&quot; signal will be emitted (the value
@@ -4131,6 +5436,27 @@ of which values @holder can have, or implement some business rules.
 </return>
 </function>
 
+<function name="gda_sql_statement_select_take_group_by">
+<description>
+Sets the GROUP BY clause of @stmt
+
+ group_by's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="group_by">
+<parameter_description> a list of #GdaSqlExpr pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_data_model_bdb_get_errors">
 <description>
 Get the list of errors which have occurred while using @model
@@ -4169,7 +5495,7 @@ Stores @val into @value.
 <description>
 Copy constructor.
 
-Note1: if @orig is set with a static value (see #gda_holder_take_static_value ()) 
+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.
 
 
@@ -4184,47 +5510,63 @@ its copy will have a fresh new allocated GValue, so that user should free it whe
 </return>
 </function>
 
-<function name="This">
+<function name="gda_tree_mgr_label_new">
 <description>
- note The BinReloc source code MUST be included in your library, or this
-function won&apos;t work correctly.
+Creates a new #GdaTreeManager object which will add one tree node labelled @label
 
- returns TRUE on success, FALSE if a filename cannot be found.
+Since: 4.2
 
 </description>
 <parameters>
+<parameter name="label">
+<parameter_description> a label string
+</parameter_description>
+</parameter>
 </parameters>
-<return></return>
+<return> a new #GdaTreeManager object
+
+</return>
 </function>
 
-<function name="gda_data_handler_get_value_from_sql">
+<function name="gda_sql_statement_update_take_condition">
 <description>
-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
-NULL is returned.
+Sets the WHERE clause of @stmt
 
+ expr's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
-<parameter name="dh">
-<parameter_description> an object which implements the #GdaDataHandler interface
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
 </parameter_description>
 </parameter>
-<parameter name="sql">
-<parameter_description>
+<parameter name="cond">
+<parameter_description> a #GdaSqlExpr pointer
 </parameter_description>
 </parameter>
-<parameter name="type">
-<parameter_description> 
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_sql_function_take_args_list">
+<description>
+Sets the function's arguments to point to @args, then sets the
+list's data elements' parent to @function.
+
+
+</description>
+<parameters>
+<parameter name="function">
+<parameter_description> a #GdaSqlFunction structure
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> a #GSList to take from
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new GValue or NULL on error
-</return>
+<return></return>
 </function>
 
 <function name="gda_value_set_from_string">
@@ -4232,13 +5574,13 @@ NULL is returned.
 Stores the value data from its string representation as @type.
 
 The accepted formats are:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;G_TYPE_BOOLEAN: a caseless comparison is made with &quot;true&quot; or &quot;false&quot;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;numerical types: C locale format (dot as a fraction separator)&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;G_TYPE_DATE: see &amp;lt;link linkend=&quot;gda-parse-iso8601-date&quot;&amp;gt;gda_parse_iso8601_date()&amp;lt;/link&amp;gt;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_TYPE_TIME: see &amp;lt;link linkend=&quot;gda-parse-iso8601-time&quot;&amp;gt;gda_parse_iso8601_time()&amp;lt;/link&amp;gt;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;GDA_TYPE_TIMESTAMP: see &amp;lt;link linkend=&quot;gda-parse-iso8601-timestamp&quot;&amp;gt;gda_parse_iso8601_timestamp()&amp;lt;/link&amp;gt;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;G_TYPE_BOOLEAN: a caseless comparison is made with &quot;true&quot; or &quot;false&quot;&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;numerical types: C locale format (dot as a fraction separator)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;G_TYPE_DATE: see &lt;link linkend=&quot;gda-parse-iso8601-date&quot;&gt;gda_parse_iso8601_date()&lt;/link&gt;&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;GDA_TYPE_TIME: see &lt;link linkend=&quot;gda-parse-iso8601-time&quot;&gt;gda_parse_iso8601_time()&lt;/link&gt;&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;GDA_TYPE_TIMESTAMP: see &lt;link linkend=&quot;gda-parse-iso8601-timestamp&quot;&gt;gda_parse_iso8601_timestamp()&lt;/link&gt;&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 This function is typically used when reading configuration files or other non-user input that should be locale 
 independent.
@@ -4261,7 +5603,7 @@ independent.
 </parameters>
 <return> %TRUE if the value has been converted to @type from
 its string representation; it not means that the value is converted 
-successfully, just that the transformation is avairable. %FALSE otherwise.
+successfully, just that the transformation is available. %FALSE otherwise.
 </return>
 </function>
 
@@ -4274,9 +5616,9 @@ 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 chaged and no signal is emitted.
+then @holder is not changed and no signal is emitted.
 
-Note1: if @holder can&apos;t accept the @value value, then this method returns NULL, and @holder will be left
+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 &quot;validate-change&quot; signal will be emitted (the value
@@ -4305,65 +5647,74 @@ of which values @holder can have, or implement some business rules.
 </parameters>
 <return> 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.
-
 </return>
 </function>
 
-<function name="gda_connection_value_to_sql_string">
+<function name="gda_data_model_iter_get_column_for_param">
 <description>
-Produces a fully quoted and escaped string from a GValue
+Get the column number in the #GdaDataModel for which @iter is an iterator as
+represented by the @param parameter
 
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object.
+<parameter name="iter">
+<parameter_description> a #GdaDataModelIter object
 </parameter_description>
 </parameter>
-<parameter name="from">
-<parameter_description> #GValue to convert from
+<parameter name="param">
+<parameter_description> a #GdaHolder object, listed in @iter
 </parameter_description>
 </parameter>
 </parameters>
-<return> escaped and quoted value or NULL if not supported.
+<return> the column number, or @param is not valid
 </return>
 </function>
 
-<function name="gda_data_model_iter_get_column_for_param">
+<function name="gda_sql_builder_join_add_field">
 <description>
-Get the column number in the #GdaDataModel for which @iter is an iterator as
-represented by the @param parameter
+Alter a join in a SELECT statement to make its condition use equal field 
+values in the fields named @field_name in both tables, via the USING keyword.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="iter">
-<parameter_description> a #GdaDataModelIter object
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="param">
-<parameter_description> a #GdaHolder object, listed in @iter
+<parameter name="join_id">
+<parameter_description> the ID of the join to modify (not %0)
+</parameter_description>
+</parameter>
+<parameter name="field_name">
+<parameter_description> the name of the field to use in the join condition (not %NULL)
 </parameter_description>
 </parameter>
 </parameters>
-<return> the column number, or @param is not valid
+<return> the ID of the new join, or %0 if there was an error
+
 </return>
 </function>
 
-<function name="gda_data_proxy_get_n_modified_rows">
+<function name="gda_connection_value_to_sql_string">
 <description>
-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).
+Produces a fully quoted and escaped string from a GValue
 
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object.
+</parameter_description>
+</parameter>
+<parameter name="from">
+<parameter_description> #GValue to convert from
 </parameter_description>
 </parameter>
 </parameters>
-<return> the number of modified rows
+<return> escaped and quoted value or NULL if not supported.
 </return>
 </function>
 
@@ -4380,11 +5731,14 @@ If both @catalog and @schema are %NULL, then the database object will be the one
 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 must respect the following convention:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;be surrounded by double quotes for a case sensitive search&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;otherwise they will be converted to lower case for search&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+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=&quot;information_schema:sql_identifiers&quot;&gt;
+meta data section about SQL identifiers&lt;/link&gt;.
 
 
 </description>
@@ -4406,7 +5760,7 @@ Important note: @catalog, @schema and @name must respect the following conventio
 </parameter_description>
 </parameter>
 <parameter name="name">
-<parameter_description> the object&apos;s name (as a G_TYPE_STRING GValue), not %NULL
+<parameter_description> the object's name (as a G_TYPE_STRING GValue), not %NULL
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -4420,7 +5774,7 @@ Important note: @catalog, @schema and @name must respect the following conventio
 
 <function name="gda_sql_select_field_take_star_value">
 <description>
-Sets the expression field&apos;s value in the #GdaSqlSelectField structure to point to @value;
+Sets the expression field's value in the #GdaSqlSelectField structure to point to @value;
 after this @field is the owner of @value.
 
 
@@ -4455,6 +5809,26 @@ using g_free();
 </return>
 </function>
 
+<function name="gda_data_proxy_row_is_deleted">
+<description>
+Tells if the row number @proxy_row is marked to be deleted.
+
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+<parameter name="proxy_row">
+<parameter_description> A proxy row number
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if the row is marked to be deleted
+</return>
+</function>
+
 <function name="gda_connection_supports_feature">
 <description>
 Asks the underlying provider for if a specific feature is supported.
@@ -4495,17 +5869,16 @@ Check the column types of a GdaDataModel.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the data model&apos;s columns match the provided data types and number
+<return> TRUE if the data model's columns match the provided data types and number
 </return>
 </function>
 
 <function name="gda_insert_row_into_table">
 <description>
-This is just a convenient function to insert a row with the values given as argument.
-The values must correspond with the GType of the column to set, otherwise throw to 
-an error. Finish the list with NULL.
+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 arguments must be pairs of column name followed by his value.
+The equivalent SQL command is: INSERT INTO &lt;table&gt; (&lt;column_name&gt; [,...]) VALUES (&lt;column_name&gt; = &lt;new_value&gt; [,...]).
 
 
 </description>
@@ -4514,8 +5887,8 @@ The arguments must be pairs of column name followed by his value.
 <parameter_description> an opened connection
 </parameter_description>
 </parameter>
-<parameter name="table_name">
-<parameter_description>
+<parameter name="table">
+<parameter_description> table's name to insert into
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -4523,24 +5896,104 @@ The arguments must be pairs of column name followed by his value.
 </parameter_description>
 </parameter>
 <parameter name="Varargs">
-<parameter_description> a list of string/@GValue pairs where the string is the name of the column
-followed by its @GValue to set in the insert operation, finished by %NULL
+<parameter_description> a list of string/GValue pairs with the name of the column to use and the
+GValue pointer containing the value to insert for the column (value can be %NULL), finished by a %NULL. There must be
+at least one column name and value
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred, and FALSE and set error otherwise
+<return> TRUE if no error occurred
 </return>
 </function>
 
-<function name="gda_batch_new">
+<function name="gda_config_get_provider_info">
 <description>
-Creates a new #GdaBatch object
+Get some information about the a database provider (adapter) named 
 
 
 </description>
 <parameters>
+<parameter name="provider_name">
+<parameter_description> a database provider
+</parameter_description>
+</parameter>
 </parameters>
-<return> the new object
+<return> a pointer to read-only #GdaProviderInfo structure, or %NULL if not found
+</return>
+</function>
+
+<function name="gda_thread_wrapper_disconnect">
+<description>
+Disconnects the emission of a signal, does the opposite of gda_thread_wrapper_connect_raw().
+
+As soon as this method returns, the callback function set when gda_thread_wrapper_connect_raw()
+was called will not be called anymore (even if the object has emitted the signal in the worker
+thread and this signal has not been handled in the user thread).
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="id">
+<parameter_description> a handler ID, as returned by gda_thread_wrapper_connect_raw()
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_row_value_is_valid">
+<description>
+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.
+
+
+</description>
+<parameters>
+<parameter name="row">
+<parameter_description> a #GdaRow.
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue belonging to @row (obtained with gda_row_get_value()).
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @value is valid
+</return>
+</function>
+
+<function name="gda_sql_builder_add_expr_value">
+<description>
+Defines an expression in @builder which may be reused to build other parts of a statement.
+
+The new expression will contain the value passed as the @value argument. It is possible to
+customize how the value has to be interpreted by passing a specific #GdaDataHandler object as @dh.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="dh">
+<parameter_description> a #GdaDataHandler to use, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> value to set the expression to, or %NULL or a GDA_TYPE_NULL value to represent an SQL NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
@@ -4581,15 +6034,40 @@ Get or initializes the #GdaMetaStore associated to @cnc
 </return>
 </function>
 
+<function name="gda_sql_param_spec_new">
+<description>
+ value must contain a string representing a variable, see the documentation associated to the
+#GdaSqlParser object.
+
+ value is destroyed by this function.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaSqlParamSpec
+</return>
+</function>
+
 <function name="gda_data_model_create_iter">
 <description>
 Creates a new iterator object #GdaDataModelIter object which can be used to iterate through
 rows in @model.
 
-The row the returned #GdaDataModelIter represents is undefined. For models which can be accessed 
-randomly the corresponding row can be set using gda_data_model_iter_move_to_row(), 
-and for models which are accessible sequentially only then the first row will be
-fetched using gda_data_model_iter_move_next().
+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.
+
+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).
 
 
 </description>
@@ -4599,7 +6077,41 @@ fetched using gda_data_model_iter_move_next().
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaDataModelIter object, or %NULL if an error occurred
+<return> a #GdaDataModelIter object, or %NULL if an error occurred
+</return>
+</function>
+
+<function name="gda_sql_builder_add_cond">
+<description>
+Builds a new expression which reprenents a condition (or operation).
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="op">
+<parameter_description> type of condition
+</parameter_description>
+</parameter>
+<parameter name="op1">
+<parameter_description> the ID of the 1st argument (not 0)
+</parameter_description>
+</parameter>
+<parameter name="op2">
+<parameter_description> the ID of the 2nd argument (may be %0 if @op needs only one operand)
+</parameter_description>
+</parameter>
+<parameter name="op3">
+<parameter_description> the ID of the 3rd argument (may be %0 if @op needs only one or two operand)
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
@@ -4619,8 +6131,45 @@ fetched using gda_data_model_iter_move_next().
 
 <function name="gda_connection_update_meta_store">
 <description>
-Updates @cnc&apos;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.
+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 &quot;_columns&quot;
+table (which lists all the columns of a table) depends on the &quot;_tables&quot; table (which lists all the tables
+in a schema), so if a row is added, removed or modified in the &quot;_tables&quot;, then the &quot;_columns&quot; 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 interrested 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 &quot;table_name&quot; of the &quot;_tables&quot;
+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=&quot;information_schema:sql_identifiers&quot;&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=&quot;information_schema&quot;&gt;Database structure&lt;/link&gt; section, and
+the &lt;link linkend=&quot;howto-meta2&quot;&gt;Update the meta data about a table&lt;/link&gt; howto.
 
 
 </description>
@@ -4630,7 +6179,7 @@ Updates @cnc&apos;s associated #GdaMetaStore. If @context is not %NULL, then onl
 </parameter_description>
 </parameter>
 <parameter name="context">
-<parameter_description> description of which part of @cnc&apos;s associated #GdaMetaStore should be updated, or %NULL
+<parameter_description> description of which part of @cnc's associated #GdaMetaStore should be updated, or %NULL
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -4642,31 +6191,88 @@ Updates @cnc&apos;s associated #GdaMetaStore. If @context is not %NULL, then onl
 </return>
 </function>
 
-<function name="gda_data_model_array_new_with_g_types">
+<function name="gda_holder_get_value">
 <description>
-Creates a new #GdaDataModel object with the column types as
-specified.
+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.
 
 
 </description>
 <parameters>
-<parameter name="cols">
-<parameter_description> number of columns for rows in this data model.
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> types of the columns of the model to create as #GType, as many as indicated by @cols
+</parameters>
+<return> the value, or %NULL
+</return>
+</function>
+
+<function name="gda_vconnection_data_model_add_model">
+<description>
+Make @model appear as a table named @table_name in the @cnc connection (as if a
+&quot;CREATE TABLE...&quot; statement was executed, except that the data contained within @model
+is actually used when @table_name's contents is read or written).
+
+For a more general approach, see the gda_vconnection_data_model_add() method.
+
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaVconnectionDataModel connection
+</parameter_description>
+</parameter>
+<parameter name="model">
+<parameter_description> a #GdaDataModel
+</parameter_description>
+</parameter>
+<parameter name="table_name">
+<parameter_description> the name of the table
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a pointer to the newly created #GdaDataModel.
+<return> TRUE if no error occurred
+</return>
+</function>
+
+<function name="gda_tree_get_node">
+<description>
+Locates a #GdaTreeNode using the @tree_path path.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree object
+</parameter_description>
+</parameter>
+<parameter name="tree_path">
+<parameter_description> full path to the required nodes (if @use_names is %TRUE, then it must start with '/')
+</parameter_description>
+</parameter>
+<parameter name="use_names">
+<parameter_description> if %TRUE, then @tree_path will be interpreted as a unix style path, and if %FALSE,
+then @tree_path will be interpreted similarly to the #GtkTreePath's string representation.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the requested #GdaTreeNode pointer, or %NULL if not found
+
 </return>
 </function>
 
 <function name="gda_meta_struct_add_db_object">
 <description>
 Adds @dbo to the database objects known to @mstruct. In any case (whether an error occured or not)
- dbo&apos;s responsability is then transferred to @smtruct and should
+ dbo's ownership is then transferred to @smtruct and should
 not be used after calling this function (it may have been destroyed). If you need a pointer to the #GdaMetaDbObject
 for a database object, use gda_meta_struct_get_db_object().
 
@@ -4694,76 +6300,139 @@ for a database object, use gda_meta_struct_get_db_object().
 <description>
 Extract the DSN, 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 username and password strings are correclty decoded.
+the returned username and password strings are correctly decoded.
 
- out_username and @out_password may be set to %NULL depending on @string&apos;s format.
+ out_username and @out_password may be set to %NULL depending on @string's format.
 
 </description>
 <parameters>
 <parameter name="string">
-<parameter_description> a string in the &quot;[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;DSN&amp;gt;&quot; form
+<parameter_description> a string in the &quot;[&lt;username&gt;[:&lt;password&gt;] ]&lt;DSN&gt;&quot; form
 </parameter_description>
 </parameter>
 <parameter name="out_dsn">
-<parameter_description> a place to store the new string containing the &amp;lt;DSN&amp;gt; part
+<parameter_description> a place to store the new string containing the &lt;DSN&gt; part
 </parameter_description>
 </parameter>
 <parameter name="out_username">
-<parameter_description> a place to store the new string containing the &amp;lt;username&amp;gt; part
+<parameter_description> a place to store the new string containing the &lt;username&gt; part
 </parameter_description>
 </parameter>
 <parameter name="out_password">
-<parameter_description> a place to store the new string containing the &amp;lt;password&amp;gt; part
+<parameter_description> a place to store the new string containing the &lt;password&gt; part
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_holder_value_is_default">
+<description>
+Tells if @holder's current value is the default one.
+
+
+</description>
+<parameters>
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if @holder @holder's current value is the default one
+</return>
+</function>
+
+<function name="gda_sql_statement_select_take_order_by">
+<description>
+Sets the ORDER BY clause of @stmt
+
+ order_by's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="order_by">
+<parameter_description> a list of #GdaSqlSelectOrder pointer
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_data_comparator_new">
+<function name="gda_connection_quote_sql_identifier">
 <description>
-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.
+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=&quot;GDA-CONNECTION-OPTIONS-SQL-IDENTIFIERS-CASE-SENSITIVE:CAPS&quot;&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 (&quot;) character.
+
+Since: 4.0.3
 
 </description>
 <parameters>
-<parameter name="old_model">
-<parameter_description> Data model to which the modifications should be applied
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
-<parameter name="new_model">
-<parameter_description> Target data model.
+<parameter name="id">
+<parameter_description> an SQL identifier
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaDataComparator object
+<return> a new string, to free with g_free() once not needed anymore
+
 </return>
 </function>
 
-<function name="gda_sql_field_take_name">
+<function name="gda_sql_param_spec_free">
 <description>
-Sets the field&apos;s name using the string holded by @value. When call, @value is freed using
-#gda_value_free().
+Destroys @pspec.
+
+</description>
+<parameters>
+<parameter name="pspec">
+<parameter_description> #GdaSqlParamSpec pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_config_remove_dsn">
+<description>
+Remove the DSN named @dsn_name.
+
+This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).
 
 
 </description>
 <parameters>
-<parameter name="field">
-<parameter_description> a #GdaSqlField structure
+<parameter name="dsn_name">
+<parameter_description> the name of the DSN to remove
 </parameter_description>
 </parameter>
-<parameter name="value">
-<parameter_description> a #GValue holding a string to take from
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> TRUE if no error occurred
+</return>
 </function>
 
 <function name="gda_data_model_get_column_name">
@@ -4790,29 +6459,21 @@ Since: 3.2
 <description>
 Get the number of defined DSN
 
-Return: the number of defined DSN
 
 </description>
 <parameters>
 </parameters>
-<return></return>
+<return> the number of defined DSN
+</return>
 </function>
 
 <function name="gda_row_new">
 <description>
 Creates a #GdaRow which can hold @count #GValue values.
 
-The caller of this function is the only owner of a reference to the newly created #GdaRow
-object, even if @model is not %NULL (it is recommended to pass %NULL as the @model argument
-if this function is not called from within a #GdaDataModel implementation).
-
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> the #GdaDataModel this row belongs to, or %NULL if the row is outside any data model
-</parameter_description>
-</parameter>
 <parameter name="count">
 <parameter_description> number of #GValue in the new #GdaRow.
 </parameter_description>
@@ -4839,14 +6500,37 @@ At the moment any &quot;*&quot; field in a SELECT statement will be replaced by
 <parameter_description> a #GdaConnection object, or %NULL
 </parameter_description>
 </parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
 <return> TRUE if no error occurred
 </return>
 </function>
 
+<function name="gda_sql_statement_insert_take_table_name">
+<description>
+Sets the name of the table to insert into in @stmt. @value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> name of the table to insert into, as a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_holder_get_alphanum_id">
 <description>
-Get an &quot;encoded&quot; version of @holder&apos;s name. The &quot;encoding&quot; consists in replacing non
+Get an &quot;encoded&quot; version of @holder's name. The &quot;encoding&quot; consists in replacing non
 alphanumeric character with the string &quot;__gdaXX&quot; where XX is the hex. representation
 of the non alphanumeric char.
 
@@ -4864,19 +6548,20 @@ This method is just a wrapper around the gda_text_to_alphanum() function.
 </return>
 </function>
 
-<function name="gda_value_to_xml">
+<function name="gda_sql_select_target_serialize">
 <description>
-Serializes the given #GValue to an XML node string.
+Creates a new string representing a target used in a SELECT statement
+after the FROM clause.
 
 
 </description>
 <parameters>
-<parameter name="value">
-<parameter_description> a #GValue.
+<parameter name="target">
+<parameter_description> a #GdaSqlSelectTarget structure
 </parameter_description>
 </parameter>
 </parameters>
-<return> the XML node. Once not needed anymore, you should free it.
+<return> a new string with the description of the expression or &quot;null&quot; in case @field is invalid.
 </return>
 </function>
 
@@ -4905,24 +6590,70 @@ Tells if @provider supports the @type of operation on the @cnc connection, using
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the operation is supported
+<return> %TRUE if the operation is supported
 </return>
 </function>
 
-<function name="gda_sql_identifier_add_quotes">
+<function name="gda_tree_get_type">
 <description>
-Add double quotes around the @str identifier. Use the gda_sql_identifier_needs_quotes()
-function to tell if an identifier needs to be quoted.
+Registers the #GdaTree class on the GLib type system.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="str">
-<parameter_description> an SQL identifier
+</parameters>
+<return> the GType identifying the class.
+
+</return>
+</function>
+
+<function name="gda_server_operation_is_valid">
+<description>
+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.
+
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaServerOperation widget
+</parameter_description>
+</parameter>
+<parameter name="xml_file">
+<parameter_description> an XML specification file (see gda_server_operation_new())
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store an error, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string
+<return> %TRUE if @op is valid
+</return>
+</function>
+
+<function name="gda_data_comparator_new">
+<description>
+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.
+
+
+</description>
+<parameters>
+<parameter name="old_model">
+<parameter_description> Data model to which the modifications should be applied
+</parameter_description>
+</parameter>
+<parameter name="new_model">
+<parameter_description> Target data model.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaDataComparator object
 </return>
 </function>
 
@@ -4930,6 +6661,9 @@ function to tell if an identifier needs to be quoted.
 <description>
 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.
+
 
 </description>
 <parameters>
@@ -4942,7 +6676,7 @@ Imports data contained in the @file file into @model; the format is detected.
 </parameter_description>
 </parameter>
 <parameter name="cols_trans">
-<parameter_description> a #GHashTable for columns translating, or %NULL
+<parameter_description> a #GHashTable for columns translating, or %NULL, see gda_data_model_import_from_model()
 </parameter_description>
 </parameter>
 <parameter name="options">
@@ -4976,7 +6710,7 @@ Reset the list of errors which have occurred while using @model
 <description>
 Get the value associated to a named attribute.
 
-Attributes can have any name, but Libgda proposes some default names, see &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
 
 
 </description>
@@ -4997,7 +6731,7 @@ Attributes can have any name, but Libgda proposes some default names, see &amp;l
 <function name="gda_xa_transaction_commit_recovered">
 <description>
 Tries to commit the data prepared but which failed to commit (see gda_xa_transaction_commit()). This
-method allows one to terminate a distributed transaction which succedded but for which some
+method allows one to terminate a distributed transaction which succeeded but for which some
 connections needed to be recovered.
 
 
@@ -5008,8 +6742,7 @@ connections needed to be recovered.
 </parameter_description>
 </parameter>
 <parameter name="cnc_to_recover">
-<parameter_description> a place to store the list of connections for which the there were data to recover and which failed
-to be actually committed, or %NULL
+<parameter_description> a place to store the list of connections for which the there were data to recover and which failed to be actually committed, or %NULL
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -5017,7 +6750,7 @@ to be actually committed, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if all the data which was still uncommitted has been committed
+<return> %TRUE if all the data which was still uncommitted has been committed
 </return>
 </function>
 
@@ -5045,7 +6778,7 @@ Sets the @title of the given @col in @model.
 
 <function name="gda_meta_store_modify">
 <description>
-Propagates an update to @store, the update&apos;s contents is represented by @new_data, this function is
+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 &quot;_tables&quot;
@@ -5053,7 +6786,7 @@ table of @store, and contain one row per table in the store; there should not be
 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 promary key of the &quot;_tables&quot; table of
+at all if the table does not exist anymore), and have values for the primary key of the &quot;_tables&quot; table of
 @store, namely &quot;table_catalog&quot;, &quot;table_schema&quot; and &quot;table_name&quot;.
 
 
@@ -5082,7 +6815,7 @@ with no row at all)
 </parameter>
 <parameter name="Varargs">
 <parameter_description> a list of (variable name (gchar *), GValue *value) terminated with NULL, representing values for all the
-variables mentionned in @condition.
+variables mentioned in @condition.
 </parameter_description>
 </parameter>
 </parameters>
@@ -5090,77 +6823,63 @@ variables mentionned in @condition.
 </return>
 </function>
 
-<function name="gda_connection_statement_to_sql">
+<function name="gda_sql_builder_new">
 <description>
-Renders @stmt as an SQL statement, adapted to the SQL dialect used by @cnc
+Create a new #GdaSqlBuilder object to build #GdaStatement or #GdaSqlStatement
+objects of type @stmt_type
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object
-</parameter_description>
-</parameter>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object
-</parameter_description>
-</parameter>
-<parameter name="params">
-<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> SQL rendering flags, as #GdaStatementSqlFlag OR&apos;ed values
-</parameter_description>
-</parameter>
-<parameter name="params_used">
-<parameter_description> a place to store the list of individual #GdaHolder objects within @params which have been used
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="stmt_type">
+<parameter_description> the type of statement to build
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string, or %NULL if an error occurred
+<return> the newly created object, or %NULL if an error occurred (such as unsupported
+statement type)
+
 </return>
 </function>
 
-<function name="gda_connection_string_split">
+<function name="gda_tree_mgr_select_get_type">
 <description>
-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 correclty decoded.
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="string">
-<parameter_description> a string in the &quot;[&amp;lt;provider&amp;gt;://][&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;connection_params&amp;gt;&quot; form
-</parameter_description>
-</parameter>
-<parameter name="out_cnc_params">
-<parameter_description> a place to store the new string containing the &amp;lt;connection_params&amp;gt; part
-</parameter_description>
-</parameter>
-<parameter name="out_provider">
-<parameter_description> a place to store the new string containing the &amp;lt;provider&amp;gt; part
-</parameter_description>
-</parameter>
-<parameter name="out_username">
-<parameter_description> a place to store the new string containing the &amp;lt;username&amp;gt; part
-</parameter_description>
-</parameter>
-<parameter name="out_password">
-<parameter_description> a place to store the new string containing the &amp;lt;password&amp;gt; part
+</parameters>
+<return> the GType
+
+</return>
+</function>
+
+<function name="gda_server_operation_new">
+<description>
+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 &quot;libgda-server-operation.dtd&quot; file: its top
+node must be a &lt;serv_op&gt; tag.
+
+
+</description>
+<parameters>
+<parameter name="op_type">
+<parameter_description> type of operation
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="xml_file">
+<parameter_description> a file which has the specifications for the GdaServerOperation object to create
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new #GdaServerOperation object
+</return>
 </function>
 
 <function name="gda_connection_get_dsn">
@@ -5173,32 +6892,55 @@ the returned provider, username and password strings are correclty decoded.
 </parameter_description>
 </parameter>
 </parameters>
-<return>the data source name the connection object is connected
+<return> the data source name the connection object is connected
 to.
 </return>
 </function>
 
-<function name="gda_quark_list_foreach">
+<function name="gda_server_operation_op_type_to_string">
 <description>
-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.
+Get a string version of @type
+
 
 </description>
 <parameters>
-<parameter name="qlist">
-<parameter_description> a #GdaQuarkList structure.
+<parameter name="type">
+<parameter_description> a #GdaServerOperationType value
 </parameter_description>
 </parameter>
-<parameter name="func">
-<parameter_description> the function to call for each key/value pair
+</parameters>
+<return> a non %NULL string (do not free or modify)
+</return>
+</function>
+
+<function name="gda_tree_get_nodes_in_path">
+<description>
+The returned list is a list of all the #GdaTreeNode nodes &lt;emphasis&gt;below&lt;/emphasis&gt; the node
+at the specified path.
+
+As a corner case if @tree_path is %NULL, then the returned list contains all the top level nodes.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree object
 </parameter_description>
 </parameter>
-<parameter name="user_data">
-<parameter_description> user data to pass to the function
+<parameter name="tree_path">
+<parameter_description> full path to the required nodes (if @use_names is %TRUE, then it must start with '/')
+</parameter_description>
+</parameter>
+<parameter name="use_names">
+<parameter_description> if %TRUE, then @tree_path will be interpreted as a unix style path, and if %FALSE,
+then @tree_path will be interpreted similarly to the #GtkTreePath's string representation.
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new list of #GdaTreeNode pointers, free it with g_slist_free()
+
+</return>
 </function>
 
 <function name="gda_value_get_list">
@@ -5215,11 +6957,58 @@ of each pair, and the given user_data parameter. @qlist may not be modified whil
 </return>
 </function>
 
+<function name="gda_tree_clean">
+<description>
+Removes any node in @tree
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree object
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_sql_statement_copy">
+<description>
+Creates a copy of @stmt.
+
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaSqlStatement
+</return>
+</function>
+
+<function name="gda_init">
+<description>
+Initializes the GDA library, must be called prior to any Libgda usage. Note that unless the
+LIBGDA_NO_THREADS environment variable is set (to any value), the GLib thread system will
+be initialized as well if not yet initialized.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_data_model_add_data_from_xml_node">
 <description>
 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.
+
 
 </description>
 <parameters>
@@ -5228,7 +7017,11 @@ in the $prefix/share/libgda/dtd/libgda-array.dtd file).
 </parameter_description>
 </parameter>
 <parameter name="node">
-<parameter_description> an XML node representing a &amp;lt;gda_array_data&amp;gt; XML node.
+<parameter_description> an XML node representing a &lt;gda_array_data&gt; XML node.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -5238,7 +7031,7 @@ in the $prefix/share/libgda/dtd/libgda-array.dtd file).
 
 <function name="gda_data_select_compute_modification_statements">
 <description>
-Makes @model try to compute INSERT, UPDATE and DELETE statements to be used when modifying @model&apos;s contents.
+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
 
 
@@ -5260,7 +7053,7 @@ computed
 
 <function name="gda_connection_event_set_description">
 <description>
-Sets @event&apos;s @description. This function should not be called directly.
+Sets @event's @description. This function should not be called directly.
 
 </description>
 <parameters>
@@ -5307,7 +7100,7 @@ Closes the connection to the underlying data source, without emiting any warning
 <function name="gda_vconnection_hub_add">
 <description>
 Make all the tables of @cnc appear as tables (of the same name) in the @hub connection.
-If the @ns is not %NULL, then within @hub, the tables will be accessible using the &apos;@ns  table_name&apos;
+If the @ns is not %NULL, then within @hub, the tables will be accessible using the '@ns  table_name'
 notation.
 
 Within any instance of @hub, there can be only one added connection where @ns is %NULL.
@@ -5336,20 +7129,40 @@ Within any instance of @hub, there can be only one added connection where @ns is
 </return>
 </function>
 
-<function name="gda_data_proxy_get_sample_size">
+<function name="gda_sql_expr_free">
 <description>
-Get the size of each chunk of data displayed at a time.
+Frees a #GdaSqlExpr structure and its members.
 
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr to be freed.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the chunk (or sample) size, or 0 if chunking is disabled.
-</return>
+<return></return>
+</function>
+
+<function name="gda_sql_statement_update_take_table_name">
+<description>
+Sets the name of the table to delete from in @stmt.
+
+ value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a table name, as a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
 </function>
 
 <function name="gda_value_set_timestamp">
@@ -5370,11 +7183,23 @@ Stores @val into @value.
 <return></return>
 </function>
 
+<function name="gda_tree_node_get_type">
+<description>
+Registers the #GdaTreeNode class on the GLib type system.
+
+
+</description>
+<parameters>
+</parameters>
+<return> the GType identifying the class.
+</return>
+</function>
+
 <function name="gda_get_default_handler">
 <description>
 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 accoutn the locale).
+taking into account the locale).
 
 The returned pointer is %NULL if there is no default data handler available for the @for_type data type
 
@@ -5390,41 +7215,31 @@ The returned pointer is %NULL if there is no default data handler available for
 </return>
 </function>
 
-<function name="gda_connection_add_event">
+<function name="gda_sql_select_target_new">
 <description>
-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 &quot;error&quot; signal, to which clients can connect to be
-informed of events.
+Creates a new #GdaSqlSelectTarget structure and sets its parent to @parent. A
+#GdaSqlSelectTarget is the table in a SELECT statement.
 
-WARNING: the reference to the @event object is stolen by this function!
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object.
-</parameter_description>
-</parameter>
-<parameter name="event">
-<parameter_description> is stored internally, so you don&apos;t need to unref it.
+<parameter name="parent">
+<parameter_description> a #GdaSqlSelectFrom
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new #GdaSqlSelectTarget structure.
+</return>
 </function>
 
 <function name="gda_xa_transaction_commit">
 <description>
 Commits a distributed transaction (managed by @xa_trans). The commit is composed of two phases:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a PREPARE phase where all the connections are required to store their transaction data to a 
-permanent place (to be able to complete the commit should a problem occur afterwards)&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a COMMIT phase where the transaction data is actually written to the database&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;a PREPARE phase where all the connections are required to store their transaction data to a 
+permanent place (to be able to complete the commit should a problem occur afterwards)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;a COMMIT phase where the transaction data is actually written to the database&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 If the PREPARE phase fails for any of the connection registered with @xa_trans, then the distributed commit
 fails and FALSE is returned. During the COMMIT phase, some commit may actually fail but the transaction can
@@ -5450,19 +7265,13 @@ still be completed because the PREPARE phase succeeded (through the recover meth
 </return>
 </function>
 
-<function name="gda_data_proxy_get_sample_start">
+<function name="gda_data_select_get_type">
 <description>
-Get the row number of the first row to be displayed.
-
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
-</parameter_description>
-</parameter>
 </parameters>
-<return> the number of the first row being displayed.
+<return> the #GType of GdaDataSelect.
 </return>
 </function>
 
@@ -5497,12 +7306,8 @@ Performs the reverse of gda_blob_to_string().
 <parameter_description> a string to convert
 </parameter_description>
 </parameter>
-<parameter name="blob">
-<parameter_description> a non filled @GdaBlob structure
-</parameter_description>
-</parameter>
 </parameters>
-<return> TRUE if no error were found in @str, or FALSE otherwise
+<return> a new #gdaBlob if no error were found in @str, or NULL otherwise
 </return>
 </function>
 
@@ -5523,6 +7328,8 @@ Makes a new #GValue of type #GDA_TYPE_BLOB with the data contained by @val.
 </parameter>
 </parameters>
 <return> the newly created #GValue.
+
+Free-function: gda_value_free
 </return>
 </function>
 
@@ -5578,12 +7385,12 @@ the returned value is boolean, and gives no idea about ordering.
 
 The two values must be of the same type, with the exception that a value of any type can be
 compared to a GDA_TYPE_NULL value, specifically:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if @value1 and @value2 are both GDA_TYPE_NULL values then the returned value is 0&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if @value1 is a GDA_TYPE_NULL value and @value2 is of another type then the returned value is 1&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if @value1 is of another type and @value2 is a GDA_TYPE_NULL value then the returned value is 1&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;in all other cases, @value1 and @value2 must be of the same type and their values are compared&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;if @value1 and @value2 are both GDA_TYPE_NULL values then the returned value is 0&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;if @value1 is a GDA_TYPE_NULL value and @value2 is of another type then the returned value is 1&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;if @value1 is of another type and @value2 is a GDA_TYPE_NULL value then the returned value is 1&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;in all other cases, @value1 and @value2 must be of the same type and their values are compared&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 
 </description>
@@ -5603,7 +7410,7 @@ compared to a GDA_TYPE_NULL value, specifically:
 
 <function name="gda_sql_table_copy">
 <description>
-Creates a new #GdaSqlTable structure initated with the values stored in @table.
+Creates a new #GdaSqlTable structure initiated with the values stored in @table.
 
 
 </description>
@@ -5617,6 +7424,24 @@ Creates a new #GdaSqlTable structure initated with the values stored in @table.
 </return>
 </function>
 
+<function name="gda_server_operation_del_item_from_sequence">
+<description>
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
+</parameter_description>
+</parameter>
+<parameter name="item_path">
+<parameter_description> the path to the sequence's item to remove (like &quot;/SEQ_NAME/5&quot; for instance)
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if the specified node has been removed from the sequence
+</return>
+</function>
+
 <function name="gda_connection_is_opened">
 <description>
 Checks whether a connection is open or not.
@@ -5629,41 +7454,99 @@ Checks whether a connection is open or not.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the connection is open, %FALSE if it&apos;s not.
+<return> %TRUE if the connection is open, %FALSE if it's not.
 </return>
 </function>
 
-<function name="gda_sqlite_handler_bin_new">
+<function name="gda_thread_wrapper_iterate">
 <description>
-Creates a data handler for binary values
+This method gives @wrapper a chance to check if some functions to be executed have finished
+&lt;emphasis&gt;for the calling thread&lt;/emphasis&gt;. It handles one function's execution result, and
+if @may_block is %TRUE, then it will block untill there is one (functions returning void are
+ignored).
 
+Since: 4.2
 
 </description>
 <parameters>
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="may_block">
+<parameter_description> whether the call may block
+</parameter_description>
+</parameter>
 </parameters>
-<return> the new object
-</return>
+<return></return>
 </function>
 
 <function name="gda_set_remove_holder">
 <description>
+Removes a #GdaHolder from the list of holders managed by @set
 
 </description>
 <parameters>
 <parameter name="set">
-<parameter_description>
+<parameter_description> a #GdaSet object
 </parameter_description>
 </parameter>
 <parameter name="holder">
-<parameter_description>
+<parameter_description> the #GdaHolder to remove from @set
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
+<function name="gda_sql_select_from_take_new_target">
+<description>
+Append @target to the targets in the FROM clause and set @target's parent to
+ from; after call this function @from owns @target then you must not free it.
+
+</description>
+<parameters>
+<parameter name="from">
+<parameter_description> a #GdaSqlSelectFrom structure
+</parameter_description>
+</parameter>
+<parameter name="target">
+<parameter_description> a #GdaSqlSelectTarget to take from
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_repetitive_statement_new">
+<description>
+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.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaRepetitiveStatement object
+
+</return>
+</function>
+
 <function name="gda_g_type_to_string">
 <description>
+Converts a GType to its string representation (use gda_g_type_from_string() for the
+operation in the other direction).
+
+This function wraps g_type_name() but for common types it provides an easier to
+understand and remember name. For Example the G_TYPE_STRING is converted to &quot;string&quot;
+whereas g_type_name() converts it to &quot;gchararray&quot;.
+
 
 </description>
 <parameters>
@@ -5672,7 +7555,8 @@ Creates a data handler for binary values
 </parameter_description>
 </parameter>
 </parameters>
-<return> the string representing the given #GType.
+<return> the GDA's string representing the given #GType or the name
+returned by #g_type_name.
 </return>
 </function>
 
@@ -5700,6 +7584,42 @@ Reorders the list of database objects within @mstruct in a way specified by @sor
 </return>
 </function>
 
+<function name="gda_connection_statement_to_sql">
+<description>
+Renders @stmt as an SQL statement, adapted to the SQL dialect used by @cnc
+
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
+</parameter_description>
+</parameter>
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="params">
+<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> SQL rendering flags, as #GdaStatementSqlFlag OR'ed values
+</parameter_description>
+</parameter>
+<parameter name="params_used">
+<parameter_description> a place to store the list of individual #GdaHolder objects within @params which have been used
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new string, or %NULL if an error occurred
+</return>
+</function>
+
 <function name="gda_binary_free">
 <description>
 Deallocates all memory associated to the given #GdaBinary.
@@ -5714,59 +7634,50 @@ Deallocates all memory associated to the given #GdaBinary.
 <return></return>
 </function>
 
-<function name="gda_sql_parser_parse_string_as_batch">
+<function name="gda_data_model_freeze">
 <description>
-Parse @sql and creates a #GdaBatch object which contains all the #GdaStatement objects created while parsing (one object
-per SQL statement). Empty statements (composed of spaces only) do not appear in the resulting object.
-
- sql is parsed and #GdaStatement objects are created as long as no error is found in @sql. If an error is found 
-at some point, then the parsing stops and @remain may contain a non %NULL pointer, @error may be set, and %NULL
-is returned.
-
-if @sql is %NULL, then the returned #GdaBatch object will contain no statement.
-
+Disables notifications of changes on the given data model. To
+re-enable notifications again, you should call the
+#gda_data_model_thaw function.
 
 </description>
 <parameters>
-<parameter name="parser">
-<parameter_description> a #GdaSqlParser object
-</parameter_description>
-</parameter>
-<parameter name="sql">
-<parameter_description> the SQL string to parse
-</parameter_description>
-</parameter>
-<parameter name="remain">
-<parameter_description> location to store a pointer to remaining part of @sql in case an error occurred while parsing @sql, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> location to store error, or %NULL
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaBatch object, or %NULL if an error occurred
-</return>
+<return></return>
 </function>
 
-<function name="gda_data_handler_get_sql_from_value">
+<function name="gda_sql_builder_add_case">
 <description>
-Creates a new string which is an SQL representation of the given value. If the value is NULL or
-is of type GDA_TYPE_NULL, the returned string is NULL.
+Creates a new CASE ... WHEN ... THEN ... ELSE ... END expression.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="dh">
-<parameter_description> an object which implements the #GdaDataHandler interface
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="value">
-<parameter_description> the value to be converted to a string
+<parameter name="test_expr">
+<parameter_description> the expression ID representing the test of the CASE, or %0
+</parameter_description>
+</parameter>
+<parameter name="else_expr">
+<parameter_description> the expression ID representing the ELSE expression, or %0
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a list, terminated by a %0, of (WHEN expression ID, THEN expression ID) representing
+all the test cases
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new string.
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
@@ -5780,58 +7691,67 @@ is of type GDA_TYPE_NULL, the returned string is NULL.
 </return>
 </function>
 
-<function name="gda_value_get_geometric_point">
+<function name="gda_connection_open_sqlite">
 <description>
+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.
+
 
 </description>
 <parameters>
-<parameter name="value">
-<parameter_description> a #GValue whose value we want to get.
+<parameter name="directory">
+<parameter_description> the directory the database file will be in, or %NULL for the default TMP directory
+</parameter_description>
+</parameter>
+<parameter name="filename">
+<parameter_description> the database file name
+</parameter_description>
+</parameter>
+<parameter name="auto_unlink">
+<parameter_description> if %TRUE, then the database file will be removed afterwards
 </parameter_description>
 </parameter>
 </parameters>
-<return> the value stored in @value.
+<return> a new #GdaConnection, or %NULL if an error occurred
 </return>
 </function>
 
-<function name="gda_data_handler_get_g_type_index">
+<function name="gda_sql_case_serialize">
 <description>
-Get the GType handled by the GdaDataHandler, at the given position (starting at zero).
+Creates a new string representing a CASE clause. You need to free the returned string
+using g_free();
 
 
 </description>
 <parameters>
-<parameter name="dh">
-<parameter_description> an object which implements the #GdaDataHandler interface
-</parameter_description>
-</parameter>
-<parameter name="index">
-<parameter_description> 
+<parameter name="sc">
+<parameter_description> a #GdaSqlCase structure
 </parameter_description>
 </parameter>
 </parameters>
-<return> the GType
+<return> a new string with the description of the CASE clause or &quot;null&quot; in case @sc is invalid.
 </return>
 </function>
 
 <function name="gda_column_set_attribute">
 <description>
-Set the value associated to a named attribute. The @attribute string is &apos;stolen&apos; by this method, and
+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 &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&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:
 
-&amp;lt;code&amp;gt;
+&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);
-&amp;lt;/code&amp;gt;
+&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
@@ -5859,28 +7779,25 @@ SELECT statement).
 <return></return>
 </function>
 
-<function name="gda_lockable_lock">
+<function name="gda_connection_event_get_gda_code">
 <description>
-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.
+Retrieve the code associated to @event.
 
-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).
 
 </description>
 <parameters>
-<parameter name="lockable">
-<parameter_description> a #GdaLockable object.
+<parameter name="event">
+<parameter_description> a #GdaConnectionEvent
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the #GdaConnectionEventCode event's code
+</return>
 </function>
 
-<function name="which">
+<function name="gda_log_enable">
 <description>
+Enables GDA logs.
 
 </description>
 <parameters>
@@ -5888,12 +7805,36 @@ Note: unlike g_mutex_lock(), this method recursive, which means a thread can loc
 <return></return>
 </function>
 
+<function name="gda_server_provider_create_parser">
+<description>
+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().
+
+
+</description>
+<parameters>
+<parameter name="provider">
+<parameter_description> a #GdaServerProvider provider object
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaSqlParser object, or %NULL.
+</return>
+</function>
+
 <function name="gda_rfc1738_decode">
 <description>
 Decodes @string using the RFC 1738 recommendations: the
-&amp;lt;constant&amp;gt;&amp;lt;&amp;gt;&amp;quot;#%{}|\^~[]&amp;apos;`;/?:@=&amp;amp;&amp;lt;/constant&amp;gt; and space characters are replaced by 
-&amp;lt;constant&amp;gt;&amp;quot;%%ab&amp;quot;&amp;lt;/constant&amp;gt; where
-&amp;lt;constant&amp;gt;ab&amp;lt;/constant&amp;gt; is the hexadecimal number corresponding to the character.
+&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;`;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
+&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
+&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character.
 
 @string should respect the RFC 1738 encoding. If this is not the case (for example if there
 is a &quot;%2z&quot; because 2z is not an hexadecimal value), then the part with the problem
@@ -5955,39 +7896,22 @@ information.
 </return>
 </function>
 
-<function name="gda_threader_start_thread">
+<function name="gda_tree_mgr_schemas_new">
 <description>
+Creates a new #GdaTreeManager object which will add one tree node for each database schema found
+in @cnc.
 
-
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="thread">
-<parameter_description> a #GdaThreader object
-</parameter_description>
-</parameter>
-<parameter name="func">
-<parameter_description> the function to be called in the newly created thread
-</parameter_description>
-</parameter>
-<parameter name="func_arg">
-<parameter_description> @func&apos;s argument
-</parameter_description>
-</parameter>
-<parameter name="ok_callback">
-<parameter_description> callback called when @func terminates
-</parameter_description>
-</parameter>
-<parameter name="cancel_callback">
-<parameter_description> callback called when @func terminates and the job has been cancelled
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> place to store an error when creating the thread or %NULL
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
 </parameters>
-<return> the id of the new job executed in another thread.
+<return> a new #GdaTreeManager object
+
 </return>
 </function>
 
@@ -6009,6 +7933,36 @@ Stores @val into @value.
 <return></return>
 </function>
 
+<function name="gda_vprovider_hub_new">
+<description>
+Creates a new GdaVirtualProvider object which allows one to 
+add and remove GdaDataModel objects as tables within a connection
+
+
+</description>
+<parameters>
+</parameters>
+<return> a new #GdaVirtualProvider object.
+</return>
+</function>
+
+<function name="gda_quark_list_new">
+<description>
+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.
+
+
+</description>
+<parameters>
+</parameters>
+<return> the newly created #GdaQuarkList.
+
+Free-function: gda_quark_list_free
+</return>
+</function>
+
 <function name="gda_connection_get_events">
 <description>
 Retrieves a list of the last errors occurred during the connection. The returned list is
@@ -6024,18 +7978,26 @@ Warning: the @cnc object may change the list if connection events occur
 </parameter_description>
 </parameter>
 </parameters>
-<return> a GList of #GdaConnectionEvent objects (the list should not be modified)
+<return> a #GList of #GdaConnectionEvent objects (the list should not be modified)
 </return>
 </function>
 
 <function name="gda_sql_identifier_remove_quotes">
 <description>
 Prepares @str to be compared:
-- if surrounded by double quotes, then just remove the quotes
+- if surrounded by double quotes or single quotes, then just remove the quotes
 - otherwise convert to lower case
 
-WARNING: @str must NOT be a composed identifier (&amp;lt;part1&amp;gt;.&quot;&amp;lt;part2&amp;gt;&quot; for example)
+The quoted string:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;must start and finish with the same single or double quotes character&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;can contain the delimiter character (the single or double quotes) in the string if every instance
+of it is preceeded with a backslash character or with the delimiter character itself&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+WARNING: @str must NOT be a composed identifier (&lt;part1&gt;.&quot;&lt;part2&gt;&quot; for example)
 
+Deprecated: 4.0.3: Not needed anymore because of the gda_sql_identifier_quote() function.
 
 </description>
 <parameters>
@@ -6045,6 +8007,7 @@ WARNING: @str must NOT be a composed identifier (&amp;lt;part1&amp;gt;.&quot;&am
 </parameter>
 </parameters>
 <return> @str
+
 </return>
 </function>
 
@@ -6069,6 +8032,9 @@ Creates a string representing the contents of @batch.
 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().
@@ -6084,6 +8050,9 @@ 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.
+
 
 </description>
 <parameters>
@@ -6100,7 +8069,7 @@ gda_data_model_set_values() methods.
 </parameter_description>
 </parameter>
 <parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter_description> a place to store errors, or %NULL.
 </parameter_description>
 </parameter>
 </parameters>
@@ -6137,7 +8106,7 @@ and should not be destroyed; any modification will affect the whole data model.
 
 <function name="gda_connection_event_get_event_type">
 <description>
-Get @event&apos;s severity (from a simple notice to a fatal event)
+Get @event's severity (from a simple notice to a fatal event)
 
 
 </description>
@@ -6151,34 +8120,94 @@ Get @event&apos;s severity (from a simple notice to a fatal event)
 </return>
 </function>
 
-<function name="gda_data_proxy_get_proxied_model">
+<function name="gda_sql_statement_trans_take_name">
 <description>
-Fetch the #GdaDataModel which @proxy does proxy
+Sets the name of the transaction
 
+ value's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING value
 </parameter_description>
 </parameter>
 </parameters>
-<return> the proxied data model
-</return>
+<return></return>
 </function>
 
-<function name="The">
+<function name="gda_thread_wrapper_connect_raw">
 <description>
- param default_etc_dir  A default path which will used as fallback.
- return A string containing the etc folder&apos;s path, which must be freed when
-no longer necessary. If BinReloc is not initialized, or if the initialization
-function failed, then a copy of default_etc_dir will be returned.
-If default_etc_dir is NULL, then NULL will be returned.
+Connects a callback function to a signal for a particular object. The difference with g_signal_connect() and
+similar functions are:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;the @callback argument is not a #GCallback function, so the callback signature is not
+dependent on the signal itself&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;the signal handler must not have to return any value&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;the @callback function will be called asynchronously, the caller may need to use 
+gda_thread_wrapper_iterate() to get the notification&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;if @private is set to %TRUE, then the @callback function will be called only
+if the signal has been emitted by @instance while doing a job on behalf of the current
+calling thread. If @private is set to %FALSE, then @callback will be called whenever @instance
+emits the @sig_name signal.&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Also note that signal handling is done asynchronously: when emitted in the worker thread, it
+will be &quot;queued&quot; to be processed in the user thread when it has the chance (when gda_thread_wrapper()
+is called directly or indirectly). The side effect is that the callback function is usually
+called long after the object emitting the signal has finished emitting it.
+
+To disconnect a signal handler, don't use any of the g_signal_handler_*() functions but the
+gda_thread_wrapper_disconnect() method.
+
+Since: 4.2
 
 </description>
 <parameters>
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance to connect to
+</parameter_description>
+</parameter>
+<parameter name="sig_name">
+<parameter_description> a string of the form &quot;signal-name::detail&quot;
+</parameter_description>
+</parameter>
+<parameter name="private_thread">
+<parameter_description>  set to %TRUE if @callback is to be invoked only if the signal has
+been emitted while in @wrapper's private sub thread (ie. used when @wrapper is executing some functions
+specified by gda_thread_wrapper_execute() or gda_thread_wrapper_execute_void()), and to %FALSE if the
+callback is to be invoked whenever the signal is emitted, independently of th thread in which the
+signal is emitted.
+</parameter_description>
+</parameter>
+<parameter name="private_job">
+<parameter_description> set to %TRUE if @callback is to be invoked only if the signal has
+been emitted when a job created for the calling thread is being executed, and to %FALSE
+if @callback has to be called whenever the @sig_name signal is emitted by @instance. Note that
+this argument is not taken into account if @private_thread is set to %FALSE.
+</parameter_description>
+</parameter>
+<parameter name="callback">
+<parameter_description> a #GdaThreadWrapperCallback function
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @callback's calls
+</parameter_description>
+</parameter>
 </parameters>
-<return></return>
+<return> the handler ID
+
+</return>
 </function>
 
 <function name="gda_connection_get_cnc_string">
@@ -6201,27 +8230,114 @@ to open a connection on the underlying data source.
 </return>
 </function>
 
-<function name="gda_sql_table_new">
+<function name="gda_sql_builder_get_sql_statement">
 <description>
-Creates a new #GdaSqlTable structure, using @parent as its parent part.
+Creates a new #GdaSqlStatement structure from @builder's contents.
 
+The returned pointer belongs to @builder's internal representation.
+Use gda_sql_statement_copy() if you need to keep it.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="parent">
-<parameter_description> a #GdaSqlStatementSelect, #GdaSqlStatementInsert, #GdaSqlStatementDelete, #GdaSqlStatementUpdate
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaSqlTable structure.
+<return> a #GdaSqlStatement pointer
+
 </return>
 </function>
 
+<function name="gda_server_operation_set_value_at">
+<description>
+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 &quot;/TABLE_OPTIONS_P/TABLE_ENGINE&quot; 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[&quot;@value&quot;]]&gt;&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;If the path corresponds to a sequence item like for example &quot;/SEQUENCE_NAME/5/NAME&quot; for
+the &quot;NAME&quot; value of the 6th item of the &quot;SEQUENCE_NAME&quot; 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 &quot;/ARRAY/@@COLUMN/5&quot; for the value at the
+6th row of the &quot;COLUMN&quot; column of the &quot;ARRAY&quot; 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;
+
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a string
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors or %NULL
+</parameter_description>
+</parameter>
+<parameter name="path_format">
+<parameter_description> a complete path to a node (starting with &quot;/&quot;)
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to use with @path_format to make a complete path
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if no error occurred
+</return>
+</function>
+
+<function name="gda_sql_statement_insert_take_select">
+<description>
+Specifies a SELECT statement, the values inserted will be the result set of @select. @select's 
+ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="select">
+<parameter_description> a SELECT #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_meta_struct_complement_depend">
 <description>
 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.
+
 
 </description>
 <parameters>
@@ -6247,22 +8363,22 @@ of @dbo.
 Add more arguments if the flag needs then: 
 
 GDA_EASY_CREATE_TABLE_FKEY_FLAG:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;string with the table&apos;s name referenced&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;an integer with the number pairs &quot;local_field&quot;, &quot;referenced_field&quot; 
-used in the reference&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;Pairs of &quot;local_field&quot;, &quot;referenced_field&quot; to use, must match
-the number specified above.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a string with the action for ON DELETE; can be: &quot;RESTRICT&quot;, &quot;CASCADE&quot;, 
-&quot;NO ACTION&quot;, &quot;SET NULL&quot; and &quot;SET DEFAULT&quot;. Example: &quot;ON UPDATE CASCADE&quot;.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a string with the action for ON UPDATE (see above).&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt; 
+&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 &quot;local_field&quot;, &quot;referenced_field&quot; 
+used in the reference&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;Pairs of &quot;local_field&quot;, &quot;referenced_field&quot; 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: &quot;RESTRICT&quot;, &quot;CASCADE&quot;, 
+&quot;NO ACTION&quot;, &quot;SET NULL&quot; and &quot;SET DEFAULT&quot;. Example: &quot;ON UPDATE CASCADE&quot;.&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 colum&apos;s name the column&apos;s GType and #GdaEasyCreateTableFlag 
+arguments, a colum's name the column's GType and #GdaEasyCreateTableFlag 
 flag, you need to finish the list using NULL.
 
-You&apos;ll be able to modify the #GdaServerOperation object to add custom options
+You'll be able to modify the #GdaServerOperation object to add custom options
 to the operation. When finish call #gda_perform_create_table 
 or #gda_server_operation_perform_operation
 in order to execute the operation.
@@ -6275,8 +8391,7 @@ in order to execute the operation.
 </parameter_description>
 </parameter>
 <parameter name="table_name">
-<parameter_description>
- num_columns
+<parameter_description> name of the table to create
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -6284,7 +8399,7 @@ in order to execute the operation.
 </parameter_description>
 </parameter>
 <parameter name="Varargs">
-<parameter_description> group of three arguments for column&apos;s name, column&apos;s #GType 
+<parameter_description> group of three arguments for column's name, column's #GType 
 and a #GdaEasyCreateTableFlag flag, finished with NULL
 </parameter_description>
 </parameter>
@@ -6309,10 +8424,37 @@ Get the number of rows in the proxied data model
 </return>
 </function>
 
+<function name="gda_sql_builder_add_function">
+<description>
+Builds a new expression which reprenents a function applied to some arguments
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="func_name">
+<parameter_description> the functions's name
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> a list, terminated with %0, of each function's argument's ID
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
+</return>
+</function>
+
 <function name="gda_data_proxy_get_values">
 <description>
-Retreive a whole list of values from the @proxy store. This function calls gda_data_proxy_get_value()
-for each column index specified in @cols_index, and generates a #GSlist on the way.
+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.
 
 
 </description>
@@ -6326,15 +8468,32 @@ for each column index specified in @cols_index, and generates a #GSlist on the w
 </parameter_description>
 </parameter>
 <parameter name="cols_index">
-<parameter_description>
+<parameter_description> array containing the columns for which the values are requested
 </parameter_description>
 </parameter>
 <parameter name="n_cols">
-<parameter_description>
+<parameter_description> size of @cols_index
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new list of values (the list must be freed, not the values), or %NULL if an error occurred
+<return> a new list of values (the list must be freed, not the values), 
+or %NULL if an error occurred
+</return>
+</function>
+
+<function name="gda_data_proxy_get_sample_start">
+<description>
+Get the number of the first row to be available in @proxy (in reference to the proxied data model)
+
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of the first proxied model's row.
 </return>
 </function>
 
@@ -6380,75 +8539,19 @@ This is just a convenient function to perform a drop a table operation.
 </return>
 </function>
 
-<function name="gda_meta_store_schema_add_custom_object">
+<function name="gda_data_model_dir_get_errors">
 <description>
-The internal database used by @store can be &apos;augmented&apos; 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:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if the object is equal to the provided description then TRUE is returned&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;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&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
-
-The @xml_description defines the table of view&apos;s definition, for example:
-&amp;lt;programlisting&amp;gt;&amp;lt;![CDATA[&amp;lt;table name=&quot;mytable&quot;&amp;gt;
-    &amp;lt;column name=&quot;id&quot; pkey=&quot;TRUE&quot;/&amp;gt;
-    &amp;lt;column name=&quot;value&quot;/&amp;gt;
-&amp;lt;/table&amp;gt;]]&amp;gt;&amp;lt;/programlisting&amp;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;):
-&amp;lt;programlisting&amp;gt;&amp;lt;![CDATA[&amp;lt;!ELEMENT table (column*,check*,fkey*,unique*)&amp;gt;
-&amp;lt;!ATTLIST table
-          name NMTOKEN #REQUIRED&amp;gt;
-
-&amp;lt;!ELEMENT column EMPTY&amp;gt;
-&amp;lt;!ATTLIST column
-          name NMTOKEN #REQUIRED
-          type CDATA #IMPLIED
-          pkey (TRUE|FALSE) #IMPLIED
-          autoinc (TRUE|FALSE) #IMPLIED
-          nullok (TRUE|FALSE) #IMPLIED&amp;gt;
-
-&amp;lt;!ELEMENT check (#PCDATA)&amp;gt;
-
-&amp;lt;!ELEMENT fkey (part+)&amp;gt;
-&amp;lt;!ATTLIST fkey
-          ref_table NMTOKEN #REQUIRED&amp;gt;
-
-&amp;lt;!ELEMENT part EMPTY&amp;gt;
-&amp;lt;!ATTLIST part
-          column NMTOKEN #IMPLIED
-          ref_column NMTOKEN #IMPLIED&amp;gt;
-
-&amp;lt;!ELEMENT unique (column*)&amp;gt;
-
-&amp;lt;!ELEMENT view (definition)&amp;gt;
-&amp;lt;!ATTLIST view
-          name NMTOKEN #REQUIRED
-          descr CDATA #IMPLIED&amp;gt;
-
-&amp;lt;!ELEMENT definition (#PCDATA)&amp;gt;]]&amp;gt;&amp;lt;/programlisting&amp;gt;
+Get the list of errors which have occurred while using @model
 
 
 </description>
 <parameters>
-<parameter name="store">
-<parameter_description> a #GdaMetaStore object
-</parameter_description>
-</parameter>
-<parameter name="xml_description">
-<parameter_description> an XML description of the table or view to add to @store
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="model">
+<parameter_description> a #GdaDataModelDir object
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the new object has sucessfully been added
+<return> a read-only list of #GError pointers, or %NULL if no error has occurred
 </return>
 </function>
 
@@ -6472,7 +8575,7 @@ Stores @val into @value.
 
 <function name="gda_execute_sql_command">
 <description>
-This is a convenient function to execute a SQL command over the opened connection.
+This is a convenience function to execute a SQL command over the opened connection.
 
 
 </description>
@@ -6482,7 +8585,7 @@ This is a convenient function to execute a SQL command over the opened connectio
 </parameter_description>
 </parameter>
 <parameter name="sql">
-<parameter_description> a query statament must begin with &quot;SELECT&quot;
+<parameter_description> a query statement must begin with &quot;SELECT&quot;
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -6504,7 +8607,7 @@ This is a convenient function to execute a SQL command over the opened connectio
 </parameter_description>
 </parameter>
 </parameters>
-<return> @column&apos;s default value, as a #GValue object.
+<return> @column's default value, as a #GValue object.
 </return>
 </function>
 
@@ -6520,102 +8623,107 @@ Registers the #GdaConnection class on the GLib type system.
 </return>
 </function>
 
-<function name="gda_sql_select_target_take_table_alias">
+<function name="gda_sql_statement_set_isol_level">
 <description>
-Sets the target alias (AS) to the string holded by @alias; after call
-this function @alias is freed.
+Sets the transaction level of the transaction
 
 </description>
 <parameters>
-<parameter name="target">
-<parameter_description> a #GdaSqlSelectTarget structure
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
 </parameter_description>
 </parameter>
-<parameter name="alias">
-<parameter_description> a #GValue holding the alias string to take from
+<parameter name="level">
+<parameter_description> the transacion level
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_data_model_import_new_xml_node">
+<function name="gda_mutex_lock">
 <description>
-Creates a new #GdaDataModel and loads the data in @node. The resulting data model
-can be accessed in a random way.
+Locks @mutex. If @mutex is already locked by another thread, the current thread will block until @mutex 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(), the #GdaMutex is recursive, which means a thread can lock it several times (and has
+to unlock it as many times to actually unlock it).
 
 </description>
 <parameters>
-<parameter name="node">
-<parameter_description> an XML node corresponding to a &amp;lt;data-array&amp;gt; tag
+<parameter name="mutex">
+<parameter_description> a #GdaMutex
 </parameter_description>
 </parameter>
 </parameters>
-<return> a pointer to the newly created #GdaDataModel.
-</return>
+<return></return>
 </function>
 
-<function name="gda_connection_statement_prepare">
+<function name="gda_data_meta_wrapper_get_type">
 <description>
-Ask the database accessed through the @cnc connection to prepare the usage of @stmt. This is only usefull
-if @stmt will be used more than once (however some database providers may always prepare stamements 
-before executing them).
 
-This function is also usefull to make sure @stmt is fully understood by the database before actually executing it.
+</description>
+<parameters>
+</parameters>
+<return> the #GType of GdaDataMetaWrapper.
+</return>
+</function>
 
-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
-&amp;lt;![CDATA[&quot;SELECT * FROM ##tablename::string&quot;]]&amp;gt; because database usually don&apos;t allow variables to be used in place of a 
-table name).
+<function name="gda_sql_param_spec_serialize">
+<description>
+Creates a new string representing @pspec.
 
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection
-</parameter_description>
-</parameter>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="pspec">
+<parameter_description> a #GdaSqlParamSpec pointer
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred.
+<return> a new string.
 </return>
 </function>
 
-<function name="gda_statement_check_structure">
+<function name="gda_server_provider_get_version">
 <description>
-Checks that @stmt&apos;s structure is correct.
+Get the version of the provider.
 
 
 </description>
 <parameters>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object
+<parameter name="provider">
+<parameter_description> a #GdaServerProvider object.
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+</parameters>
+<return> a string containing the version identification.
+</return>
+</function>
+
+<function name="gda_quark_list_clear">
+<description>
+Removes all strings in the given #GdaQuarkList.
+
+</description>
+<parameters>
+<parameter name="qlist">
+<parameter_description> a #GdaQuarkList.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @stmt&apos;s structure is correct
-</return>
+<return></return>
 </function>
 
 <function name="gda_set_is_valid">
 <description>
-This method tells if all @set&apos;s #GdaHolder objects are valid, and if
+This method tells if all @set's #GdaHolder objects are valid, and if
 they represent a valid combination of values, as defined by rules
 external to Libgda: the &quot;validate-set&quot; signal is emitted and if none of the signal handlers return an
 error, then the returned value is TRUE, otherwise the return value is FALSE as soon as a signal handler
-Returns: TRUE if the set is valid
+returns an error.
+
 
 </description>
 <parameters>
@@ -6649,45 +8757,9 @@ the proxied data model.
 </return>
 </function>
 
-<function name="gda_data_model_to_xml_node">
-<description>
-Converts a #GdaDataModel into a xmlNodePtr (as used in libxml).
-
-
-</description>
-<parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
-</parameter_description>
-</parameter>
-<parameter name="cols">
-<parameter_description> an array containing which columns of @model will be exported, or %NULL for all columns
-</parameter_description>
-</parameter>
-<parameter name="nb_cols">
-<parameter_description> the number of columns in @cols
-</parameter_description>
-</parameter>
-<parameter name="rows">
-<parameter_description> an array containing which rows of @model will be exported, or %NULL for all rows
-</parameter_description>
-</parameter>
-<parameter name="nb_rows">
-<parameter_description> the number of rows in @rows
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> name to use for the XML resulting table.
-</parameter_description>
-</parameter>
-</parameters>
-<return> a xmlNodePtr representing the whole data model, or %NULL if an error occurred
-</return>
-</function>
-
 <function name="gda_data_model_row_inserted">
 <description>
-Emits the &apos;row_inserted&apos; and &apos;changed&apos; signals on @model. 
+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.
@@ -6719,12 +8791,35 @@ instead of the current user locale.
 </return>
 </function>
 
+<function name="gda_connection_internal_transaction_rolledback">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="trans_name">
+<parameter_description> transaction's name, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_server_provider_string_to_value">
 <description>
 Use @provider to create a new #GValue from a single string representation. 
 
 The @preferred_type can optionally ask @provider to return a #GValue of the requested type 
-(but if such a value can&apos;t be created from @string, then %NULL is returned); 
+(but if such a value can't be created from @string, then %NULL is returned); 
 pass G_TYPE_INVALID if any returned type is acceptable.
 
 The returned value is either a new #GValue or %NULL in the following cases:
@@ -6732,6 +8827,10 @@ The returned value is either a new #GValue or %NULL in the following cases:
 - the provider does not handle @preferred_type
 - the provider could not make a #GValue from @string
 
+If @dbms_type is not %NULL, then if will contain a constant string representing
+the database type used for the conversion if the conversion was successfull, or %NULL
+otherwise.
+
 
 </description>
 <parameters>
@@ -6751,6 +8850,10 @@ The returned value is either a new #GValue or %NULL in the following cases:
 <parameter_description> a #GType, or G_TYPE_INVALID
 </parameter_description>
 </parameter>
+<parameter name="dbms_type">
+<parameter_description> place to get the actual database type used if the conversion succeeded, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
 <return> a new #GValue, or %NULL
 </return>
@@ -6775,8 +8878,8 @@ as it was just after creation).
 
 <function name="gda_sql_select_field_serialize">
 <description>
-Creates a new string representing an expresion used as field in a SELECT statement
-before the FROM clausure.
+Creates a new string representing an expression used as field in a SELECT statement
+before the FROM clause.
 
 
 </description>
@@ -6790,25 +8893,73 @@ before the FROM clausure.
 </return>
 </function>
 
-<function name="gda_data_proxy_get_proxied_model_n_cols">
+<function name="gda_sql_statement_type_to_string">
 <description>
-Get the number of columns in the proxied data model
+Converts a #GdaSqlStatementType to a string, see also gda_sql_statement_string_to_type()
 
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="type">
+<parameter_description> a #GdaSqlStatementType value
 </parameter_description>
 </parameter>
 </parameters>
-<return> the number of columns, or -1 if an error occurred
+<return> a constant string
+</return>
+</function>
+
+<function name="gda_tree_get_node_path">
+<description>
+Get the path associated to @node in @tree.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode node in @tree
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new string, or %NULL if @node is not in @tree
+
+</return>
+</function>
+
+<function name="gda_connection_add_event_string">
+<description>
+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.
+
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object.
+</parameter_description>
+</parameter>
+<parameter name="str">
+<parameter_description> a format string (see the printf(3) documentation).
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> the arguments to insert in the error message.
+</parameter_description>
+</parameter>
+</parameters>
+<return> 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.
 </return>
 </function>
 
 <function name="gda_column_set_allow_null">
 <description>
-Sets the &apos;allow null&apos; flag of the given column.
+Sets the 'allow null' flag of the given column.
 
 </description>
 <parameters>
@@ -6840,9 +8991,82 @@ Get a list of the #GdaStatement objects contained in @batch
 </return>
 </function>
 
+<function name="gda_sql_operation_serialize">
+<description>
+Creates a new string representing an operator. You need to free the returned string
+using g_free();
+
+
+</description>
+<parameters>
+<parameter name="operation">
+<parameter_description> a #GdaSqlOperation structure
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new string with the description of the operator or &quot;null&quot; in case @operation is invalid.
+</return>
+</function>
+
+<function name="gda_tree_manager_add_new_node_attribute">
+<description>
+Requests that for any new node managed (eg. created) by @manager, a new attribute will be set. This allows
+one to customize the attributes of new nodes created by an existing #GdaTreeManager.
+
+As a side effect, if @value is %NULL, then the corresponding attribute, if it was set, is unset.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="manager">
+<parameter_description> a #GdaTreeManager
+</parameter_description>
+</parameter>
+<parameter name="attribute">
+<parameter_description> an attribute name
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the attribute's value, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_statement_check_validity">
+<description>
+If @cnc is not %NULL then checks that every object (table, field, function) used in @stmt 
+actually exists in @cnc's database
+
+If @cnc is %NULL, then cleans anything related to @cnc in @stmt.
+
+See gda_sql_statement_check_validity() for more information.
+
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if every object actually exists in @cnc's database
+</return>
+</function>
+
 <function name="gda_sql_select_field_take_alias">
 <description>
-Sets the &apos;as&apos; field&apos;s string in the #GdaSqlSelectField structure. @alias is freed
+Sets the 'as' field's string in the #GdaSqlSelectField structure. @alias is freed
 after call this function.
 
 
@@ -6860,23 +9084,56 @@ after call this function.
 <return></return>
 </function>
 
-<function name="gda_data_model_array_copy_model">
+<function name="gda_virtual_connection_internal_set_provider_data">
 <description>
-Makes a copy of @src into a new #GdaDataModelArray object
+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.
+
+</description>
+<parameters>
+<parameter name="vcnc">
+<parameter_description> a #GdaConnection object
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> an opaque structure, known only to the provider for which @vcnc is opened
+</parameter_description>
+</parameter>
+<parameter name="destroy_func">
+<parameter_description> function to call when the connection closes and @data needs to be destroyed
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_tree_manager_create_node">
+<description>
+Requests that @manager creates a new #GdaTreeNode. The new node is not in any
+way linked to @manager yet, consider this method as a #GdaTreeNode factory.
 
+This method is usually used when implementing a #GdaTreeManagerNodesFunc function (to create nodes),
+or when subclassing the #GdaTreeManager.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="src">
-<parameter_description> a #GdaDataModel to copy data from
+<parameter name="manager">
+<parameter_description> a #GdaTreeManager
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="parent">
+<parameter_description> the parent the new node may have, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> name given to the new node, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new data model, or %NULL if an error occurred
+<return> a new #GdaTreeNode
+
 </return>
 </function>
 
@@ -6902,6 +9159,41 @@ occurs, then it is possible that not all the changes to all the rows have been a
 </return>
 </function>
 
+<function name="gda_sql_table_new">
+<description>
+Creates a new #GdaSqlTable structure, using @parent as its parent part.
+
+
+</description>
+<parameters>
+<parameter name="parent">
+<parameter_description> a #GdaSqlStatementSelect, #GdaSqlStatementInsert, #GdaSqlStatementDelete, #GdaSqlStatementUpdate
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaSqlTable structure.
+</return>
+</function>
+
+<function name="gda_xa_transaction_unregister_connection">
+<description>
+Unregisters @cnc to be used by @xa_trans to create a distributed transaction. This is
+the opposite of gda_xa_transaction_register_connection().
+
+</description>
+<parameters>
+<parameter name="xa_trans">
+<parameter_description> a #GdaXaTransaction object
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> the connection to add to @xa_trans
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_connection_statement_execute_select">
 <description>
 Executes a selection command on the given connection. The gda_execute_select_command() method can be easier
@@ -6941,6 +9233,18 @@ data source, or %NULL if an error occurred
 </return>
 </function>
 
+<function name="gda_thread_wrapper_get_type">
+<description>
+Registers the #GdaThreadWrapper class on the GLib type system.
+
+
+</description>
+<parameters>
+</parameters>
+<return> the GType identifying the class.
+</return>
+</function>
+
 <function name="gda_text_to_alphanum">
 <description>
 The &quot;encoding&quot; consists in replacing non
@@ -6951,7 +9255,7 @@ of the non alphanumeric char.
 </description>
 <parameters>
 <parameter name="text">
-<parameter_description>
+<parameter_description> the text to convert
 </parameter_description>
 </parameter>
 </parameters>
@@ -6959,42 +9263,92 @@ of the non alphanumeric char.
 </return>
 </function>
 
-<function name="gda_sql_select_field_take_expr">
+<function name="gda_server_operation_get_sequence_name">
 <description>
-Sets the expression field in the #GdaSqlSelectField structure to point to @expr
-and modify it to sets its parent to @field.
 
 </description>
 <parameters>
-<parameter name="field">
-<parameter_description> a #GdaSqlSelectField structure
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
 </parameter_description>
 </parameter>
-<parameter name="expr">
-<parameter_description> a #GdaSqlExpr to take from
+<parameter name="path">
+<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the name of the sequence at @path
+</return>
+</function>
+
+<function name="gda_timestamp_valid">
+<description>
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="timestamp">
+<parameter_description> a #GdaTimestamp value to check if it is valid
+</parameter_description>
+</parameter>
+</parameters>
+<return> #TRUE if #GdaTimestamp is valid; %FALSE otherwise.
+
+</return>
 </function>
 
-<function name="_gda_meta_store_cancel_data_reset">
+<function name="gda_data_proxy_get_sample_size">
 <description>
-Cancels any modification done since _gda_meta_store_begin_data_reset() was called.
+Get the size of each chunk of data displayed at a time.
 
 
 </description>
 <parameters>
-<parameter name="store">
-<parameter_description> a #GdaMetaStore object
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+</parameters>
+<return> the chunk (or sample) size, or 0 if chunking is disabled.
+</return>
+</function>
+
+<function name="gda_server_operation_get_sql_identifier_at">
+<description>
+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).
+
+Since: 4.0.3
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="prov">
+<parameter_description> a #GdaServerProvider, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="path_format">
+<parameter_description> a complete path to a node (starting with &quot;/&quot;)
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to use with @path_format to make a complete path
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> 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).
+
 </return>
 </function>
 
@@ -7010,25 +9364,40 @@ Registers the #GdaConfig class on the GLib type system.
 </return>
 </function>
 
-<function name="gda_holder_force_invalid">
+<function name="gda_server_operation_get_root_nodes">
 <description>
-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().
+Get an array of strings containing the paths of nodes situated at the root of @op.
 
- holder&apos;s value is set to %NULL.
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new array, which must be freed with g_strfreev().
+</return>
 </function>
 
 <function name="gda_g_type_from_string">
 <description>
+Converts a named type to ts GType type (also see the gda_g_type_to_string() function).
+
+This function is a wrapper around the g_type_from_name() function, but also recognizes
+some type synonyms such as:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;int&quot; for G_TYPE_INT&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;string&quot; for G_TYPE_STRING&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;date&quot; for G_TYPE_DATE&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;time&quot; for GDA_TYPE_TIME&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;timestamp&quot; for GDA_TYPE_TIMESTAMP&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;boolean&quot; for G_TYPE_BOOLEAN&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;blob&quot; for GDA_TYPE_BLOB&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;binary&quot; for GDA_TYPE_BINARY&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;null&quot; for GDA_TYPE_NULL&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
 
 </description>
 <parameters>
@@ -7037,13 +9406,46 @@ to it using gda_holder_set_value() or gda_holder_take_value().
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GType represented by the given @str.
+<return> the #GType represented by the given @str, or #G_TYPE_INVALID if not found
 </return>
 </function>
 
+<function name="gda_sql_builder_add_field_value">
+<description>
+Valid only for: INSERT, UPDATE statements.
+
+Specifies that the field represented by @field_name will be set to the value identified
+by @... of type @type. See gda_sql_builder_add_expr() for more information.
+
+This is a C convenience function. See also gda_sql_builder_add_field_value_as_gvalue().
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="field_name">
+<parameter_description> a field name
+</parameter_description>
+</parameter>
+<parameter name="type">
+<parameter_description> the GType of the following argument
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> value to set the field to, of the type specified by @type
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_connection_event_set_code">
 <description>
-Sets @event&apos;s code: the code is specific to the provider being used.
+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.
 
@@ -7063,6 +9465,51 @@ This function should not be called directly
 <return></return>
 </function>
 
+<function name="gda_update_row_in_table_v">
+<description>
+ col_names and @values must have length (&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 &lt;table&gt; SET &lt;column_name&gt; = &lt;new_value&gt; [,...] WHERE &lt;condition_column_name&gt; = &lt;condition_value&gt;.
+
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> an opened connection
+</parameter_description>
+</parameter>
+<parameter name="table">
+<parameter_description> the table's name with the row's values to be updated
+</parameter_description>
+</parameter>
+<parameter name="condition_column_name">
+<parameter_description> the name of the column to used in the WHERE condition clause
+</parameter_description>
+</parameter>
+<parameter name="condition_value">
+<parameter_description> the @condition_column_type's GType
+</parameter_description>
+</parameter>
+<parameter name="col_names">
+<parameter_description> a list of column names (as const gchar *)
+</parameter_description>
+</parameter>
+<parameter name="values">
+<parameter_description> a list of values (as #GValue)
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+</return>
+</function>
+
 <function name="gda_data_model_get_attributes_at">
 <description>
 Get the attributes of the value stored at (row, col) in @model, which
@@ -7093,7 +9540,7 @@ if a row was added to @model.
 <function name="gda_set_get_source_for_model">
 <description>
 Finds the #GdaSetSource structure used in @set for which @model is a
-the data model, don&apos;t modify the returned structure
+the data model (the returned structure should not be modified).
 
 
 </description>
@@ -7107,13 +9554,13 @@ the data model, don&apos;t modify the returned structure
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaSetSource pointer or %NULL.
+<return> the requested #GdaSetSource pointer or %NULL.
 </return>
 </function>
 
 <function name="gda_connection_get_provider">
 <description>
-Get a pointer to the #GdaServerProvider object used to access the database
+Gets a pointer to the #GdaServerProvider object used to access the database
 
 
 </description>
@@ -7127,16 +9574,70 @@ Get a pointer to the #GdaServerProvider object used to access the database
 </return>
 </function>
 
-<function name="gda_vprovider_hub_new">
+<function name="gda_data_model_iter_set_value_at">
 <description>
-Creates a new GdaVirtualProvider object which allows one to 
-add and remove GdaDataModel objects as tables within a connection
+Sets a value in @iter, at the column specified by @col
+
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> a #GdaDataModelIter object
+</parameter_description>
+</parameter>
+<parameter name="col">
+<parameter_description> the column number
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue (not %NULL)
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+</return>
+</function>
+
+<function name="gda_sql_builder_select_join_targets">
+<description>
+Joins two targets in a SELECT statement, using the @join_type type of join.
+
+Note: if the target represented by @left_target_id is actually situated after (on the right) of
+the target represented by @right_target_id, then the actual type of join may be switched from
+%GDA_SQL_SELECT_JOIN_LEFT to %GDA_SQL_SELECT_JOIN_RIGHT or from %GDA_SQL_SELECT_JOIN_RIGHT to
+%GDA_SQL_SELECT_JOIN_LEFT.
 
+Since: 4.2
 
 </description>
 <parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="left_target_id">
+<parameter_description> the ID of the left target to use (not %0)
+</parameter_description>
+</parameter>
+<parameter name="right_target_id">
+<parameter_description> the ID of the right target to use (not %0)
+</parameter_description>
+</parameter>
+<parameter name="join_type">
+<parameter_description> the type of join
+</parameter_description>
+</parameter>
+<parameter name="join_expr">
+<parameter_description> joining expression's ID, or %0
+</parameter_description>
+</parameter>
 </parameters>
-<return> a new #GdaVirtualProvider object.
+<return> the ID of the new join, or %0 if there was an error
+
 </return>
 </function>
 
@@ -7144,7 +9645,7 @@ add and remove GdaDataModel objects as tables within a connection
 <description>
 Changes the SQLSTATE code of @event, this function should not be called directly
 
-Sets @event&apos;s SQL state.
+Sets @event's SQL state.
 
 </description>
 <parameters>
@@ -7160,25 +9661,32 @@ Sets @event&apos;s SQL state.
 <return></return>
 </function>
 
-<function name="gda_meta_struct_new">
+<function name="gda_binary_to_string">
 <description>
-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&apos;s columns, each column&apos;s attributes, etc
-are not optional and will always be computed.
+Converts all the non printable characters of bin-&gt;data into the &quot;\xyz&quot; representation
+where &quot;xyz&quot; is the octal representation of the byte, and the '\' (backslash) character
+is converted to &quot;\\&quot;.
+
+Note that the backslash and newline characters are considered as printable characters and
+will not be represented by the &quot;\xyz&quot; 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().
 
 
 </description>
 <parameters>
-<parameter name="store">
-<parameter_description> a #GdaMetaStore from which the new #GdaMetaStruct object will fetch information
+<parameter name="bin">
+<parameter_description> a correctly filled @GdaBinary structure
 </parameter_description>
 </parameter>
-<parameter name="features">
-<parameter_description> the kind of extra information the new #GdaMetaStruct object will compute
+<parameter name="maxlen">
+<parameter_description> a maximum len used to truncate, or %0 for no maximum length
 </parameter_description>
 </parameter>
 </parameters>
-<return> the newly created #GdaMetaStruct object
+<return> a new string from @bin
 </return>
 </function>
 
@@ -7192,29 +9700,7 @@ are not optional and will always be computed.
 </parameter_description>
 </parameter>
 </parameters>
-<return> @event&apos;s code (the code is specific to the provider being used)
-</return>
-</function>
-
-<function name="_gda_meta_store_begin_data_reset">
-<description>
-Sets @store in a mode where only the modifications completely overriding a table
-will be allowed, where no detailled modifications report is made and where the &quot;suggest-update&quot;
-signal is not emitted.
-
-
-</description>
-<parameters>
-<parameter name="store">
-<parameter_description> a #GdaMetaStore object
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> TRUE if no error occurred
+<return> @event's code (the code is specific to the provider being used)
 </return>
 </function>
 
@@ -7239,6 +9725,7 @@ the same type as the one required by @holder.
 <description>
 Test that the structure of @model is correct in regard with @schema
 
+Deprecated: 4.2: This was a leftover from the pre 4.0 area
 
 </description>
 <parameters>
@@ -7255,7 +9742,8 @@ Test that the structure of @model is correct in regard with @schema
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @model has the correct structure
+<return> %TRUE if @model has the correct structure
+
 </return>
 </function>
 
@@ -7285,7 +9773,7 @@ method.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaServerOperation object, or %NULL in the connection&apos;s provider does not support the @type type
+<return> a new #GdaServerOperation object, or %NULL in the connection's provider does not support the @type type
 of operation or if an error occurred
 </return>
 </function>
@@ -7317,18 +9805,13 @@ Note that if @stmt does not need any parameter, then @out_params is set to %NULL
 </return>
 </function>
 
-<function name="gda_quark_list_new">
+<function name="gda_geometricpoint_copy">
 <description>
-Creates a new #GdaQuarkList, which is a set of key-&amp;gt;value pairs,
-very similar to GLib&apos;s GHashTable, but with the only purpose to
-make easier the parsing and creation of data source connection
-strings.
-
 
 </description>
 <parameters>
 </parameters>
-<return> the newly created #GdaQuarkList.
+<return>
 </return>
 </function>
 
@@ -7344,11 +9827,11 @@ to be freed.
 </parameter_description>
 </parameter>
 <parameter name="ptr">
-<parameter_description> a pointer to the ressources to which the attribute will apply
+<parameter_description> a pointer to the resources to which the attribute will apply
 </parameter_description>
 </parameter>
 <parameter name="att_name">
-<parameter_description> an attribute&apos;s name
+<parameter_description> an attribute's name
 </parameter_description>
 </parameter>
 <parameter name="value">
@@ -7356,27 +9839,24 @@ to be freed.
 </parameter_description>
 </parameter>
 <parameter name="destroy">
-<parameter_description> function called when @att_name is destroyed
+<parameter_description> function called when @att_name has to be freed
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_statement_is_useless">
+<function name="gda_thread_wrapper_new">
 <description>
-Tells if @stmt is composed only of spaces (that is it has no real SQL code), and is completely
-useless as such.
+Creates a new #GdaThreadWrapper object
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object
-</parameter_description>
-</parameter>
 </parameters>
-<return> TRUE if executing @stmt does nothing
+<return> a new #GdaThreadWrapper object, or %NULL if threads are not supported/enabled
+
 </return>
 </function>
 
@@ -7404,12 +9884,12 @@ Note2: all the #GdaHolder merged in @set are still used by @set_to_merge.
 <description>
 Set the value associated to a named attribute.
 
-Attributes can have any name, but Libgda proposes some default names, see &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&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 should be a static string (no copy of it is made), so the string should exist as long as the @column
-object exists.
+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.
 
 </description>
 <parameters>
@@ -7425,14 +9905,18 @@ object exists.
 <parameter_description> a #GValue, or %NULL
 </parameter_description>
 </parameter>
+<parameter name="destroy">
+<parameter_description> function called when @attribute has to be freed, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
 <return></return>
 </function>
 
 <function name="gda_xa_transaction_id_to_string">
 <description>
-Creates a string representation of @xid, in the format &amp;lt;gtrid&amp;gt;,&amp;lt;bqual&amp;gt;,&amp;lt;formatID&amp;gt; the 
-&amp;lt;gtrid&amp;gt; and &amp;lt;bqual&amp;gt; strings contain alphanumeric characters, and non alphanumeric characters
+Creates a string representation of @xid, in the format &lt;gtrid&gt;,&lt;bqual&gt;,&lt;formatID&gt; the 
+&lt;gtrid&gt; and &lt;bqual&gt; strings contain alphanumeric characters, and non alphanumeric characters
 are converted to &quot;%ab&quot; where ab is the hexadecimal representation of the character.
 
 
@@ -7447,50 +9931,84 @@ are converted to &quot;%ab&quot; where ab is the hexadecimal representation of t
 </return>
 </function>
 
-<function name="gda_connection_statement_execute_select_fullv">
+<function name="gda_vconnection_hub_foreach">
 <description>
-Executes a selection command on the given connection.
+Call @func for each #GdaConnection represented in @hub.
 
-This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
-if an error occurred.
+</description>
+<parameters>
+<parameter name="hub">
+<parameter_description> a #GdaVconnectionHub connection
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> a #GdaVconnectionDataModelFunc function pointer
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> data to pass to @func calls
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
 
-This function is just a convenience function around the gda_connection_statement_execute()
-function.
+<function name="gda_data_model_import_new_file">
+<description>
+Creates a new #GdaDataModel object which contains the data stored within the @filename file.
 
-See the documentation of the gda_connection_statement_execute() for information
-about the @params list of parameters.
+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 to as quote park (double quote as default)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;TITLE_AS_FIRST_LINE (boolean): consider that the first line of the file contains columns' titles&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;G_TYPE_&lt;column number&gt; (GType): specifies the type of value expected in column &lt;column number&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;
 
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object.
-</parameter_description>
-</parameter>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object.
+<parameter name="filename">
+<parameter_description> the file to import data from
 </parameter_description>
 </parameter>
-<parameter name="params">
-<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
+<parameter name="random_access">
+<parameter_description> TRUE if random access will be required
 </parameter_description>
 </parameter>
-<parameter name="model_usage">
-<parameter_description> specifies how the returned data model will be used as a #GdaStatementModelUsage enum
+<parameter name="options">
+<parameter_description> importing options
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store an error, or %NULL
+</parameters>
+<return> a pointer to the newly created #GdaDataModel.
+</return>
+</function>
+
+<function name="gda_quark_list_find">
+<description>
+Searches for the value identified by @name in the given #GdaQuarkList.
+
+
+</description>
+<parameters>
+<parameter name="qlist">
+<parameter_description> a #GdaQuarkList.
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> a (-1 terminated) list of (column number, GType) specifying for each column mentionned the GType
-of the column in the returned #GdaDataModel.
+<parameter name="name">
+<parameter_description> the name of the value to search for.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaDataModel containing the data returned by the
-data source, or %NULL if an error occurred
+<return> the value associated with the given key if found, or %NULL
+if not found.
 </return>
 </function>
 
@@ -7509,14 +10027,16 @@ Closes the connection to the underlying data source, but first emits the
 <return></return>
 </function>
 
-<function name="gda_init">
+<function name="gda_sql_statement_check_clean">
 <description>
-Initializes the GDA library, must be called prior to any Libgda usage. Note that unless the
-LIBGDA_NO_THREADS environment variable is set (to any value), the GLib thread system will
-be initialized as well if not yet initialized.
+Cleans any data set by a previous call to gda_sql_statement_check_validity().
 
 </description>
 <parameters>
+<parameter name="stmt">
+<parameter_description> a pinter to a #GdaSqlStatement structure
+</parameter_description>
+</parameter>
 </parameters>
 <return></return>
 </function>
@@ -7541,7 +10061,7 @@ Tests if a feature is supported
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @feature is supported
+<return> %TRUE if @feature is supported
 </return>
 </function>
 
@@ -7562,9 +10082,25 @@ using g_free();
 </return>
 </function>
 
+<function name="gda_sql_operation_operator_from_string">
+<description>
+Returns #GdaSqlOperatorType that correspond with the string @op.
+
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaSqlOperation structure
+</parameter_description>
+</parameter>
+</parameters>
+<return> #GdaSqlOperatorType
+</return>
+</function>
+
 <function name="gda_connection_event_set_event_type">
 <description>
-Sets @event&apos;s severity (from a simple notice to a fatal event)
+Sets @event's severity (from a simple notice to a fatal event)
 This function should not be called directly.
 
 </description>
@@ -7581,48 +10117,77 @@ This function should not be called directly.
 <return></return>
 </function>
 
-<function name="gda_row_get_value">
+<function name="gda_tree_manager_new_with_func">
 <description>
-Gets a pointer to a #GValue stored in a #GdaRow.
+Use this method to create a new #GdaTreeManager if it's more convenient than subclassing; all is needed
+is the @update_func function which is responsible for creating or updating the children nodes of a specified #GdaTreeNode.
 
-This is a pointer to the internal array of values. Don&apos;t try to free
-or modify it!
+Since: 4.2
 
+</description>
+<parameters>
+<parameter name="update_func">
+<parameter_description> the function to call when the manager object is requested to create or update its list of
+#GdaTreeNode nodes
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaTreeManager
+
+</return>
+</function>
+
+<function name="gda_connection_internal_statement_executed">
+<description>
+Internal functions to be called by database providers when a statement has been executed
+to keep track of the transaction status of the connection
 
 </description>
 <parameters>
-<parameter name="row">
-<parameter_description> a #GdaRow
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
 </parameter_description>
 </parameter>
-<parameter name="num">
-<parameter_description> field index.
+<parameter name="stmt">
+<parameter_description> a #GdaStatement which has been executed
+</parameter_description>
+</parameter>
+<parameter name="params">
+<parameter_description> execution's parameters
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a #GdaConnectionEvent if the execution failed, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a pointer to the #GValue in the position @num of @row.
-</return>
+<return></return>
 </function>
 
-<function name="gda_server_provider_get_info">
+<function name="gda_server_operation_string_to_op_type">
 <description>
-Get the name (identifier) of the provider
+Performs the reverse of gda_server_operation_op_type_to_string()
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a #GdaServerProvider object.
+<parameter name="str">
+<parameter_description> a string
 </parameter_description>
 </parameter>
 </parameters>
-<return> a string containing the provider&apos;s name
+<return> the #GdaServerOperationType represented by @str, or #G_MAXINT if @str is not a valid representation
+of a #GdaServerOperationType
+
 </return>
 </function>
 
 <function name="gda_string_to_binary">
 <description>
-Performs the reverse of gda_binary_to_string().
+Performs the reverse of gda_binary_to_string() (note that for any &quot;\xyz&quot; succession
+of 4 characters where &quot;xyz&quot; represents a valid octal value, the resulting read value will
+be modulo 256)
 
 
 </description>
@@ -7631,22 +10196,18 @@ Performs the reverse of gda_binary_to_string().
 <parameter_description> a string to convert
 </parameter_description>
 </parameter>
-<parameter name="bin">
-<parameter_description> a non filled @GdaBinary structure
-</parameter_description>
-</parameter>
 </parameters>
-<return> TRUE if no error were found in @str, or FALSE otherwise
+<return> a new #GdaBinary if no error were found in @str, or NULL otherwise
 </return>
 </function>
 
 <function name="gda_mutex_free">
 <description>
-Destroys @m.
+Destroys @mutex.
 
 </description>
 <parameters>
-<parameter name="m">
+<parameter name="mutex">
 <parameter_description> a #GdaMutex
 </parameter_description>
 </parameter>
@@ -7654,6 +10215,47 @@ Destroys @m.
 <return></return>
 </function>
 
+<function name="gda_compute_dml_statements">
+<description>
+Creates an INSERT, an UPDATE and a DELETE statement from a SELECT statement
+using the database metadata available in @cnc's meta store.
+
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="select_stmt">
+<parameter_description> a SELECT #GdaStatement (compound statements not handled)
+</parameter_description>
+</parameter>
+<parameter name="require_pk">
+<parameter_description> TRUE if the created statement have to use a primary key
+</parameter_description>
+</parameter>
+<parameter name="insert_stmt">
+<parameter_description> a place to store the created INSERT statement, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="update_stmt">
+<parameter_description> a place to store the created UPDATE statement, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="delete_stmt">
+<parameter_description> a place to store the created DELETE statement, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+</return>
+</function>
+
 <function name="gda_connection_create_parser">
 <description>
 Creates a new parser object able to parse the SQL dialect understood by @cnc. 
@@ -7675,7 +10277,7 @@ using gda_sql_parser_new().
 
 <function name="gda_parse_iso8601_date">
 <description>
-Extracts date parts from @value, and sets @gdate&apos;s contents
+Extracts date parts from @value, and sets @gdate's contents
 
 Accepted date format is &quot;YYYY-MM-DD&quot;.
 
@@ -7705,7 +10307,7 @@ Accepted date format is &quot;YYYY-MM-DD&quot;.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the column&apos;s description, in any
+<return> the column's description, in any
 </return>
 </function>
 
@@ -7733,30 +10335,6 @@ Removes the custom database object named @obj_name.
 </return>
 </function>
 
-<function name="gda_meta_struct_get_table_column">
-<description>
-Tries to find the #GdaMetaTableColumn representing the column named @col_name in @table.
-
-
-</description>
-<parameters>
-<parameter name="mstruct">
-<parameter_description> a #GdaMetaStruct object
-</parameter_description>
-</parameter>
-<parameter name="table">
-<parameter_description> the #GdaMetaTable structure to find the column for
-</parameter_description>
-</parameter>
-<parameter name="col_name">
-<parameter_description> the name of the column to find (as a G_TYPE_STRING GValue)
-</parameter_description>
-</parameter>
-</parameters>
-<return> the #GdaMetaTableColumn or %NULL if not found
-</return>
-</function>
-
 <function name="gda_data_model_get_n_columns">
 <description>
 
@@ -7785,44 +10363,65 @@ Tries to find the #GdaMetaTableColumn representing the column named @col_name in
 </return>
 </function>
 
-<function name="gda_default_unescape_string">
+<function name="gda_thread_wrapper_execute_void">
 <description>
-Do the reverse of gda_default_escape_string(): transforms any &quot;\&apos;&quot; into &quot;&apos;&quot; and any
-&quot;\\&quot; into &quot;\&quot;. 
+Make @wrapper execute the @func function with the @arg argument (along with a #GError which is not @error)
+in the sub thread managed by @wrapper. To execute a function which returns some pointer,
+use gda_thread_wrapper_execute().
+
+This method returns immediately. Calling gda_thread_wrapper_fetch_result() is not necessary as @func
+does not return any result. However, it may be necessary to call gda_thread_wrapper_iterate() to give @wrapper a
+chance to execute the @arg_destroy_func function if not %NULL (note that gda_thread_wrapper_iterate() is
+called by gda_thread_wrapper_fetch_result() itself).
+
+Once @func's execution is finished, if it is not %NULL, the @arg_destroy_func destruction function is called
+on @arg. This occurs in the thread calling gda_thread_wrapper_fetch_result().
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="string">
-<parameter_description> string to unescape
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to execute
+</parameter_description>
+</parameter>
+<parameter name="arg">
+<parameter_description> argument to pass to @func
+</parameter_description>
+</parameter>
+<parameter name="arg_destroy_func">
+<parameter_description> function to be called when the execution has finished, to destroy @arg
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, for errors occurring in this method, not errors occurring while @func
+is executed, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new unescaped string, or %NULL in an error was found in @string
+<return> the job ID, or 0 if an error occurred
+
 </return>
 </function>
 
-<function name="gda_server_provider_unescape_string">
+<function name="gda_default_unescape_string">
 <description>
-Unescapes @str for use within an SQL command. This is the exact opposite of gda_server_provider_escape_string().
+Do the reverse of gda_default_escape_string(): transforms any &quot;''&quot; into &quot;'&quot;, any
+&quot;\\&quot; into &quot;\&quot; and any &quot;\'&quot; into &quot;'&quot;. 
 
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a server provider.
-</parameter_description>
-</parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="str">
-<parameter_description> a string to escape
+<parameter name="string">
+<parameter_description> string to unescape
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string
+<return> a new unescaped string, or %NULL in an error was found in @string
 </return>
 </function>
 
@@ -7843,6 +10442,32 @@ database
 </return>
 </function>
 
+<function name="gda_tree_update_part">
+<description>
+Requests that @tree be populated with nodes, starting from @node
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree object
+</parameter_description>
+</parameter>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode node in @tree
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred.
+
+</return>
+</function>
+
 <function name="gda_value_is_null">
 <description>
 Tests if a given @value is of type #GDA_TYPE_NULL.
@@ -7855,8 +10480,7 @@ Tests if a given @value is of type #GDA_TYPE_NULL.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a boolean that says whether or not @value is of type
-#GDA_TYPE_NULL.
+<return> a boolean that says whether or not @value is of type #GDA_TYPE_NULL.
 </return>
 </function>
 
@@ -7894,6 +10518,29 @@ Get the #GdaRow object stored within @model at row @rownum (without taking care
 </return>
 </function>
 
+<function name="gda_row_get_value">
+<description>
+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).
+
+
+</description>
+<parameters>
+<parameter name="row">
+<parameter_description> a #GdaRow
+</parameter_description>
+</parameter>
+<parameter name="num">
+<parameter_description> field index.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to the #GValue in the position @num of @row.
+</return>
+</function>
+
 <function name="gda_blob_op_read_all">
 <description>
 Reads the whole contents of the blob manipulated by @op into @blob
@@ -7910,7 +10557,7 @@ Reads the whole contents of the blob manipulated by @op into @blob
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if @blob-&amp;gt;data contains the whole BLOB manipulated by @op
+<return> TRUE if @blob-&gt;data contains the whole BLOB manipulated by @op
 </return>
 </function>
 
@@ -7926,6 +10573,20 @@ Creates a new #GdaStatement object
 </return>
 </function>
 
+<function name="gda_sql_statement_free">
+<description>
+Releases any memory associated to @stmt.
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_value_set_list">
 <description>
 Stores @val into @value.
@@ -7944,59 +10605,67 @@ Stores @val into @value.
 <return></return>
 </function>
 
-<function name="gda_holder_new_inline">
+<function name="gda_data_model_array_clear">
 <description>
-Creates a new #GdaHolder object named @name, of type @type, and containing the value passed
-as the last argument.
+Frees all the rows in @model.
 
-Note that this function is a utility function and that anly 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.
+</description>
+<parameters>
+<parameter name="model">
+<parameter_description> the model to clear.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_server_provider_get_data_handler_g_type">
+<description>
+Find a #GdaDataHandler object to manipulate data of type @for_type. The returned object must not be modified.
 
 
 </description>
 <parameters>
-<parameter name="type">
-<parameter_description> a valid GLib type
+<parameter name="provider">
+<parameter_description> a server provider.
 </parameter_description>
 </parameter>
-<parameter name="id">
-<parameter_description> the id of the holder to create, or %NULL
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object, or %NULL
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> value to set
+<parameter name="for_type">
+<parameter_description> a #GType
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaHolder object
+<return> a #GdaDataHandler, or %NULL if the provider does not support the requested @for_type data type 
 </return>
 </function>
 
-<function name="gda_connection_add_event_string">
+<function name="gda_sql_builder_select_add_target">
 <description>
-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.
+Adds a new target to a SELECT statement
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object.
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="str">
-<parameter_description> a format string (see the printf(3) documentation).
+<parameter name="table_name">
+<parameter_description> the name of the target table
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> the arguments to insert in the error message.
+<parameter name="alias">
+<parameter_description> the alias to give to the target, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> 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.
+<return> the ID of the new target, or %0 if there was an error
+
 </return>
 </function>
 
@@ -8012,19 +10681,100 @@ Creates a new #GdaSqlParser object
 </return>
 </function>
 
-<function name="gda_quark_list_copy">
+<function name="gda_compute_unique_table_row_condition_with_cnc">
 <description>
-Creates a new #GdaQuarkList from an existing one.
+Computes a #GdaSqlExpr expression which can be used in the WHERE clause of an UPDATE
+or DELETE statement when a row from the result of the @stsel statement has to be modified.
 
+Since: 4.0.3
 
 </description>
 <parameters>
-<parameter name="qlist">
-<parameter_description> quark_list to get a copy from.
+<parameter name="cnc">
+<parameter_description> a #GdaConnection, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="stsel">
+<parameter_description> a #GdaSqlSelectStatement
+</parameter_description>
+</parameter>
+<parameter name="mtable">
+<parameter_description> a #GdaMetaTable
+</parameter_description>
+</parameter>
+<parameter name="require_pk">
+<parameter_description> set to TRUE if a primary key ir required
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly allocated #GdaQuarkList with a copy of the data in @qlist.
+<return> a new #GdaSqlExpr, or %NULL if an error occurred.
+
+</return>
+</function>
+
+<function name="gda_get_application_exec_path">
+<description>
+Find the path to the application identified by @app_name. For example if the application
+is &quot;gda-sql&quot;, then calling this function will return
+&quot;/your/prefix/bin/gda-sql-4.0&quot; if Libgda is installed in
+the &quot;/your/prefix&quot; prefix (which would usually be &quot;/usr&quot;), and for the ABI version 4.0.
+
+
+</description>
+<parameters>
+<parameter name="app_name">
+<parameter_description> the name of the application to find
+</parameter_description>
+</parameter>
+</parameters>
+<return> the path as a new string, or %NULL if the application cannot be found
+</return>
+</function>
+
+<function name="gda_connection_repetitive_statement_execute">
+<description>
+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.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="rstmt">
+<parameter_description> a #GdaRepetitiveStatement object
+</parameter_description>
+</parameter>
+<parameter name="model_usage">
+<parameter_description> specifies how the returned data model will be used as a #GdaStatementModelUsage enum
+</parameter_description>
+</parameter>
+<parameter name="col_types">
+<parameter_description> an array of GType to request each returned GdaDataModel's column's GType, see gda_connection_statement_execute_select_full() for more information
+</parameter_description>
+</parameter>
+<parameter name="stop_on_error">
+<parameter_description> set to TRUE if the method has to stop on the first error.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> 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.
+
 </return>
 </function>
 
@@ -8036,7 +10786,7 @@ Get the index (starting at 0) of the DSN named @dsn_name
 </description>
 <parameters>
 <parameter name="dsn_name">
-<parameter_description>
+<parameter_description> a DSN
 </parameter_description>
 </parameter>
 </parameters>
@@ -8071,16 +10821,94 @@ will be discarded.
 </return>
 </function>
 
+<function name="gda_holder_set_value_to_default">
+<description>
+Set @holder's value to its default value.
+
+
+</description>
+<parameters>
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if @holder has got a default value
+</return>
+</function>
+
+<function name="gda_sql_operation_operator_to_string">
+<description>
+Returns a constant string representing a operator name. You don't need to free
+the returned string.
+
+
+</description>
+<parameters>
+<parameter name="op">
+<parameter_description> a #GdaSqlOperation structure
+</parameter_description>
+</parameter>
+</parameters>
+<return> a string with the operator's name or NULL in case @op is invalid.
+</return>
+</function>
+
+<function name="gda_connection_internal_savepoint_removed">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="svp_name">
+<parameter_description> savepoint's name, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_sql_builder_set_where">
+<description>
+Valid only for: UPDATE, DELETE, SELECT statements
+
+Sets the WHERE condition of the statement
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="cond_id">
+<parameter_description> the ID of the expression to set as WHERE condition, or 0 to unset any previous WHERE condition
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_value_compare">
 <description>
 Compares two values of the same type, with the exception that a value of any type can be
 compared to a GDA_TYPE_NULL value, specifically:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if @value1 and @value2 are both GDA_TYPE_NULL values then the returned value is 0&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if @value1 is a GDA_TYPE_NULL value and @value2 is of another type then the returned value is -1&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if @value1 is of another type and @value2 is a GDA_TYPE_NULL value then the returned value is 1&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;in all other cases, @value1 and @value2 must be of the same type and their values are compared&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;if @value1 and @value2 are both GDA_TYPE_NULL values then the returned value is 0&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;if @value1 is a GDA_TYPE_NULL value and @value2 is of another type then the returned value is -1&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;if @value1 is of another type and @value2 is a GDA_TYPE_NULL value then the returned value is 1&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;in all other cases, @value1 and @value2 must be of the same type and their values are compared&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
 
 </description>
@@ -8100,28 +10928,58 @@ an integer greater than 0 if @value1 is greater than @value2.
 </return>
 </function>
 
-<function name="gda_data_proxy_set_ordering_column">
+<function name="gda_quark_list_add_from_string">
 <description>
-Orders by the @col column
+ string must be a semi-colon separated list of &quot;&lt;key&gt;=&lt;value&gt;&quot; strings (for example
+&quot;DB_NAME=notes;USERNAME=alfred&quot;). Each key and value must respect the RFC 1738 recommendations: the
+&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
+&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
+&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character (for example the
+&quot;DB_NAME=notes;USERNAME=al%%20fred&quot; string will specify a username as &quot;al fred&quot;). 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.
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="qlist">
+<parameter_description> a #GdaQuarkList.
 </parameter_description>
 </parameter>
-<parameter name="col">
-<parameter_description> the column number to order from
+<parameter name="string">
+<parameter_description> a string.
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="cleanup">
+<parameter_description> whether to cleanup the previous content or not.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
-</return>
+<return></return>
+</function>
+
+<function name="gda_sql_builder_set_table">
+<description>
+Valid only for: INSERT, UPDATE, DELETE statements
+
+Sets the name of the table on which the built statement operates.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="table_name">
+<parameter_description> a table name
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
 </function>
 
 <function name="gda_config_can_modify_system_config">
@@ -8167,20 +11025,22 @@ if it was not possible to try to compute a completions list, then %NULL is retur
 </return>
 </function>
 
-<function name="gda_sql_select_from_serialize">
+<function name="gda_holder_set_not_null">
 <description>
-Creates a new string description of the FROM clausure used in a SELECT statement.
-
+Sets if the holder can have a NULL value. If @not_null is TRUE, then that won't be allowed
 
 </description>
 <parameters>
-<parameter name="from">
-<parameter_description> a #GdaSqlSelectFrom structure
+<parameter name="holder">
+<parameter_description> a #GdaHolder object
+</parameter_description>
+</parameter>
+<parameter name="not_null">
+<parameter_description> TRUE if @holder should not accept %NULL values
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string with the description of the FROM or &quot;null&quot; in case @from is invalid.
-</return>
+<return></return>
 </function>
 
 <function name="gda_value_set_numeric">
@@ -8201,25 +11061,39 @@ Stores @val into @value.
 <return></return>
 </function>
 
-<function name="GdaHolder">
+<function name="gda_server_provider_handler_find">
 <description>
-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)
+
+</description>
+<parameters>
+</parameters>
+<return>
+
+</return>
+</function>
+
+<function name="gda_server_provider_find_file">
+<description>
+Finds the location of a @filename. This function should only be used by database provider's
+implementations
 
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> the object which received the signal
+<parameter name="prov">
+<parameter_description> a #GdaServerProvider
+</parameter_description>
+</parameter>
+<parameter name="inst_dir">
+<parameter_description> directory where @prov is installed
 </parameter_description>
 </parameter>
-<parameter name="new_value">
-<parameter_description> the proposed new value for @holder
+<parameter name="filename">
+<parameter_description> name of the file to find
 </parameter_description>
 </parameter>
 </parameters>
-<return> NULL if @holder is allowed to change its value to @new_value, or a #GError
-otherwise.
+<return> the complete path to @filename, or %NULL if not found
 </return>
 </function>
 
@@ -8227,6 +11101,9 @@ otherwise.
 <description>
 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.
+
 
 </description>
 <parameters>
@@ -8273,7 +11150,7 @@ Get the number of differences as computed by the last time gda_data_comparator_c
 
 <function name="gda_sql_operation_copy">
 <description>
-Creates a new #GdaSqlOperation structure initated with the values stored in @operation.
+Creates a new #GdaSqlOperation structure initiated with the values stored in @operation.
 
 
 </description>
@@ -8287,6 +11164,72 @@ Creates a new #GdaSqlOperation structure initated with the values stored in @ope
 </return>
 </function>
 
+<function name="gda_sql_statement_select_take_expr_list">
+<description>
+Sets list of expressions selected by @stmt
+
+ expr_list's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="expr_list">
+<parameter_description> a list of #GdaSqlSelectField pointers
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_sql_statement_compound_take_stmt">
+<description>
+Adds the @s sub-statement to the @stmt compound statement. @s's reference is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="s">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_tree_node_fetch_attribute">
+<description>
+Get the value associated to the attribute named @attribute for @node. If the attribute is not set,
+then @node's parents is queries (recursively up to the top level node).
+
+Attributes can have any name, but Libgda proposes some default names,
+see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode
+</parameter_description>
+</parameter>
+<parameter name="attribute">
+<parameter_description> attribute name as a string
+</parameter_description>
+</parameter>
+</parameters>
+<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @node
+
+</return>
+</function>
+
 <function name="gda_value_set_blob">
 <description>
 Stores @val into @value.
@@ -8305,6 +11248,18 @@ Stores @val into @value.
 <return></return>
 </function>
 
+<function name="gda_tree_mgr_schemas_get_type">
+<description>
+Since: 4.2
+
+</description>
+<parameters>
+</parameters>
+<return> the GType
+
+</return>
+</function>
+
 <function name="gda_data_handler_get_descr">
 <description>
 Get a short description of the GdaDataHandler
@@ -8371,11 +11326,11 @@ NULL is returned.
 </parameter_description>
 </parameter>
 <parameter name="str">
-<parameter_description>
+<parameter_description> a string
 </parameter_description>
 </parameter>
 <parameter name="type">
-<parameter_description> 
+<parameter_description> a GType
 </parameter_description>
 </parameter>
 </parameters>
@@ -8383,25 +11338,24 @@ NULL is returned.
 </return>
 </function>
 
-<function name="gda_data_model_row_removed">
+<function name="gda_data_model_iter_get_value_for_field">
 <description>
-Emits the &apos;row_removed&apos; and &apos;changed&apos; signal on @model.
+Get the value stored at the column @field_name in @iter
 
-This method should only be used by #GdaDataModel implementations to 
-signal that a row has been removed
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+<parameter name="iter">
+<parameter_description> a #GdaDataModelIter object
 </parameter_description>
 </parameter>
-<parameter name="row">
-<parameter_description> row number.
+<parameter name="field_name">
+<parameter_description> the requested column name
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the #GValue, or %NULL
+</return>
 </function>
 
 <function name="gda_connection_get_transaction_status">
@@ -8462,28 +11416,19 @@ specifications
 </return>
 </function>
 
-<function name="gda_threader_cancel">
-<description>
-
-</description>
-<parameters>
-</parameters>
-<return></return>
-</function>
-
-<function name="gda_sql_operation_new">
+<function name="gda_holder_get_bind">
 <description>
-Creates a new #GdaSqlOperation structure and sets its parent to @parent.
+Get the holder which makes @holder change its value when the holder's value is changed.
 
 
 </description>
 <parameters>
-<parameter name="parent">
-<parameter_description> a #GdaSqlExpr structure
+<parameter name="holder">
+<parameter_description> a #GdaHolder
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaSqlOperation structure.
+<return> the #GdaHolder or %NULL
 </return>
 </function>
 
@@ -8512,13 +11457,13 @@ and can be reused.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> %TRUE if no error occurred
 </return>
 </function>
 
 <function name="gda_data_access_wrapper_new">
 <description>
-Creates a new #GdaDataModel object which buffers the rows of @model. This object is usefull
+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.
 
 
@@ -8533,6 +11478,35 @@ only if @model can only be accessed using cursor based method.
 </return>
 </function>
 
+<function name="gda_repetitive_statement_append_set">
+<description>
+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().
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="rstmt">
+<parameter_description> a #GdaRepetitiveStatement object
+</parameter_description>
+</parameter>
+<parameter name="values">
+<parameter_description> a #GdaSet object with the values to be used
+</parameter_description>
+</parameter>
+<parameter name="make_copy">
+<parameter_description> %TRUE if @values is copied, and %FALSE if @values is only ref'ed
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaRepetitiveStatement object
+
+</return>
+</function>
+
 <function name="gda_data_comparator_get_diff">
 <description>
 Get a pointer to the #GdaDiff structure representing the difference which number is @pos
@@ -8555,9 +11529,12 @@ Get a pointer to the #GdaDiff structure representing the difference which number
 
 <function name="gda_data_model_append_row">
 <description>
-Appends a row to the data model (the new row will possibliy have NULL values for all columns,
+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.
+
 
 </description>
 <parameters>
@@ -8574,6 +11551,29 @@ or some other values depending on the data model implementation)
 </return>
 </function>
 
+<function name="gda_connection_internal_savepoint_rolledback">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="svp_name">
+<parameter_description> savepoint's name, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_value_copy">
 <description>
 Creates a new #GValue from an existing one.
@@ -8587,9 +11587,32 @@ Creates a new #GValue from an existing one.
 </parameter>
 </parameters>
 <return> a newly allocated #GValue with a copy of the data in @value.
+
+Free-function: gda_value_free
 </return>
 </function>
 
+<function name="gda_sql_statement_select_take_having_cond">
+<description>
+Sets the HAVING clause of @stmt
+
+ expr's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_utility_data_model_dump_data_to_xml">
 <description>
 Dump the data in a #GdaDataModel into a xmlNodePtr (as used in libxml).
@@ -8622,7 +11645,7 @@ Dump the data in a #GdaDataModel into a xmlNodePtr (as used in libxml).
 </parameter_description>
 </parameter>
 <parameter name="use_col_ids">
-<parameter_description>
+<parameter_description> set to %TRUE to add column ID information
 </parameter_description>
 </parameter>
 </parameters>
@@ -8632,7 +11655,7 @@ Dump the data in a #GdaDataModel into a xmlNodePtr (as used in libxml).
 
 <function name="gda_data_model_get_access_flags">
 <description>
-Get the attributes of @model such as how to access the data it contains if it&apos;s modifiable, etc.
+Get the attributes of @model such as how to access the data it contains if it's modifiable, etc.
 
 
 </description>
@@ -8646,6 +11669,62 @@ Get the attributes of @model such as how to access the data it contains if it&ap
 </return>
 </function>
 
+<function name="gda_sql_parser_parse_string_as_batch">
+<description>
+Parse @sql and creates a #GdaBatch object which contains all the #GdaStatement objects created while parsing (one object
+per SQL statement). Empty statements (composed of spaces only) do not appear in the resulting object.
+
+ sql is parsed and #GdaStatement objects are created as long as no error is found in @sql. If an error is found
+at some point, then the parsing stops and @remain may contain a non %NULL pointer, @error may be set, and %NULL
+is returned.
+
+if @sql is %NULL, then the returned #GdaBatch object will contain no statement.
+
+To include variables in the @sql string, see the
+&lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser's object description&lt;/link&gt;.
+
+
+</description>
+<parameters>
+<parameter name="parser">
+<parameter_description> a #GdaSqlParser object
+</parameter_description>
+</parameter>
+<parameter name="sql">
+<parameter_description> the SQL string to parse
+</parameter_description>
+</parameter>
+<parameter name="remain">
+<parameter_description> location to store a pointer to remaining part of @sql in case an error occurred while parsing @sql, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> location to store error, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaBatch object, or %NULL if an error occurred
+</return>
+</function>
+
+<function name="gda_data_model_get_column_title">
+<description>
+
+</description>
+<parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
+</parameter_description>
+</parameter>
+<parameter name="col">
+<parameter_description> column number.
+</parameter_description>
+</parameter>
+</parameters>
+<return> the title for the given column in a data model object.
+</return>
+</function>
+
 <function name="gda_handler_bin_new">
 <description>
 Creates a data handler for binary values
@@ -8662,7 +11741,7 @@ Creates a data handler for binary values
 <description>
 Get the value associated to a named attribute.
 
-Attributes can have any name, but Libgda proposes some default names, see &amp;lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&amp;gt;this section&amp;lt;/link&amp;gt;.
+Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
 
 
 </description>
@@ -8682,7 +11761,7 @@ Attributes can have any name, but Libgda proposes some default names, see &amp;l
 
 <function name="gda_parse_iso8601_timestamp">
 <description>
-Extracts date and time parts from @value, and sets @timestamp&apos;s contents
+Extracts date and time parts from @value, and sets @timestamp's contents
 
 Accepted date format is &quot;YYYY-MM-DD HH:MM:SS[.ms][TZ]&quot; where TZ is +hour or -hour
 
@@ -8708,7 +11787,7 @@ Creates a new #GdaSet containing holders defined by each triplet in ...
 For each triplet (id, Glib type and value), 
 the value must be of the correct type (gchar * if type is G_STRING, ...)
 
-Note that this function is a utility function and that anly a limited set of types are supported. Trying
+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.
 
@@ -8749,37 +11828,15 @@ independent.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the newly created #GValue or %NULL if the string representation
-cannot be converted to the specified @type.
-</return>
-</function>
-
-<function name="gda_virtual_connection_internal_set_provider_data">
-<description>
-Note: calling this function more than once will not make it call @destroy_func on any previously
-set opaque @data, you&apos;ll have to do it yourself.
+<return> the newly created #GValue or %NULL if the string representation cannot be converted to the specified @type.
 
-</description>
-<parameters>
-<parameter name="vcnc">
-<parameter_description> a #GdaConnection object
-</parameter_description>
-</parameter>
-<parameter name="data">
-<parameter_description> an opaque structure, known only to the provider for which @vcnc is opened
-</parameter_description>
-</parameter>
-<parameter name="destroy_func">
-<parameter_description> function to call when the connection closes and @data needs to be destroyed
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
+Free-function: gda_value_free
+</return>
 </function>
 
 <function name="gda_sql_select_join_copy">
 <description>
-Creates a new #GdaSqlSelectJoin structure initated with the values stored in @join.
+Creates a new #GdaSqlSelectJoin structure initiated with the values stored in @join.
 
 
 </description>
@@ -8817,6 +11874,15 @@ argument is not copied, but used as-is and it should be considered owned by @val
 Tells if @str needs to be quoted before using it in an SQL statement. To actually add quotes,
 use gda_sql_identifier_add_quotes().
 
+To determine if quotes are needed: the following rules are applied:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;If the 1st character is a digit, then %TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;If there are mixed lower and upper case letters, then %TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;If there are other characters than digits, letters and the '_', '$' and '#', then %TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;Otherwise %FALSE is returned&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Deprecated: 4.0.3: Not needed anymore because of the gda_sql_identifier_quote() function.
 
 </description>
 <parameters>
@@ -8826,17 +11892,40 @@ use gda_sql_identifier_add_quotes().
 </parameter>
 </parameters>
 <return> TRUE if @str needs some quotes
+
 </return>
 </function>
 
+<function name="gda_thread_wrapper_steal_signal">
+<description>
+Requests that the signal which ID is @id (which has been obtained using gda_thread_wrapper_connect_raw())
+be treated by the calling thread instead of by the thread in which gda_thread_wrapper_connect_raw()
+was called.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="id">
+<parameter_description> a signal ID
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_handler_time_set_sql_spec">
 <description>
 Specifies the SQL output style of the @dh data handler. The general format is &quot;FIRSTsSECsTHIRD&quot;
-where FIRST, SEC and THIRD are specified by @first, @sec and @trird and &apos;s&apos; is the separator,
+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 &apos;-&apos;
+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 '-'
 
 </description>
 <parameters>
@@ -8845,19 +11934,19 @@ rendered on 4 digits) and the separator is &apos;-&apos;
 </parameter_description>
 </parameter>
 <parameter name="first">
-<parameter_description>
+<parameter_description> what comes first in the date representation
 </parameter_description>
 </parameter>
 <parameter name="sec">
-<parameter_description>
+<parameter_description> what comes second in the date representation
 </parameter_description>
 </parameter>
 <parameter name="third">
-<parameter_description>
+<parameter_description> what comes third in the date representation
 </parameter_description>
 </parameter>
 <parameter name="separator">
-<parameter_description>
+<parameter_description> separator character used between year, month and day
 </parameter_description>
 </parameter>
 <parameter name="twodigits_years">
@@ -8868,6 +11957,32 @@ rendered on 4 digits) and the separator is &apos;-&apos;
 <return></return>
 </function>
 
+<function name="gda_data_handler_get_sql_from_value">
+<description>
+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=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser&lt;/link&gt; for more information.
+
+If the value is NULL or is of type GDA_TYPE_NULL, the returned string is &quot;NULL&quot;.
+
+
+</description>
+<parameters>
+<parameter name="dh">
+<parameter_description> an object which implements the #GdaDataHandler interface
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> the value to be converted to a string
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new string, or %NULL if an error occurred
+</return>
+</function>
+
 <function name="gda_column_get_position">
 <description>
 
@@ -8918,7 +12033,7 @@ Logs the given message in the GDA log file.
 
 <function name="gda_sql_expr_take_select">
 <description>
-Sets the expression&apos;s parent to the #GdaSqlStatementSelect holded by @stmt. After
+Sets the expression's parent to the #GdaSqlStatementSelect held by @stmt. After
 calling this function @stmt is freed.
 
 
@@ -8936,73 +12051,50 @@ calling this function @stmt is freed.
 <return></return>
 </function>
 
-<function name="gda_data_proxy_row_has_changed">
+<function name="gda_tree_mgr_tables_new">
 <description>
-Tells if the row number @proxy_row has changed
+Creates a new #GdaTreeManager object which will add one tree node for each table found in the
+ schema if it is not %NULL, or for each table visible by default in @cnc.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
-<parameter name="proxy_row">
-<parameter_description> A proxy row number
+<parameter name="schema">
+<parameter_description> a schema name or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return>
+<return> a new #GdaTreeManager object
+
 </return>
 </function>
 
-<function name="gda_update_value_in_table">
+<function name="gda_tree_manager_get_managers">
 <description>
-This is just a convenient function to update values in a table on a given column where
-the row is fitting the given condition.
-
-The SQL command is like: UPDATE INTO table_name SET column_name = new_value WHERE search_for_column = condition
+Get the list of sub managers which have already been added using gda_tree_manager_add_manager()
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> an opened connection
-</parameter_description>
-</parameter>
-<parameter name="table_name">
-<parameter_description>
-</parameter_description>
-</parameter>
-<parameter name="search_for_column">
-<parameter_description> the name of the column to used in the WHERE condition clause
-</parameter_description>
-</parameter>
-<parameter name="condition">
-<parameter_description> a GValue to used to find the value to be updated; it must correspond with the GType
-of the column used to search
-</parameter_description>
-</parameter>
-<parameter name="column_name">
-<parameter_description> the column containing the value to be updated
-</parameter_description>
-</parameter>
-<parameter name="new_value">
-<parameter_description> the new value to update to; the @GValue must correspond with the GType of the column to update
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="manager">
+<parameter_description> a #GdaTreeManager object
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> a list of #GdaTreeMenager which should not be modified.
+
 </return>
 </function>
 
-<function name="gda_data_proxy_has_changed">
+<function name="gda_data_proxy_get_sample_end">
 <description>
-Tells if @proxy contains any modifications not applied to the proxied data model.
+Get the number of the last row to be available in @proxy (in reference to the proxied data model)
 
 
 </description>
@@ -9012,7 +12104,7 @@ Tells if @proxy contains any modifications not applied to the proxied data model
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if there are some modifications in @proxy
+<return> the number of the last proxied model's row.
 </return>
 </function>
 
@@ -9042,6 +12134,70 @@ method.
 </return>
 </function>
 
+<function name="gda_sql_builder_add_expr">
+<description>
+Defines an expression in @builder which may be reused to build other parts of a statement.
+
+The new expression will contain the value passed as the @... argument. It is possible to
+customize how the value has to be interpreted by passing a specific #GdaDataHandler object as @dh.
+
+Note that for composite types such as #GdaNumeric, #Gdate, #GdaTime, ... pointer to these
+structures are expected, they should no be passed by value. For example:
+&lt;programlisting&gt;&lt;![CDATA[GDate *date = g_date_new_dmy (27, G_DATE_MAY, 1972);
+id = gda_sql_builder_add_expr (b, NULL, G_TYPE_DATE, date);
+g_date_free (date);
+
+id = gda_sql_builder_add_expr (b, NULL, G_TYPE_STRING, &quot;my string&quot;);
+id = gda_sql_builder_add_expr (b, NULL, G_TYPE_INT, 25);
+]]&gt;&lt;/programlisting&gt;
+
+will correspond in SQL to:
+&lt;programlisting&gt;
+'05-27-1972'
+'my string'
+25
+&lt;/programlisting&gt;
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="dh">
+<parameter_description> a #GdaDataHandler to use, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="type">
+<parameter_description> the GType of the following argument
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> value to set the expression to, of the type specified by @type
+</parameter_description>
+</parameter>
+</parameters>
+<return> the ID of the new expression, or %0 if there was an error
+
+</return>
+</function>
+
+<function name="gda_tree_manager_get_type">
+<description>
+Registers the #GdaTreeManager class on the GLib type system.
+
+Since: 4.2
+
+</description>
+<parameters>
+</parameters>
+<return> the GType identifying the class.
+
+</return>
+</function>
+
 <function name="gda_connection_commit_transaction">
 <description>
 Commits the given transaction to the backend database. You need to call
@@ -9082,65 +12238,116 @@ Reset the list of errors which have occurred while using @model
 <return></return>
 </function>
 
-<function name="gda_data_model_bdb_new">
+<function name="gda_data_select_set_row_selection_condition">
 <description>
-Creates a new #GdaDataModel object to access the contents of the Berkeley DB file @file,
-for the database @db_name if not %NULL
+Offers the same features as gda_data_select_set_row_selection_condition_sql() but using a #GdaSqlExpr
+structure instead of an SQL syntax.
 
 
 </description>
 <parameters>
-<parameter name="filename">
-<parameter_description>
+<parameter name="model">
+<parameter_description> a #GdaDataSelect data model
 </parameter_description>
 </parameter>
-<parameter name="db_name">
-<parameter_description> the name of the database within @filename, or %NULL
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr expression
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaDataModel
+<return> TRUE if no error occurred
 </return>
 </function>
 
-<function name="gda_sql_operation_serialize">
+<function name="gda_sql_builder_compound_set_type">
 <description>
-Creates a new string representing an operator. You need to free the returned string
-using g_free();
+Changes the type of compound which @builder is making, for a COMPOUND statement
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="operation">
-<parameter_description> a #GdaSqlOperation structure
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="compound_type">
+<parameter_description> a type of compound
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string with the description of the operator or &quot;null&quot; in case @operation is invalid.
+<return></return>
+</function>
+
+<function name="gda_connection_event_new">
+<description>
+Creates a new uninitialized event object. This class is used for communicating
+events from the different providers to the clients.
+
+Deprecated: 4.2: use gda_connection_point_available_event() instead
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> the type of event
+</parameter_description>
+</parameter>
+</parameters>
+<return> the event object.
+
 </return>
 </function>
 
-<function name="gda_data_proxy_get_sample_end">
+<function name="gda_sql_builder_add_id">
 <description>
-Get the row number of the last row to be displayed.
+Defines an expression representing an identifier in @builder,
+which may be reused to build other parts of a statement,
+for instance as a parameter to gda_sql_builder_add_cond() or
+gda_sql_builder_add_field_value_id().
+
+The new expression will contain the @string literal.
+For example:
+&lt;programlisting&gt;
+gda_sql_builder_add_id (b, &quot;name&quot;)
+gda_sql_builder_add_id (b, &quot;date&quot;)
+&lt;/programlisting&gt;
+
+will be rendered as SQL as:
+&lt;programlisting&gt;
+name
+&quot;date&quot;
+&lt;/programlisting&gt;
 
+because &quot;date&quot; is an SQL reserved keyword.
+
+For fields, see gda_sql_builder_add_field_id().
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="string">
+<parameter_description> a string
 </parameter_description>
 </parameter>
 </parameters>
-<return> the number of the last row being displayed.
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
 <function name="gda_meta_store_get_version">
 <description>
-Get @store&apos;s internal schema&apos;s version
+Get @store's internal schema's version
 
-Retunrs: the version (1 at the moment)
 
 </description>
 <parameters>
@@ -9149,76 +12356,186 @@ Retunrs: the version (1 at the moment)
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the version (incremented each time the schema changes, backward compatible)
+</return>
 </function>
 
-<function name="gda_server_operation_new">
+<function name="gda_tree_node_set_node_attribute">
 <description>
-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 internal implementation.
+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).
 
-Creates a new #GdaServerOperation object from the @xml_file specifications
+Attributes can have any name, but Libgda proposes some default names, 
+see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
 
-The @xml_file must respect the DTD described in the &quot;libgda-server-operation.dtd&quot; file: its top
-node must be a &amp;lt;serv_op&amp;gt; tag.
+For example one would use it as:
+
+&lt;code&gt;
+gda_tree_node_set_node_attribute (node, g_strdup (my_attribute), g_free, my_value);
+gda_tree_node_set_node_attribute (node, GDA_ATTRIBUTE_NAME, NULL, my_value);
+&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.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="xml_file">
-<parameter_description> a file which has the specifications for the GdaServerOperation object to create
+<parameter name="node">
+<parameter_description> a #GdaTreeNode
+</parameter_description>
+</parameter>
+<parameter name="attribute">
+<parameter_description> attribute name
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> a function to be called when @attribute is not needed anymore, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaServerOperation object
-</return>
+<return></return>
 </function>
 
-<function name="gda_data_proxy_delete">
+<function name="gda_connection_string_split">
 <description>
-Marks the row @proxy_row to be deleted
+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: &quot;DB_NAME=mydb;HOST=server&quot;
+out_provider: &quot;PostgreSQL&quot;
+out_username: &quot;meme&quot;
+out_password: &quot;pass&quot;]]&gt;&lt;/programlisting&gt;
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="string">
+<parameter_description> a string in the &quot;[&lt;provider&gt;://][&lt;username&gt;[:&lt;password&gt;] ]&lt;connection_params&gt;&quot; form
 </parameter_description>
 </parameter>
-<parameter name="proxy_row">
-<parameter_description> A proxy row number
+<parameter name="out_cnc_params">
+<parameter_description> a place to store the new string containing the &lt;connection_params&gt; part
+</parameter_description>
+</parameter>
+<parameter name="out_provider">
+<parameter_description> a place to store the new string containing the &lt;provider&gt; part
+</parameter_description>
+</parameter>
+<parameter name="out_username">
+<parameter_description> a place to store the new string containing the &lt;username&gt; part
+</parameter_description>
+</parameter>
+<parameter name="out_password">
+<parameter_description> a place to store the new string containing the &lt;password&gt; part
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_sql_select_target_new">
+<function name="gda_attributes_manager_copy">
 <description>
-Creates a new #GdaSqlSelectTarget structure and sets its parent to @parent. A
-#GdaSqlSelectTarget is the table in a SELECT statement.
+For each attribute set for @from (in @from_mgr), set the same attribute to @to (in @to_mgr). @from_mgr and
+ to_mgr can be equal.
 
+</description>
+<parameters>
+<parameter name="from_mgr">
+<parameter_description> a #GdaAttributesManager
+</parameter_description>
+</parameter>
+<parameter name="from">
+<parameter_description> a pointer from which attributes are copied
+</parameter_description>
+</parameter>
+<parameter name="to_mgr">
+<parameter_description> a #GdaAttributesManager
+</parameter_description>
+</parameter>
+<parameter name="to">
+<parameter_description> a pointer to which attributes are copied
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_connection_add_event">
+<description>
+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 &quot;error&quot; signal, to which clients can connect to be
+informed of events.
+
+WARNING: the reference to the @event object is stolen by this function!
 
 </description>
 <parameters>
-<parameter name="parent">
-<parameter_description> a #GdaSqlSelectFrom
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object.
+</parameter_description>
+</parameter>
+<parameter name="event">
+<parameter_description> is stored internally, so you don't need to unref it.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaSqlSelectTarget structure.
-</return>
+<return></return>
 </function>
 
-<function name="gda_data_model_freeze">
+<function name="gda_transaction_status_add_event_sub">
 <description>
-Disables notifications of changes on the given data model. To
-re-enable notifications again, you should call the
-#gda_data_model_thaw function.
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_connection_internal_transaction_committed">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="trans_name">
+<parameter_description> transaction's name, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -9243,6 +12560,22 @@ Removes an entry from the #GdaQuarkList, given its name.
 <return></return>
 </function>
 
+<function name="gda_data_proxy_get_filter_expr">
+<description>
+Get the current filter expression used by @proxy.
+
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+</parameters>
+<return> the current filter expression or %NULL if no filter has been set
+</return>
+</function>
+
 <function name="gda_set_get_holder">
 <description>
 Finds a #GdaHolder using its ID
@@ -9259,7 +12592,7 @@ Finds a #GdaHolder using its ID
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaHolder or %NULL
+<return> the requested #GdaHolder or %NULL
 </return>
 </function>
 
@@ -9277,16 +12610,20 @@ and the &quot;HY000&quot; (general error) value means an error but no better err
 </parameter_description>
 </parameter>
 </parameters>
-<return> @event&apos;s SQL state.
+<return> @event's SQL state.
 </return>
 </function>
 
 <function name="gda_holder_set_bind">
 <description>
 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.
 
+
 </description>
 <parameters>
 <parameter name="holder">
@@ -9297,19 +12634,24 @@ If @bind_to is %NULL, then @holder will not be bound anymore.
 <parameter_description> a #GdaHolder or %NULL
 </parameter_description>
 </parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
-<return></return>
+<return> TRUE if no error occurred
+</return>
 </function>
 
 <function name="gda_sql_function_new">
 <description>
-Creates a new #GdaSqlFunction structure initated.
+Creates a new #GdaSqlFunction structure initiated.
 
 
 </description>
 <parameters>
 <parameter name="parent">
-<parameter_description> a #GdaSqlExpr structure
+<parameter_description> a #GdaSqlAnyPart structure
 </parameter_description>
 </parameter>
 </parameters>
@@ -9333,7 +12675,7 @@ Cancels a distributed transaction (managed by @xa_trans).
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> %TRUE if no error occurred
 </return>
 </function>
 
@@ -9353,7 +12695,7 @@ returned if a DBMS has integers only up to 4 bytes and a G_TYPE_INT64 is request
 </parameter_description>
 </parameter>
 <parameter name="cnc">
-<parameter_description> a #GdaConnection object or %NULL
+<parameter_description>  a #GdaConnection object or %NULL
 </parameter_description>
 </parameter>
 <parameter name="type">
@@ -9365,9 +12707,41 @@ returned if a DBMS has integers only up to 4 bytes and a G_TYPE_INT64 is request
 </return>
 </function>
 
+<function name="gda_connection_internal_transaction_started">
+<description>
+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.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="parent_trans">
+<parameter_description> name of the parent transaction, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="trans_name">
+<parameter_description> transaction's name, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="isol_level">
+<parameter_description> isolation level.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_column_copy">
 <description>
-Creates a new #GdaColumn object from an existing one. 	 
+Creates a new #GdaColumn object from an existing one.
+
 
 </description>
 <parameters>
@@ -9381,6 +12755,42 @@ in @column.
 </return>
 </function>
 
+<function name="gda_sql_statement_check_validity_m">
+<description>
+If @mstruct is not %NULL, then checks that all the database objects referenced in the statement i
+actually referenced in @mstruct
+(for example the table being updated in a UPDATE statement must exist in the
+connection's database for the check to succeed).
+This method sets the @stmt-&gt;validity_meta_struct attribute to @mstruct.
+
+If @mstruct is %NULL, then remove any information from a previous call to this method stored in @stmt. In this case,
+the @stmt-&gt;validity_meta_struct attribute is cleared.
+
+Also note that some parts of @stmt may be modified: for example leading and trailing spaces in aliases or
+objects names will be removed.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="mstruct">
+<parameter_description> a #GdaMetaStruct object, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+
+</return>
+</function>
+
 <function name="gda_value_stringify">
 <description>
 Converts a GValue to its string representation which is a human readable value. Note that the
@@ -9398,8 +12808,7 @@ Dates are converted in a YYYY-MM-DD format.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string, or %NULL if the conversion cannot be done. Free the value with a g_free() when you&apos;ve finished
-using it. 
+<return> a new string, or %NULL if the conversion cannot be done. Free the value with a g_free() when you've finished using it. 
 </return>
 </function>
 
@@ -9415,8 +12824,33 @@ Makes a new #GValue of type @type.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the newly created #GValue with the specified @type. 
-You need to set the value in the returned GValue.
+<return> the newly created #GValue with the specified @type. You need to set the value in the returned GValue.
+
+Free-function: gda_value_free
+</return>
+</function>
+
+<function name="gda_sql_builder_export_expression">
+<description>
+Exports a part managed by @builder as a new #GdaSqlExpr, which can represent any expression
+in a statement.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="id">
+<parameter_description> the ID of the expression to be exported, (must be a valid ID in @builder, not %0)
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to a new #GdaSqlExpr structure, free using gda_sql_expr_free() when not
+needed anymore. If the part with @id as ID cannot be found, the returned value is %NULL.
+
 </return>
 </function>
 
@@ -9438,52 +12872,106 @@ Remove the &quot;to be deleted&quot; mark at the row @proxy_row, if it existed.
 <return></return>
 </function>
 
-<function name="gda_sql_select_field_copy">
+<function name="gda_tree_manager_add_manager">
 <description>
-Creates a new #GdaSqlSelectField structure initated with the values stored in @field.
+Adds a sub manager to @manager. Use this method to create the skeleton structure
+of a #GdaTree. Note that a single #GdaTreeManager can be used by several #GdaTree objects
+or several times in the same #GdaTree's structure.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="field">
-<parameter_description> a #GdaSqlSelectField structure to be copied
+<parameter name="manager">
+<parameter_description> a #GdaTreeManager object
+</parameter_description>
+</parameter>
+<parameter name="sub">
+<parameter_description> a #GdaTreeManager object to add
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaSqlSelectField structure.
+<return></return>
+</function>
+
+<function name="gda_tree_new">
+<description>
+Creates a new #GdaTree object
+
+Since: 4.2
+
+</description>
+<parameters>
+</parameters>
+<return> a new #GdaTree object
+
 </return>
 </function>
 
-<function name="gda_data_handler_get_nb_g_types">
+<function name="gda_tree_mgr_columns_get_type">
 <description>
-Get the number of GType types the GdaDataHandler can handle correctly
+Since: 4.2
+
+</description>
+<parameters>
+</parameters>
+<return> the GType
+
+</return>
+</function>
+
+<function name="gda_column_get_allow_null">
+<description>
+Gets the 'allow null' flag of the given column.
 
 
 </description>
 <parameters>
-<parameter name="dh">
-<parameter_description> an object which implements the #GdaDataHandler interface
+<parameter name="column">
+<parameter_description> a #GdaColumn.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the number.
+<return> whether the given column allows null values or not (%TRUE or %FALSE).
 </return>
 </function>
 
-<function name="gda_data_proxy_is_read_only">
+<function name="gda_value_get_time">
 <description>
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="value">
+<parameter_description> a #GValue whose value we want to get.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the proxied data model is itself read-only
+<return> the value stored in @value.
 </return>
 </function>
 
+<function name="gda_sql_builder_select_set_having">
+<description>
+Valid only for: SELECT statements
+
+Sets the HAVING condition of the statement
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="cond_id">
+<parameter_description> the ID of the expression to set as HAVING condition, or 0 to unset any previous HAVING condition
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_connection_del_prepared_statement">
 <description>
 Removes any prepared statement associated to @gda_stmt in @cnc: this undoes what
@@ -9527,18 +13015,18 @@ gda_connection_add_prepared_statement() does.
 </return>
 </function>
 
-<function name="gda_sql_statement_check_clean">
+<function name="gda_column_get_auto_increment">
 <description>
-Cleans any data set by a previous call to gda_sql_statement_check_validity().
 
 </description>
 <parameters>
-<parameter name="stmt">
-<parameter_description> a pinter to a #GdaSqlStatement structure
+<parameter name="column">
+<parameter_description> a #GdaColumn.
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> whether the given column is an auto incremented one (%TRUE or %FALSE).
+</return>
 </function>
 
 <function name="gda_data_model_export_to_file">
@@ -9546,17 +13034,22 @@ Cleans any data set by a previous call to gda_sql_statement_check_validity().
 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:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;&quot;SEPARATOR&quot;: a string value of which the first character is used as a separator in case of CSV export
-&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;&quot;QUOTE&quot;: a string value of which the first character is used as a quote character in case of CSV export
-&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;&quot;FIELD_QUOTE&quot;: a boolean value which can be set to FALSE if no quote around the individual fields 
-is requeted, in case of CSV export&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;&quot;NAME&quot;: a string value used to name the exported data if the export format is XML&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;&quot;OVERWRITE&quot;: a boolean value which tells if the file must be over-written if it already exists.
-&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;SEPARATOR&quot;: 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;&quot;QUOTE&quot;: a string value of which the first character is used as a quote character in case of CSV export
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;FIELD_QUOTE&quot;: 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;&quot;NAME&quot;: a string value used to name the exported data if the export format is XML&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;FIELDS_NAME&quot;: a boolean value which, if set to %TRUE and in case of a CSV export, will add a first line with the name each exported field&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;&quot;OVERWRITE&quot;: 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;&quot;NULL_AS_EMPTY&quot;: a boolean value which, if set to %TRUE and in case of a CSV 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;&quot;INVALID_AS_NULL&quot;: 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;/itemizedlist&gt;
+
+Upon errors FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
 
 
 </description>
@@ -9602,6 +13095,45 @@ is requeted, in case of CSV export&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
 </return>
 </function>
 
+<function name="gda_data_proxy_has_changed">
+<description>
+Tells if @proxy contains any modifications not applied to the proxied data model.
+
+
+</description>
+<parameters>
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if there are some modifications in @proxy
+</return>
+</function>
+
+<function name="gda_meta_store_set_reserved_keywords_func">
+<description>
+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.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GdaMetaStore object
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> a #GdaSqlReservedKeywordsFunc function, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_server_operation_get_value_at">
 <description>
 Get the value for the node at the path formed using @path_format and ... (the rules are the same as
@@ -9628,36 +13160,70 @@ if the @path is not defined or @path does not hold any value.
 </return>
 </function>
 
-<function name="gda_column_get_auto_increment">
+<function name="gda_sql_builder_add_case_v">
 <description>
+Creates a new CASE ... WHEN ... THEN ... ELSE ... END expression. The WHEN expression and the THEN
+expression IDs are taken from the @when_array and @then_array at the same index, for each index inferior to
+ args_size 
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="column">
-<parameter_description> a #GdaColumn.
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
+</parameter_description>
+</parameter>
+<parameter name="test_expr">
+<parameter_description> the expression ID representing the test of the CASE, or %0
+</parameter_description>
+</parameter>
+<parameter name="else_expr">
+<parameter_description> the expression ID representing the ELSE expression, or %0
+</parameter_description>
+</parameter>
+<parameter name="when_array">
+<parameter_description> an array containing each WHEN expression ID, having at least @args_size elements
+</parameter_description>
+</parameter>
+<parameter name="then_array">
+<parameter_description> an array containing each THEN expression ID, having at least @args_size elements
+</parameter_description>
+</parameter>
+<parameter name="args_size">
+<parameter_description> the size of @when_array and @then_array
 </parameter_description>
 </parameter>
 </parameters>
-<return> whether the given column is an auto incremented one (%TRUE or %FALSE).
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
-<function name="gda_get_application_exec_path">
+<function name="gda_meta_store_sql_identifier_quote">
 <description>
-Find the path to the application identified by @app_name. For example if the application
-is &quot;gda-sql&quot;, then calling this function will return
-&quot;/your/prefix/bin/gda-sql-4.0&quot; if Libgda is installed in
-the &quot;/your/prefix&quot; prefix (which would usually be &quot;/usr&quot;), and for the ABI version 4.0.
+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().
+
+Since: 4.0.3
 
 </description>
 <parameters>
-<parameter name="app_name">
-<parameter_description> the name of the application to find
+<parameter name="id">
+<parameter_description> an SQL identifier
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
 </parameter_description>
 </parameter>
 </parameters>
-<return> the path as a new string, or %NULL if the application cannot be found
+<return> a new string, to free with g_free() once not needed anymore
+
 </return>
 </function>
 
@@ -9677,22 +13243,6 @@ computes a hash string from @id, to be used in hash tables as a #GHashFunc
 </return>
 </function>
 
-<function name="gda_holder_set_value_to_default">
-<description>
-Set @holder&apos;s value to its default value.
-
-
-</description>
-<parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
-</parameter_description>
-</parameter>
-</parameters>
-<return> TRUE if @holder has got a default value
-</return>
-</function>
-
 <function name="gda_server_operation_get_node_path_portion">
 <description>
 Get the last part of @path
@@ -9713,44 +13263,24 @@ Get the last part of @path
 </return>
 </function>
 
-<function name="gda_connection_event_get_gda_code">
+<function name="gda_lockable_lock">
 <description>
-Retreive the code associated to @event.
-
-
-</description>
-<parameters>
-<parameter name="event">
-<parameter_description> a #GdaConnectionEvent
-</parameter_description>
-</parameter>
-</parameters>
-<return> the #GdaConnectionEventCode event&apos;s code
-</return>
-</function>
+Locks @lockable. If it is already locked by another thread, the current thread will block until it is unlocked 
+by the other thread.
 
-<function name="gda_server_provider_get_data_handler_g_type">
-<description>
-Find a #GdaDataHandler object to manipulate data of type @for_type. The returned object must not be modified.
+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).
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a server provider.
-</parameter_description>
-</parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="for_type">
-<parameter_description> a #GType
+<parameter name="lockable">
+<parameter_description> a #GdaLockable object.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaDataHandler, or %NULL if the provider does not support the requested @for_type data type 
-</return>
+<return></return>
 </function>
 
 <function name="gda_sql_select_order_new">
@@ -9769,29 +13299,30 @@ Creates a new #GdaSqlSelectOrder structure and sets its parent to @parent.
 </return>
 </function>
 
-<function name="gda_data_model_iter_get_value_for_field">
+<function name="gda_data_model_row_removed">
 <description>
-Get the value stored at the column @field_name in @iter
+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
 
 </description>
 <parameters>
-<parameter name="iter">
-<parameter_description> a #GdaDataModelIter object
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
 </parameter_description>
 </parameter>
-<parameter name="field_name">
-<parameter_description> the requested column name
+<parameter name="row">
+<parameter_description> row number.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GValue, or %NULL
-</return>
+<return></return>
 </function>
 
 <function name="gda_data_proxy_get_proxied_model_row">
 <description>
-Get the @proxy&apos;s proxied model row corresponding to @proxy_row
+Get the @proxy's proxied model row corresponding to @proxy_row
 
 
 </description>
@@ -9805,7 +13336,7 @@ Get the @proxy&apos;s proxied model row corresponding to @proxy_row
 </parameter_description>
 </parameter>
 </parameters>
-<return> the proxied model&apos;s row, or -1 if @proxy row which only exists @proxy
+<return> the proxied model's row, or -1 if @proxy row which only exists @proxy
 </return>
 </function>
 
@@ -9827,48 +13358,63 @@ Sets the type of @column to @type.
 <return></return>
 </function>
 
-<function name="gda_data_proxy_append">
+<function name="gda_statement_rewrite_for_default_values">
 <description>
-Appends a new row to the proxy. The operation can fail if either:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;The INSERT operation is not accepted by the proxied data model&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;There is an unknown number of rows in the proxy&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+Rewrites @stmt and creates a new #GdaSqlStatement where all the variables which are to a DEFAULT value
+(as returned by gda_holder_value_is_default()) are either removed from the statement (if @remove
+is %TRUE) or replaced by the &quot;DEFAULT&quot; keyword (if @remove is %FALSE).
+
+This function is only usefull for database providers' implementations which have to deal with default
+values when executing statements, and is only relevant in the case of INSERT or UPDATE statements
+(in the latter case an error is returned if @remove is %TRUE).
 
+For example the &lt;programlisting&gt;&lt;![CDATA[INSERT INTO mytable (id, name) VALUES (23, ##name::string)]]&gt;&lt;/programlisting&gt;
+is re-written into &lt;programlisting&gt;&lt;![CDATA[INSERT INTO mytable (id, name) VALUES (23, DEFAULT)]]&gt;&lt;/programlisting&gt;
+if @remove is %FALSE and into &lt;programlisting&gt;&lt;![CDATA[INSERT INTO mytable (id) VALUES (23)]]&gt;&lt;/programlisting&gt;
+if @remove is %TRUE.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="params">
+<parameter_description> a #GdaSet containing the variable's values to be bound when executing @stmt
+</parameter_description>
+</parameter>
+<parameter name="remove">
+<parameter_description> set to %TRUE if DEFAULT fields are removed, of %FALSE if the &quot;DEFAULT&quot; keyword is used
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the proxy row number of the new row, or -1 if the row could not be appended
+<return> a new #GdaSqlStatement, or %NULL if an error occurred
+
 </return>
 </function>
 
-<function name="gda_server_provider_create_parser">
+<function name="gda_data_proxy_delete">
 <description>
-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().
-
+Marks the row @proxy_row to be deleted
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a #GdaServerProvider provider object
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
 </parameter_description>
 </parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection, or %NULL
+<parameter name="proxy_row">
+<parameter_description> A proxy row number
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GdaSqlParser object, or %NULL.
-</return>
+<return></return>
 </function>
 
 <function name="gda_sql_select_target_free">
@@ -9909,31 +13455,113 @@ Commits the modified data in the proxy back into the #GdaDataModel.
 </return>
 </function>
 
-<function name="gda_data_model_iter_move_prev_default">
+<function name="gda_data_model_bdb_new">
 <description>
+Creates a new #GdaDataModel object to access the contents of the Berkeley DB file @file,
+for the database @db_name if not %NULL
+
 
 </description>
 <parameters>
+<parameter name="filename">
+<parameter_description> name of the file containing the database
+</parameter_description>
+</parameter>
+<parameter name="db_name">
+<parameter_description> the name of the database within @filename, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
-<return></return>
+<return> a new #GdaDataModel
+</return>
 </function>
 
-<function name="gda_data_model_dir_get_errors">
+<function name="gda_meta_store_schema_add_custom_object">
 <description>
-Get the list of errors which have occurred while using @model
+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=&quot;mytable&quot;&gt;
+    &lt;column name=&quot;id&quot; pkey=&quot;TRUE&quot;/&gt;
+    &lt;column name=&quot;value&quot;/&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 &lt;table&gt; or a &lt;view&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;
 
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModelDir object
+<parameter name="store">
+<parameter_description> a #GdaMetaStore object
+</parameter_description>
+</parameter>
+<parameter name="xml_description">
+<parameter_description> an XML description of the table or view to add to @store
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a read-only list of #GError pointers, or %NULL if no error has occurred
+<return> TRUE if the new object has sucessfully been added
 </return>
 </function>
 
+<function name="gda_connection_internal_reset_transaction_status">
+<description>
+Internal function to be called by database providers to reset the transaction status.
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_connection_add_prepared_statement">
 <description>
 Declares that @prepared_stmt is a prepared statement object associated to @gda_stmt within the connection
@@ -9960,35 +13588,93 @@ reference it has on @prepared_stmt.
 <return></return>
 </function>
 
-<function name="gda_data_proxy_set_sample_start">
+<function name="gda_sql_builder_select_order_by">
 <description>
-Sets the number of the first row to be displayed.
+Adds a new ORDER BY expression to a SELECT statement.
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="proxy">
-<parameter_description> a #GdaDataProxy object
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuiler
 </parameter_description>
 </parameter>
-<parameter name="sample_start">
-<parameter_description> the number of the first row to be displayed
+<parameter name="expr_id">
+<parameter_description> the ID of the expression to use during sorting (not %0)
+</parameter_description>
+</parameter>
+<parameter name="asc">
+<parameter_description> %TRUE for an ascending sorting
+</parameter_description>
+</parameter>
+<parameter name="collation_name">
+<parameter_description>  name of the collation to use when sorting, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_value_get_time">
+<function name="gda_data_model_import_from_string">
 <description>
+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.
+
 
 </description>
 <parameters>
-<parameter name="value">
-<parameter_description> a #GValue whose value we want to get.
+<parameter name="model">
+<parameter_description> a #GdaDataModel
+</parameter_description>
+</parameter>
+<parameter name="string">
+<parameter_description> the string to import data from
+</parameter_description>
+</parameter>
+<parameter name="cols_trans">
+<parameter_description> a hash table containing which columns of @model will be imported, or %NULL for all columns, see gda_data_model_import_from_model()
+</parameter_description>
+</parameter>
+<parameter name="options">
+<parameter_description> list of options for the export
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the value stored in @value.
+<return> TRUE if no error occurred.
+</return>
+</function>
+
+<function name="gda_tree_mgr_columns_new">
+<description>
+Creates a new #GdaTreeManager object which will add one tree node for each
+column in the table named @table_name in the @schema schema.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
+</parameter_description>
+</parameter>
+<parameter name="schema">
+<parameter_description> a schema name
+</parameter_description>
+</parameter>
+<parameter name="table_name">
+<parameter_description> the name of the table
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaTreeManager object 
+
 </return>
 </function>
 
@@ -10000,7 +13686,8 @@ If @row is not a valid row, then the returned value is FALSE, and the &quot;curr
 property is set to -1 (which means that gda_data_model_iter_is_valid() would return FALSE)
 
 If any other error occurred then the returned value is FALSE, but the &quot;current-row&quot;
-property is set to the @row row.
+property is set to the @row row.  In this case
+each #GdaHolder composing @iter for which an error occurred will be invalid (see gda_holder_is_valid()).
 
 
 </description>
@@ -10076,6 +13763,27 @@ Note: unlike g_mutex_lock(), this method recursive, which means a thread can loc
 </return>
 </function>
 
+<function name="gda_sql_statement_select_take_where_cond">
+<description>
+Sets the WHERE clause of @stmt
+
+ expr's ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_quark_list_free">
 <description>
 Releases all memory occupied by the given #GdaQuarkList.
@@ -10090,23 +13798,23 @@ Releases all memory occupied by the given #GdaQuarkList.
 <return></return>
 </function>
 
-<function name="gda_server_operation_add_node_to_sequence">
+<function name="gda_sql_param_spec_take_descr">
 <description>
+Sets @pspec's description. @value's ownership is transferred to
+ pspec (which means @pspec is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
+<parameter name="pspec">
+<parameter_description> a #GdaSqlParamSpec pointer
 </parameter_description>
 </parameter>
-<parameter name="seq_path">
-<parameter_description> the path to the sequence to which an item must be added (like &quot;/SEQ_NAME&quot; for instance)
+<parameter name="value">
+<parameter_description> a G_TYPE_STRING #GValue
 </parameter_description>
 </parameter>
 </parameters>
-<return> the index of the new entry in the sequence (like 5 for example if a 6th item has
-been added to the sequence.
-</return>
+<return></return>
 </function>
 
 <function name="gda_virtual_connection_open">
@@ -10135,7 +13843,7 @@ Executes a non-selection statement on the given connection. The gda_execute_non_
 to use if one prefers to use some SQL directly.
 
 This function returns the number of rows affected by the execution of @stmt, or -1
-if an error occurred, or -2 if the connection&apos;s provider does not return the number of rows affected.
+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. 
@@ -10168,7 +13876,54 @@ See gda_connection_statement_execute() form more information about @last_insert_
 </parameter_description>
 </parameter>
 </parameters>
-<return> the number of rows affected (&amp;gt;=0) or -1 or -2 
+<return> the number of rows affected (&gt;=0) or -1 or -2 
+</return>
+</function>
+
+<function name="gda_connection_async_cancel">
+<description>
+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.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
+</parameter_description>
+</parameter>
+<parameter name="task_id">
+<parameter_description> a task ID returned by gda_connection_async_statement_execute()
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> TRUE if no error occurred
+
+</return>
+</function>
+
+<function name="gda_sql_identifier_add_quotes">
+<description>
+Add double quotes around the @str identifier. Use the gda_sql_identifier_needs_quotes()
+function to tell if an identifier needs to be quoted.
+
+Deprecated: 4.0.3: Use gda_sql_identifier_quote() instead.
+
+</description>
+<parameters>
+<parameter name="str">
+<parameter_description> an SQL identifier
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new string
+
 </return>
 </function>
 
@@ -10211,30 +13966,39 @@ that new row is deleted from @proxy.
 <return></return>
 </function>
 
-<function name="gda_data_model_row_updated">
+<function name="gda_data_handler_get_value_from_sql">
 <description>
-Emits the &apos;row_updated&apos; and &apos;changed&apos; signals on @model.
+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 &quot;NULL&quot; string is returned.
 
-This method should only be used by #GdaDataModel implementations to 
-signal that a row has been updated.
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+<parameter name="dh">
+<parameter_description> an object which implements the #GdaDataHandler interface
 </parameter_description>
 </parameter>
-<parameter name="row">
-<parameter_description> row number.
+<parameter name="sql">
+<parameter_description> an SQL string
+</parameter_description>
+</parameter>
+<parameter name="type">
+<parameter_description> a GType
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the new GValue or NULL on error
+</return>
 </function>
 
 <function name="gda_holder_set_default_value">
 <description>
-Sets the default value within the holder. If @value is %NULL then @holder won&apos;t have a
+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().
 
@@ -10247,30 +14011,30 @@ NOTE: the default value does not need to be of the same type as the one required
 </parameter_description>
 </parameter>
 <parameter name="value">
-<parameter_description> a value to set the holder&apos;s default value, or %NULL
+<parameter_description> a value to set the holder's default value, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gda_data_model_iter_get_value_at">
+<function name="gda_connection_open">
 <description>
-Get the value stored at the column @col in @iter. The returned value must not be modified.
+Tries to open the connection.
 
 
 </description>
 <parameters>
-<parameter name="iter">
-<parameter_description> a #GdaDataModelIter object
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
-<parameter name="col">
-<parameter_description> the requested column
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GValue, or %NULL if the value could not be fetched
+<return> TRUE if the connection is opened, and FALSE otherwise.
 </return>
 </function>
 
@@ -10303,41 +14067,239 @@ more information.
 </return>
 </function>
 
-<function name="Find">
+<function name="gda_data_model_get_n_rows">
 <description>
 
 </description>
 <parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
+</parameter_description>
+</parameter>
 </parameters>
-<return></return>
+<return> the number of rows in the given data model, or -1 if the number of rows is not known
+</return>
 </function>
 
-<function name="gda_data_model_get_n_rows">
-<description>
+<function name="gda_sql_identifier_quote">
+<description>
+Use this function for any SQL identifier to make sure that:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;
+&lt;para&gt;it is correctly formatted
+to be used with @cnc (if @cnc is %NULL, then some default SQL quoting rules will be applied,
+similar to PostgreSQL's way) if @for_meta_store is %FALSE;
+&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;it is correctly formatted to be used with the #GdaMetaStore's object associated to @cnc
+is @for_meta_store is %TRUE.
+&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+The @force_quotes allow some control of how to interpret @id: if %FALSE, then @id will be left
+unchanged most of the time (except for example if it's a reserved keyword), otherwise
+if @force_quotes is %TRUE, then the returned string will most probably have quotes around it
+to request that the database keep the case sensitiveness (but again, this may vary depending
+on the database being accessed through @cnc).
+
+For example, the following table gives the result of this function depending on the arguments
+when @cnc is %NULL (and @prov is also %NULL):
+&lt;table frame=&quot;all&quot;&gt;
+&lt;tgroup cols=&quot;6&quot; colsep=&quot;1&quot; rowsep=&quot;1&quot; align=&quot;justify&quot;&gt;
+&lt;thead&gt;
+&lt;row&gt;
+&lt;entry&gt;id&lt;/entry&gt;
+&lt;entry&gt;for_meta_store=%FALSE, force_quotes=%FALSE&lt;/entry&gt;
+&lt;entry&gt;for_meta_store=%TRUE, force_quotes=%FALSE&lt;/entry&gt;
+&lt;entry&gt;for_meta_store=%FALSE, force_quotes=%TRUE&lt;/entry&gt;
+&lt;entry&gt;for_meta_store=%TRUE, force_quotes=%TRUE&lt;/entry&gt;
+&lt;entry&gt;remark&lt;/entry&gt;
+&lt;/row&gt;
+&lt;/thead&gt;
+&lt;tbody&gt;
+&lt;row&gt;
+&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
+&lt;entry&gt;non allowed character in SQL identifier&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;Mixed case SQL identifier, already quoted&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;CapitalTest&lt;/entry&gt;
+&lt;entry&gt;CapitalTest&lt;/entry&gt;
+&lt;entry&gt;capitaltest&lt;/entry&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
+&lt;entry&gt;Mixed case SQL identifier, non quoted&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;All lowser case, quoted&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;All lowser case&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;MYTABLE&lt;/entry&gt;
+&lt;entry&gt;MYTABLE&lt;/entry&gt;
+&lt;entry&gt;mytable&lt;/entry&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;All upper case&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
+&lt;entry&gt;All upper case, quoted&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;desc&lt;/entry&gt;
+&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
+&lt;entry&gt;SQL reserved keyword&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;5ive&lt;/entry&gt;
+&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
+&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
+&lt;entry&gt;SQL identifier starting with a digit&lt;/entry&gt;
+&lt;/row&gt;
+&lt;/tbody&gt;
+&lt;/tgroup&gt;
+&lt;/table&gt;
+
+Here are a few examples of when and how to use this function:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;
+&lt;para&gt;
+When creating a table, the user has entered the table name, this function can be used to
+create a valid SQL identifier from the user provided table name:
+&lt;programlisting&gt;
+gchar *user_sqlid=...
+gchar *valid_sqlid = gda_sql_identifier_quote (user_sqlid, cnc, NULL, FALSE, FALSE);
+gchar *sql = g_strdup_printf (&quot;CREATE TABLE %s ...&quot;, valid_sqlid);
+g_free (valid_sqlid);
+&lt;/programlisting&gt;
+Note that this is an illustration and creating a table should be sone using a #GdaServerOperation
+object.
+&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;
+When updating the meta data associated to a table which has been created with the code
+above:
+&lt;programlisting&gt;
+GValue table_name_value = { 0 };
+gchar* column_names[] = { (gchar*)&quot;table_name&quot; };
+GValue* column_values[] = { &amp;table_name_value };
+GdaMetaContext mcontext = { (gchar*)&quot;_tables&quot;, 1, column_names, column_values };
+g_value_init (&amp;table_name_value, G_TYPE_STRING);
+g_value_take_string (&amp;table_name_value, gda_sql_identifier_quote (user_sqlid, cnc, NULL, TRUE, FALSE);
+gda_connection_update_meta_store (cnc, &amp;mcontext, NULL);
+g_value_reset (&amp;table_name_value);
+&lt;/programlisting&gt;
+&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;
+When using a #GdaMetaStruct object to fetch information about a table (which has been created with
+the code above):
+&lt;programlisting&gt;
+GValue table_name_value = { 0 };
+g_value_init (&amp;table_name_value, G_TYPE_STRING);
+g_value_take_string (&amp;table_name_value, gda_sql_identifier_quote (user_sqlid, cnc, NULL, TRUE, FALSE);
+GdaMetaDbObject *dbo;
+dbo = gda_meta_struct_complement (mstruct, GDA_META_DB_TABLE, NULL, NULL, &amp;table_name_value, NULL);
+g_value_reset (&amp;table_name_value);
+&lt;/programlisting&gt;
+&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+
+Note that @id must not be a composed SQL identifier (such as &quot;mytable.mycolumn&quot; which should be
+treated as the &quot;mytable&quot; and &quot;mycolumn&quot; SQL identifiers). If unsure, use gda_sql_identifier_split().
+
+Also note that if @cnc is %NULL, then it's possible to pass an non %NULL @prov to have a result specific
+to @prov.
+
+For more information, see the &lt;link linkend=&quot;gen:sql_identifiers&quot;&gt;SQL identifiers and abstraction&lt;/link&gt; and
+&lt;link linkend=&quot;information_schema:sql_identifiers&quot;&gt;SQL identifiers in meta data&lt;/link&gt; sections.
+
+Since: 4.0.3
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+<parameter name="id">
+<parameter_description> an SQL identifier
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="prov">
+<parameter_description> a #GdaServerProvider object, or %NULL
+ for_meta_store set to %TRUE if the returned string will be used in a #GdaMetaStore
+</parameter_description>
+</parameter>
+<parameter name="force_quotes">
+<parameter_description> set to %TRUE to force the returned string to be quoted
 </parameter_description>
 </parameter>
 </parameters>
-<return> the number of rows in the given data model, or -1 if the number of rows is not known
+<return> the representation of @id ready to be used in SQL statement, as a new string,
+or %NULL if @id is in a wrong format
+
 </return>
 </function>
 
 <function name="gda_mutex_trylock">
 <description>
-Returns: TRUE, if @m could be locked.
+Tries to lock @mutex. If @mutex is already locked by another thread, it immediately returns FALSE.
+Otherwise it locks @mutex and returns TRUE
+
+This function can be used even if g_thread_init() has not yet been called, and, in that case, will immediately return TRUE.
+
+Note: Unlike g_mutex_trylock(), the #GdaMutex is recursive, which means a thread can lock it several times (and has
+to unlock it as many times to actually unlock it)
+
 
 </description>
 <parameters>
-<parameter name="m">
+<parameter name="mutex">
 <parameter_description> a #GdaMutex
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE, if @m could be locked.
+<return> TRUE, if @mutex could be locked.
 </return>
 </function>
 
@@ -10356,7 +14318,7 @@ Returns: TRUE, if @m could be locked.
 Adds @holder to the list of holders managed within @set.
 
 NOTE: if @set already has a #GdaHolder with the same ID as @holder, then @holder
-will not be added to the set (even if @holder&apos;s type or value is not the same as the
+will not be added to the set (even if @holder's type or value is not the same as the
 one already in @set).
 
 
@@ -10376,18 +14338,20 @@ with the same ID)
 </return>
 </function>
 
-<function name="gda_data_model_reset">
+<function name="gda_quark_list_copy">
 <description>
-Emits the &apos;reset&apos; and &apos;changed&apos; signal on @model.
+Creates a new #GdaQuarkList from an existing one.
+
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel object.
+<parameter name="qlist">
+<parameter_description> quark_list to get a copy from.
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a newly allocated #GdaQuarkList with a copy of the data in @qlist.
+</return>
 </function>
 
 <function name="gda_binary_copy">
@@ -10402,14 +14366,33 @@ Creates a new #GdaBinary structure from an existing one.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly allocated #GdaBinary which contains a copy of
-information in @boxed.
+<return> a newly allocated #GdaBinary which contains a copy of information in @boxed.
+
+Free-function: gda_binary_free
 </return>
 </function>
 
+<function name="gda_column_set_dbms_type">
+<description>
+Defines @column's database type
+
+</description>
+<parameters>
+<parameter name="column">
+<parameter_description> a #GdaColumn
+</parameter_description>
+</parameter>
+<parameter name="dbms_type">
+<parameter_description> a string
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_column_set_description">
 <description>
-Sets the column&apos;s description
+Sets the column's description
 
 </description>
 <parameters>
@@ -10430,7 +14413,7 @@ Sets the column&apos;s description
 Creates an SQL statement (possibly using some specific extensions of the DBMS) corresponding to the
 @op operation. Note that the returned string may actually contain more than one SQL statement.
 
-This function&apos;s purpose is mainly informative to get the actual SQL code which would be executed to perform
+This function's purpose is mainly informative to get the actual SQL code which would be executed to perform
 the operation; to actually perform the operation, use gda_server_provider_perform_operation().
 
 
@@ -10457,49 +14440,90 @@ the operation; to actually perform the operation, use gda_server_provider_perfor
 </return>
 </function>
 
-<function name="gda_sql_select_join_type_to_string">
+<function name="gda_server_provider_get_server_version">
 <description>
-Creates a new string representing the join type.
+Get the version of the database to which the connection is opened.
 
 
 </description>
 <parameters>
-<parameter name="type">
-<parameter_description> a #GdaSqlSelectJoinType structure to be copied
+<parameter name="provider">
+<parameter_description> a #GdaServerProvider object.
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
 </parameters>
-<return> a string representing the Join type.
+<return> a (read only) string, or %NULL if an error occurred
 </return>
 </function>
 
-<function name="gda_data_model_array_get_row">
+<function name="gda_sql_builder_select_set_limit">
 <description>
-Get a pointer to a row in @model
+If @limit_count_expr_id is not %0, defines the maximum number of rows in the #GdaDataModel
+resulting from the execution of the built statement. In this case, the offset from which the
+rows must be collected can be defined by the @limit_offset_expr_id expression if not %0 (note that
+this feature may not be supported by all the database providers).
+
+If @limit_count_expr_id is %0, then removes any LIMIT which may have been imposed by a previous
+call to this method.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModelArray object
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="row">
-<parameter_description>
+<parameter name="limit_count_expr_id">
+<parameter_description> the ID of the LIMIT expression, or %0
+</parameter_description>
+</parameter>
+<parameter name="limit_offset_expr_id">
+<parameter_description> the ID of the OFFSET expression, or %0
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_thread_wrapper_fetch_result">
+<description>
+Use this method to check if the execution of a function is finished. The function's execution must have
+been requested using gda_thread_wrapper_execute().
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
+</parameter_description>
+</parameter>
+<parameter name="may_lock">
+<parameter_description> TRUE if this funct must lock the caller untill a result is available
+</parameter_description>
+</parameter>
+<parameter name="exp_id">
+<parameter_description> ID of the job for which a result is expected
 </parameter_description>
 </parameter>
 <parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter_description> a place to store errors, for errors which may have occurred during the execution, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GdaRow, or %NULL if an error occurred
+<return> the pointer returned by the execution, or %NULL if no result is available
+
 </return>
 </function>
 
 <function name="gda_data_comparator_compute_diff">
 <description>
-Actually computes the differences bewteen the data models for which @comp is defined. 
+Actually computes the differences between the data models for which @comp is defined. 
 
 For each difference computed, stored in a #GdaDiff structure, the &quot;diff-computed&quot; signal is emitted.
 If one connects to this signal and returns FALSE in the signal handler, then computing differences will be
@@ -10527,20 +14551,20 @@ 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, 
+series of &lt;key&gt;=&lt;value&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 &quot;gda-sql-4.0 -L&quot; 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 &quot;my_data.db&quot; in the current directory would be &amp;lt;constant&amp;gt;&quot;DB_DIR=.;DB_NAME=my_data&quot;&amp;lt;/constant&amp;gt;.
+file named &quot;my_data.db&quot; in the current directory would be &lt;constant&gt;&quot;DB_DIR=.;DB_NAME=my_data&quot;&lt;/constant&gt;.
 
 The @cnc_string string must have the following format: 
-&quot;[&amp;lt;provider&amp;gt;://][&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;connection_params&amp;gt;&quot;
-(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;
+&quot;[&lt;provider&gt;://][&lt;username&gt;[:&lt;password&gt;] ]&lt;connection_params&gt;&quot;
+(if &lt;username&gt; and/or &lt;password&gt; are provided, and @auth_string is %NULL, then these username
+and passwords will be used, and if &lt;provider&gt; is provided and @provider_name is %NULL then this
+provider will be used). Note that if provided, &lt;username&gt;, &lt;password&gt; and  &lt;provider&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
@@ -10549,14 +14573,17 @@ like &quot;USERNAME=...;PASSWORD=...&quot; where the ... are replaced by actual
 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 &amp;lt;parameter&amp;gt;auth_params&amp;lt;/parameter&amp;gt; member of the #GdaProviderInfo structure for each installed
+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 &quot;gda-sql-4.0 -L&quot; command to list the possible named parameters.
 
 Additionally, it is possible to have the connection string
-respect the &quot;&amp;lt;provider_name&amp;gt;://&amp;lt;real cnc string&amp;gt;&quot; format, in which case the provider name
+respect the &quot;&lt;provider_name&gt;://&lt;real cnc string&gt;&quot; 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).
+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).
 
 
 </description>
@@ -10600,6 +14627,34 @@ is not %NULL then it will still be used as the provider ID).
 </return>
 </function>
 
+<function name="gda_tree_set_attribute">
+<description>
+Sets an attribute to @tree, which will be accessible to any node in it.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree object
+</parameter_description>
+</parameter>
+<parameter name="attribute">
+<parameter_description> attribute name
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> a #GValue, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> a function to be called when @attribute is not needed anymore, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_sql_case_free">
 <description>
 Frees a #GdaSqlCase structure and its members.
@@ -10614,24 +14669,25 @@ Frees a #GdaSqlCase structure and its members.
 <return></return>
 </function>
 
-<function name="gda_config_get_dsn_info">
+<function name="gda_data_model_row_updated">
 <description>
-Get information about the DSN named @dsn_name. 
-
- dsn_name&apos;s format is &quot;[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;DSN&amp;gt;&quot; (if &amp;lt;username&amp;gt;
-and optionaly &amp;lt;password&amp;gt; are provided, they are ignored). Also see the gda_dsn_split() utility
-function.
+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.
 
 </description>
 <parameters>
-<parameter name="dsn_name">
-<parameter_description> the name of the DSN to look for
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
+</parameter_description>
+</parameter>
+<parameter name="row">
+<parameter_description> row number.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a a pointer to read-only #GdaDsnInfo structure, or %NULL if not found
-</return>
+<return></return>
 </function>
 
 <function name="gda_value_get_blob">
@@ -10664,9 +14720,20 @@ Clears the history of errors @model has to report
 
 <function name="gda_select_alter_select_for_empty">
 <description>
+Creates a new #GdaStatement, selecting the same data as @stmt, but which always returns an
+empty (no row) data model. This is use dy database providers' implementations.
+
 
 </description>
 <parameters>
+<parameter name="stmt">
+<parameter_description> a SELECT #GdaStatement
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
 <return> a new #GdaStatement
 </return>
@@ -10677,7 +14744,7 @@ Clears the history of errors @model has to report
 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&apos;s implementation
+To be used by provider's implementation
 
 
 </description>
@@ -10695,51 +14762,54 @@ To be used by provider&apos;s implementation
 </return>
 </function>
 
-<function name="gda_connection_open">
+<function name="gda_server_provider_unescape_string">
 <description>
-Tries to open the connection.
+Unescapes @str for use within an SQL command. This is the exact opposite of gda_server_provider_escape_string().
 
 
 </description>
 <parameters>
+<parameter name="provider">
+<parameter_description> a server provider.
+</parameter_description>
+</parameter>
 <parameter name="cnc">
-<parameter_description> a #GdaConnection object
+<parameter_description> a #GdaConnection object, or %NULL
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="str">
+<parameter_description> a string to escape
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the connection is opened, and FALSE otherwise.
+<return> a new string
 </return>
 </function>
 
-<function name="gda_batch_get_parameters">
+<function name="gda_thread_wrapper_cancel">
 <description>
-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.
+Cancels a job not yet executed. This may fail for the following reasons:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;the job @id could not be found, either because it has already been treated or because
+it does not exist or because it was created in another thread&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;the job @id is currently being treated by the worker thread&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="batch">
-<parameter_description> a #GdaBatch object
+<parameter name="wrapper">
+<parameter_description> a #GdaThreadWrapper object
 </parameter_description>
 </parameter>
-<parameter name="out_params">
-<parameter_description> a place to store a new #GdaSet object, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="id">
+<parameter_description> the ID of a job as returned by gda_thread_wrapper_execute() or gda_thread_wrapper_execute_void()
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred.
+<return> %TRUE if the job has been cancelled, or %FALSE in any other case.
+
 </return>
 </function>
 
@@ -10780,6 +14850,28 @@ Creates a new #GdaSqlSelectFrom structure and sets its parent to @parent.
 </return>
 </function>
 
+<function name="gda_tree_node_get_child_name">
+<description>
+Get the #GdaTreeNode child of @node which has the #GDA_ATTRIBUTE_NAME set to @name
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="node">
+<parameter_description> a #GdaTreeNode object
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> requested node's name
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GdaTreeNode, or %NULL if not found
+
+</return>
+</function>
+
 <function name="gda_connection_begin_transaction">
 <description>
 Starts a transaction on the data source, identified by the
@@ -10801,7 +14893,7 @@ gda_connection_supports_feature() function.
 </parameter_description>
 </parameter>
 <parameter name="level">
-<parameter_description>
+<parameter_description> the requested transaction level (%GDA_TRANSACTION_ISOLATION_UNKNOWN if not specified)
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -10835,12 +14927,13 @@ Creates a new #GdaSqlField structure, using @parent as its parent part.
 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&apos;s last row, then it can&apos;t be moved forward
+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; nore also that the &quot;current-row&quot; property
 is set to -1 (which means that gda_data_model_iter_is_valid() would return FALSE)
 
 If any other error occurred then the returned value is FALSE, but the &quot;current-row&quot;
-property is set to the new current row (one row more than it was before the call).
+property is set to the new current row (one row more than it was before the call). In this case
+each #GdaHolder composing @iter for which an error occurred will be invalid (see gda_holder_is_valid()).
 
 
 </description>
@@ -10875,7 +14968,7 @@ Copy constructor
 Sets the number of columns for rows inserted in this model. 
 @cols must be greated than or equal to 0.
 
-Also clears @model&apos;s contents.
+Also clears @model's contents.
 
 </description>
 <parameters>
@@ -10893,7 +14986,7 @@ Also clears @model&apos;s contents.
 
 <function name="gda_meta_store_schema_get_structure">
 <description>
-Creates a new #GdaMetaStruct object representing @store&apos;s interal database structure.
+Creates a new #GdaMetaStruct object representing @store's internal database structure.
 
 
 </description>
@@ -10917,22 +15010,22 @@ Informs @model that it should allow modifications to the data in some columns an
 using @mod_stmt to propagate those modifications into the database.
 
 If @mod_stmt is:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;an UPDATE statement, then all the rows in @model will be modifyable&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a DELETE statement, then it will be possible to delete rows in @model&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;in INSERT statement, then it will be possible to add some rows to @model&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;any other statement, then this method will return an error&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;an UPDATE statement, then all the rows in @model will be modifyable&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.
 
 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&apos;t be checked but may result
+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 &amp;lt;emphasis&amp;gt;WILL&amp;lt;/emphasis&amp;gt; be modified to use the row selection condition specified through one of
+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()
@@ -10963,7 +15056,6 @@ the WHERE part of @mod_stmt will be used as if one of these functions had been c
 <description>
 Execute a SQL SELECT command over an opened connection.
 
-Return: a new #GdaDataModel if succesfull, NULL otherwise
 
 </description>
 <parameters>
@@ -10972,7 +15064,7 @@ Return: a new #GdaDataModel if succesfull, NULL otherwise
 </parameter_description>
 </parameter>
 <parameter name="sql">
-<parameter_description> a query statament must begin with &quot;SELECT&quot;
+<parameter_description> a query statement must begin with &quot;SELECT&quot;
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -10980,209 +15072,182 @@ Return: a new #GdaDataModel if succesfull, NULL otherwise
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new #GdaDataModel if successful, NULL otherwise
+</return>
 </function>
 
-<function name="gda_alphanum_to_text">
+<function name="gda_sql_statement_new">
 <description>
-Does the opposite of gda_text_to_alphanum(), in the same string 
+Use this function to create a #GdaSqlStatement of the specified @type type.
 
 
 </description>
 <parameters>
-<parameter name="text">
-<parameter_description>
+<parameter name="type">
+<parameter_description> type of statement to create
 </parameter_description>
 </parameter>
 </parameters>
-<return> @text if conversion succedded or %NULL if an error occurred
+<return> a new #GdaSqlStatement
 </return>
 </function>
 
-<function name="GdaMetaStore">
+<function name="gda_alphanum_to_text">
 <description>
-This signal is emitted when the contents of a table should be updated (data updated or inserted; 
-deleting data is done automatically).
+Does the opposite of gda_text_to_alphanum(), in the same string 
 
 
 </description>
 <parameters>
-<parameter name="store">
-<parameter_description> the #GdaMetaStore instance that emitted the signal
-</parameter_description>
-</parameter>
-<parameter name="suggest">
-<parameter_description> the suggested update, as a #GdaMetaContext structure
+<parameter name="text">
+<parameter_description> a string
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GError error structure if there was an error when processing the
-signal, or %NULL if signal propagation should continue
+<return> @text if conversion succeeded or %NULL if an error occurred
 </return>
 </function>
 
-<function name="gda_statement_to_sql_extended">
+<function name="gda_blob_to_string">
 <description>
-Renders @stmt as an SQL statement, with some control on how it is rendered.
-
-If @cnc is not %NULL, then the rendered SQL will better be suited to be used by @cnc (in particular
-it may include some SQL tweaks and/or proprietary extensions specific to the database engine used by @cnc).
+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 &quot;\\&quot;.
 
 
 </description>
 <parameters>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object
-</parameter_description>
-</parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="params">
-<parameter_description> parameters contained in a single #GdaSet object
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> a set of flags to control the rendering
-</parameter_description>
-</parameter>
-<parameter name="params_used">
-<parameter_description> a place to store the list of actual #GdaHolder objects in @params used to do the rendering, or %NULL
+<parameter name="blob">
+<parameter_description> a correctly filled @GdaBlob structure
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="maxlen">
+<parameter_description> a maximum len used to truncate, or 0 for no maximum length
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string if no error occurred
+<return> a new string from @blob
 </return>
 </function>
 
-<function name="gda_holder_set_source_model">
+<function name="gda_data_model_import_get_errors">
 <description>
-Sets a limit on the possible values for the @holder holder: the value must be among the values
-contained in the @col column of the @model data model.
+Get the list of errors which @model has to report. The returned list is a list of
+#GError structures, and must not be modified
 
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
-</parameter_description>
-</parameter>
 <parameter name="model">
-<parameter_description> a #GdaDataModel object or NULL
-</parameter_description>
-</parameter>
-<parameter name="col">
-<parameter_description> the reference column in @model
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> location to store error, or %NULL
+<parameter_description> a #GdaDataModelImport object
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> the list of errors (which must not be modified), or %NULL
 </return>
 </function>
 
-<function name="gda_data_model_thaw">
+<function name="gda_data_select_set_modification_statement_sql">
 <description>
-Re-enables notifications of changes on the given data model.
+Offers the same feature as gda_data_select_set_modification_statement() but using an SQL statement
+
 
 </description>
 <parameters>
 <parameter name="model">
-<parameter_description> a #GdaDataModel object.
+<parameter_description> a #GdaDataSelect data model
+</parameter_description>
+</parameter>
+<parameter name="sql">
+<parameter_description> an SQL text
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> TRUE if no error occurred.
+</return>
 </function>
 
-<function name="gda_server_operation_get_node_info">
+<function name="gda_connection_delete_savepoint">
 <description>
-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
+Delete the SAVEPOINT named @name when not used anymore.
 
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object
 </parameter_description>
 </parameter>
-<parameter name="path_format">
-<parameter_description> a complete path to a node (starting with &quot;/&quot;)
+<parameter name="name">
+<parameter_description> name of the savepoint to delete
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdaServerOperationNode structure, or %NULL if the node was not found
+<return> TRUE if no error occurred
 </return>
 </function>
 
-<function name="gda_data_select_set_modification_statement_sql">
+<function name="gda_data_proxy_get_proxied_model">
 <description>
-Offers the same feature as gda_data_select_set_modification_statement() but using an SQL statement
+Fetch the #GdaDataModel which @proxy does proxy
 
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataSelect data model
-</parameter_description>
-</parameter>
-<parameter name="sql">
-<parameter_description> an SQL text
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred.
+<return> the proxied data model
 </return>
 </function>
 
-<function name="gda_server_operation_del_node_from_sequence">
+<function name="gda_sql_statement_insert_take_1_values_list">
 <description>
+Sets a list of list of values to be inserted by @stmt. @list's 
+ownership is transferred to
+ stmt (which means @stmt is then responsible for freeing it when no longer needed).
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
 </parameter_description>
 </parameter>
-<parameter name="item_path">
-<parameter_description> the path to the sequence&apos;s item to remove (like &quot;/SEQ_NAME/5&quot; for instance)
+<parameter name="list">
+<parameter_description> a list of #GSQliet of #GdaSqlExpr pointers
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the specified node has been removed from the sequence
-</return>
+<return></return>
 </function>
 
-<function name="gda_connection_delete_savepoint">
+<function name="gda_data_proxy_set_ordering_column">
 <description>
-Delete the SAVEPOINT named @name when not used anymore.
+Orders by the @col column
 
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
 </parameter_description>
 </parameter>
-<parameter name="name">
-<parameter_description> name of the savepoint to delete
+<parameter name="col">
+<parameter_description> the column number to order from
 </parameter_description>
 </parameter>
 <parameter name="error">
-<parameter_description> a place to store errors or %NULL
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -11204,7 +15269,7 @@ Creates a data handler for numerical values
 
 <function name="gda_pstmt_copy_contents">
 <description>
-Copies @src&apos;s data to @dest 
+Copies @src's data to @dest 
 
 </description>
 <parameters>
@@ -11220,24 +15285,36 @@ Copies @src&apos;s data to @dest
 <return></return>
 </function>
 
-<function name="gda_quark_list_find">
+<function name="gda_sql_builder_add_field_id">
 <description>
-Searches for the value identified by @name in the given #GdaQuarkList.
+Defines an expression representing a field in @builder,
+which may be reused to build other parts of a statement,
+for instance as a parameter to gda_sql_builder_add_cond() or
+gda_sql_builder_add_field_value_id().
 
+Calling this with a %NULL @table_name is equivalent to calling gda_sql_builder_add_id().
+
+For SELECT queries, see gda_sql_builder_select_add_field().
+
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="qlist">
-<parameter_description> a #GdaQuarkList.
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="name">
-<parameter_description> the name of the value to search for.
+<parameter name="field_name">
+<parameter_description> a field name
+</parameter_description>
+</parameter>
+<parameter name="table_name">
+<parameter_description> a table name, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> the value associated with the given key if found, or %NULL
-if not found.
+<return> the ID of the new expression, or %0 if there was an error
+
 </return>
 </function>
 
@@ -11259,6 +15336,22 @@ Sets the name of @column to @name.
 <return></return>
 </function>
 
+<function name="gda_sql_select_field_copy">
+<description>
+Creates a new #GdaSqlSelectField structure initiated with the values stored in @field.
+
+
+</description>
+<parameters>
+<parameter name="field">
+<parameter_description> a #GdaSqlSelectField structure to be copied
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdaSqlSelectField structure.
+</return>
+</function>
+
 <function name="gda_data_proxy_row_is_inserted">
 <description>
 Tells if the row number @proxy_row is a row which has been inserted in @proxy
@@ -11282,13 +15375,10 @@ Tells if the row number @proxy_row is a row which has been inserted in @proxy
 
 <function name="gda_delete_row_from_table">
 <description>
-This is just a convenient function to delete the row fitting the given condition
-from the given table.
+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.
 
- condition must be a valid GValue and must correspond with the GType of the column to use
-in the WHERE clause.
-
-The SQL command is like: DELETE FROM table_name WHERE contition_column_name = condition
+The equivalent SQL command is: DELETE FROM &lt;table&gt; WHERE &lt;condition_column_name&gt; = &lt;condition_value&gt;.
 
 
 </description>
@@ -11297,16 +15387,16 @@ The SQL command is like: DELETE FROM table_name WHERE contition_column_name = co
 <parameter_description> an opened connection
 </parameter_description>
 </parameter>
-<parameter name="table_name">
-<parameter_description>
+<parameter name="table">
+<parameter_description> the table's name with the row's values to be updated
 </parameter_description>
 </parameter>
 <parameter name="condition_column_name">
 <parameter_description> the name of the column to used in the WHERE condition clause
 </parameter_description>
 </parameter>
-<parameter name="condition">
-<parameter_description> a GValue to used to find the row to be deleted 
+<parameter name="condition_value">
+<parameter_description> the @condition_column_type's GType
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -11314,13 +15404,13 @@ The SQL command is like: DELETE FROM table_name WHERE contition_column_name = co
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred, and FALSE and set error otherwise
+<return> TRUE if no error occurred
 </return>
 </function>
 
 <function name="gda_vconnection_hub_remove">
 <description>
-Remove all the tables in @hub representing @cnc&apos;s tables.
+Remove all the tables in @hub representing @cnc's tables.
 
 
 </description>
@@ -11342,13 +15432,49 @@ Remove all the tables in @hub representing @cnc&apos;s tables.
 </return>
 </function>
 
-<function name="gda_data_select_get_type">
+<function name="gda_value_new_blob_from_file">
 <description>
+Makes a new #GValue of type #GDA_TYPE_BLOB interfacing with the contents of the file
+named @filename
+
 
 </description>
 <parameters>
+<parameter name="filename">
+<parameter_description> name of the file to manipulate
+</parameter_description>
+</parameter>
 </parameters>
-<return> the #GType of GdaDataSelect.
+<return> the newly created #GValue.
+
+Free-function: gda_value_free
+</return>
+</function>
+
+<function name="gda_statement_to_sql_real">
+<description>
+Renders @stmt to its SQL representation, using @context to specify how each part of @stmt must
+be rendered. This function is mainly used by database provider's implementations which require
+to specialize some aspects of SQL rendering to be adapted to the database,'s own SQL dialect
+(for example SQLite rewrites the 'FALSE' and 'TRUE' literals as '0' and 'NOT 0').
+
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
+</parameter_description>
+</parameter>
+<parameter name="context">
+<parameter_description> a #GdaSqlRenderingContext context
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new string, or %NULL if an error occurred
 </return>
 </function>
 
@@ -11356,6 +15482,9 @@ Remove all the tables in @hub representing @cnc&apos;s tables.
 <description>
 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.
+
 
 </description>
 <parameters>
@@ -11382,48 +15511,56 @@ Executes @stmt.
 
 As @stmt can, by desing (and if not abused), contain only one SQL statement, the
 return object will either be:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a #GdaDataSelect object (which is also a #GdaDataModel) if @stmt is a SELECT statement 
+&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&apos;s documentation for more information.&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a #GdaSet for any other SQL statement which correctly executed. In this case
+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:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a (gint) #GdaHolder named &quot;IMPACTED_ROWS&quot;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;a (GObject) #GdaHolder named &quot;EVENT&quot; which contains a #GdaConnectionEvent&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;a (gint) #GdaHolder named &quot;IMPACTED_ROWS&quot;&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;a (GObject) #GdaHolder named &quot;EVENT&quot; 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 &quot;+&amp;lt;column number&amp;gt;&quot;
-starting at column 0 which contain the actual inserted values. For example if a table is composed of an &apos;id&apos; column
-which is auto incremented and a &apos;name&apos; column then the execution of a &quot;INSERT INTO mytable (name) VALUES (&apos;joe&apos;)&quot;
+provider used by @cnc supports it) a new #GdaSet object composed of value holders named &quot;+&lt;column number&gt;&quot;
+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 &quot;INSERT INTO mytable (name) VALUES ('joe')&quot;
 query will return a #GdaSet with two holders:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;one with the &apos;+0&apos; ID which may for example contain 1 (note that its &quot;name&quot; property should be &quot;id&quot;)&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;one with the &apos;+1&apos; ID which will contain &apos;joe&apos; (note that its &quot;name&quot; property should be &quot;name&quot;)&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;one with the '+0' ID which may for example contain 1 (note that its &quot;name&quot; property should be &quot;id&quot;)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;one with the '+1' ID which will contain 'joe' (note that its &quot;name&quot; property should be &quot;name&quot;)&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
-Note1: If @stmt is a SELECT statement which has some parameters and  if @params is %NULL, then the statement can&apos;t
+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&apos;t be executed and this method will return %NULL, unless the
+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&apos; parameters change
-then the resulting data model will re-run itself, see the GdaDataSelect&apos;s 
-&amp;lt;link linkend=&quot;GdaDataSelect--auto-reset&quot;&amp;gt;auto-reset&amp;lt;/link&amp;gt; property for more information.
+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=&quot;GdaDataSelect--auto-reset&quot;&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
 
-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=&quot;gen:blobs&quot;&gt;Binary large objects (BLOBs)&lt;/link&gt; for more information.
 
-Also see the &amp;lt;link linkend=&quot;limitations&quot;&amp;gt;provider&apos;s limitations&amp;lt;/link&amp;gt;, and the
-&amp;lt;link linkend=&quot;data-select&quot;&amp;gt;Advanced GdaDataSelect usage&amp;lt;/link&amp;gt; sections.
+Also see the &lt;link linkend=&quot;limitations&quot;&gt;provider's limitations&lt;/link&gt;, and the
+&lt;link linkend=&quot;data-select&quot;&gt;Advanced GdaDataSelect usage&lt;/link&gt; sections.
 
 
 </description>
@@ -11473,6 +15610,26 @@ Gets the user name used to open this connection.
 </return>
 </function>
 
+<function name="gda_data_model_get_column_index">
+<description>
+Get the index of the first column named @name in @model.
+
+
+</description>
+<parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> a column name
+</parameter_description>
+</parameter>
+</parameters>
+<return> the column index, or -1 if no column named @name was found
+</return>
+</function>
+
 <function name="gda_transaction_status_new">
 <description>
 Creates a new #GdaTransactionStatus object, which allows a fine-tune and
@@ -11490,21 +15647,18 @@ full control of transactions to be used with providers.
 </return>
 </function>
 
-<function name="gda_sql_case_serialize">
+<function name="gda_data_model_reset">
 <description>
-Creates a new string representing a CASE clausure. You need to free the returned string
-using g_free();
-
+Emits the 'reset' and 'changed' signal on @model.
 
 </description>
 <parameters>
-<parameter name="sc">
-<parameter_description> a #GdaSqlCase structure
+<parameter name="model">
+<parameter_description> a #GdaDataModel object.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string with the description of the CASE clausure or &quot;null&quot; in case @sc is invalid.
-</return>
+<return></return>
 </function>
 
 <function name="gda_blob_free">
@@ -11521,22 +15675,20 @@ Deallocates all memory associated to the given #GdaBlob.
 <return></return>
 </function>
 
-<function name="gda_holder_set_not_null">
+<function name="gda_sql_select_from_serialize">
 <description>
-Sets if the holder can have a NULL value. If @not_null is TRUE, then that won&apos;t be allowed
+Creates a new string description of the FROM clause used in a SELECT statement.
+
 
 </description>
 <parameters>
-<parameter name="holder">
-<parameter_description> a #GdaHolder object
-</parameter_description>
-</parameter>
-<parameter name="not_null">
-<parameter_description>
+<parameter name="from">
+<parameter_description> a #GdaSqlSelectFrom structure
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new string with the description of the FROM or &quot;null&quot; in case @from is invalid.
+</return>
 </function>
 
 <function name="gda_holder_new">
@@ -11555,62 +15707,25 @@ Creates a new holder of type @type
 </return>
 </function>
 
-<function name="gda_server_operation_set_value_at">
+<function name="gda_tree_node_get_child_index">
 <description>
-Set the value for the node at the path formed using @path_format and @... 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 &quot;/TABLE_OPTIONS_P/TABLE_ENGINE&quot; for a PostgreSQL connection), will &amp;lt;emphasis&amp;gt;not&amp;lt;/emphasis&amp;gt; generate
-any error; this allows one to set all the possible parameters and use the same code for several providers.
-
-Here are the possible formats of @path_format:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;If the path corresponds to a #GdaHolder, then the parameter is set to @value&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;If the path corresponds to a sequence item like for example &quot;/SEQUENCE_NAME/5/NAME&quot; for
-the &quot;NAME&quot; value of the 6th item of the &quot;SEQUENCE_NAME&quot; sequence then:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;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&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;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&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
-&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;If the path corresponds to a #GdaDataModel, like for example &quot;/ARRAY/@@COLUMN/5&quot; for the value at the
-6th row of the &quot;COLUMN&quot; column of the &quot;ARRAY&quot; data model, then:
-&amp;lt;itemizedlist&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if the data model already contains 6 or more rows, then the value is just set&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;listitem&amp;gt;&amp;lt;para&amp;gt;if the data model has less than 6 rows, then rows are added up to the 6th one before setting
-the value&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
-&amp;lt;/para&amp;gt;&amp;lt;/listitem&amp;gt;
-&amp;lt;/itemizedlist&amp;gt;
+Get the #GdaTreeNode child of @node at position @index (starting at 0).
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> a string
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors or %NULL
-</parameter_description>
-</parameter>
-<parameter name="path_format">
-<parameter_description> a complete path to a node (starting with &quot;/&quot;)
+<parameter name="node">
+<parameter_description> a #GdaTreeNode object
 </parameter_description>
 </parameter>
-<parameter name="Varargs">
-<parameter_description> arguments to use with @path_format to make a complete path
+<parameter name="index">
+<parameter_description> a index
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred
+<return> the #GdaTreeNode, or %NULL if not found
+
 </return>
 </function>
 
@@ -11657,7 +15772,7 @@ The reference to @row is stolen.
 
 <function name="gda_attributes_manager_get">
 <description>
-Retreives the value of an attribute previously set using gda_attributes_manager_set().
+Retrieves the value of an attribute previously set using gda_attributes_manager_set().
 
 
 </description>
@@ -11667,15 +15782,15 @@ Retreives the value of an attribute previously set using gda_attributes_manager_
 </parameter_description>
 </parameter>
 <parameter name="ptr">
-<parameter_description> a pointer to the ressources to which the attribute will apply
+<parameter_description> a pointer to the resources to which the attribute will apply
 </parameter_description>
 </parameter>
 <parameter name="att_name">
-<parameter_description> an attribute&apos;s name, as a *static* string
+<parameter_description> an attribute's name, as a *static* string
 </parameter_description>
 </parameter>
 </parameters>
-<return> the attribute&apos;s value, or %NULL if the attribute is not set.
+<return> the attribute's value, or %NULL if the attribute is not set.
 </return>
 </function>
 
@@ -11733,52 +15848,51 @@ Get the complete path to the parent of the node defined by @path
 </return>
 </function>
 
-<function name="gda_xa_transaction_unregister_connection">
+<function name="gda_server_operation_get_op_type">
 <description>
-Unregisters @cnc to be used by @xa_trans to create a distributed transaction. This is
-the opposite of gda_xa_transaction_register_connection().
+Get the type of operation @op is for
+
 
 </description>
 <parameters>
-<parameter name="xa_trans">
-<parameter_description> a #GdaXaTransaction object
-</parameter_description>
-</parameter>
-<parameter name="cnc">
-<parameter_description> the connection to add to @xa_trans
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a #GdaServerOperationType enum
+</return>
 </function>
 
-<function name="gda_server_operation_get_sequence_name">
+<function name="gda_data_model_iter_get_value_at">
 <description>
+Get the value stored at the column @col in @iter. The returned value must not be modified.
+
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
+<parameter name="iter">
+<parameter_description> a #GdaDataModelIter object
 </parameter_description>
 </parameter>
-<parameter name="path">
-<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
+<parameter name="col">
+<parameter_description> the requested column
 </parameter_description>
 </parameter>
 </parameters>
-<return> the name of the sequence at @path
+<return> the #GValue, or %NULL if the value could not be fetched
 </return>
 </function>
 
 <function name="gda_connection_open_from_dsn">
 <description>
 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&apos;t want to define
+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: &quot;[&amp;lt;username&amp;gt;[:&amp;lt;password&amp;gt;] ]&amp;lt;DSN&amp;gt;&quot; 
-(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; 
+The @dsn string must have the following format: &quot;[&lt;username&gt;[:&lt;password&gt;] ]&lt;DSN&gt;&quot; 
+(if &lt;username&gt; and/or &lt;password&gt; are provided, and @auth_string is %NULL, then these username
+and passwords will be used). Note that if provided, &lt;username&gt; and &lt;password&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
@@ -11787,10 +15901,13 @@ like &quot;USERNAME=...;PASSWORD=...&quot; where the ... are replaced by actual
 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 &amp;lt;parameter&amp;gt;auth_params&amp;lt;/parameter&amp;gt; member of the #GdaProviderInfo structure for each installed
+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 &quot;gda-sql-4.0 -L&quot; 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).
+
 
 </description>
 <parameters>
@@ -11822,6 +15939,8 @@ 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.
+
 
 </description>
 <parameters>
@@ -11846,31 +15965,40 @@ if @schema is %NULL then any schema will be used (if @schema is %NULL then catal
 </return>
 </function>
 
-<function name="gda_binary_to_string">
+<function name="gda_connection_get_meta_store_data_v">
 <description>
-Converts all the non printable characters of bin-&amp;gt;data into the \xxx representation
-where xxx is the octal representation of the byte, and the &apos;\&apos; (backslash) character
-is converted to &quot;\\&quot;.
+see #gda_connection_get_meta_store_data
 
 
 </description>
 <parameters>
-<parameter name="bin">
-<parameter_description> a correctly filled @GdaBinary structure
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object.
 </parameter_description>
 </parameter>
-<parameter name="maxlen">
-<parameter_description> a maximum len used to truncate, or 0 for no maximum length
+<parameter name="meta_type">
+<parameter_description> describes which data to get.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="filters">
+<parameter_description> a #GList of #GdaHolder objects
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new string from @bin
+<return> a #GdaDataModel containing the data required. The caller is responsible
+for freeing the returned model using g_object_unref().
 </return>
 </function>
 
 <function name="gda_config_define_dsn">
 <description>
-Add or update a DSN from the definition in @info
+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).
 
 
 </description>
@@ -11902,23 +16030,50 @@ list.
 </parameter_description>
 </parameter>
 </parameters>
-<return> 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.
+<return> 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.
+</return>
+</function>
+
+<function name="gda_utility_data_model_find_column_description">
+<description>
+Finds the description of a field into Metadata from a #GdaDataModel.
+
+
+</description>
+<parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataSelect data model
+</parameter_description>
+</parameter>
+<parameter name="field_name">
+<parameter_description> field name
+</parameter_description>
+</parameter>
+</parameters>
+<return> The field's description, or NULL if description is not set
 </return>
 </function>
 
 <function name="gda_connection_get_meta_store_data">
 <description>
-Retreives data stored in @cnc&apos;s associated #GdaMetaStore object. This method is usefull
+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&apos;s up to the caller to make sure the information contained within @cnc&apos;s associated #GdaMetaStore
-is up to date using gda_connection_update_meta_store() (it can become outdated if the database&apos;s schema
+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&apos;s attributes, or about the @meta_type and @... filter arguments,
-see &amp;lt;link linkend=&quot;GdaConnectionMetaTypeHead&quot;&amp;gt;this description&amp;lt;/link&amp;gt;.
+For more information about the returned data model's attributes, or about the @meta_type and ... filter arguments,
+see &lt;link linkend=&quot;GdaConnectionMetaTypeHead&quot;&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=&quot;information_schema:sql_identifiers&quot;&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.
 
 
 </description>
@@ -11941,7 +16096,7 @@ see &amp;lt;link linkend=&quot;GdaConnectionMetaTypeHead&quot;&amp;gt;this descr
 </parameter>
 <parameter name="Varargs">
 <parameter_description> a list of (filter name (gchar *), filter value (GValue*)) pairs specifying
-the filter to apply to the returned data model&apos;s contents (there must be @nb_filters pairs)
+the filter to apply to the returned data model's contents (there must be @nb_filters pairs)
 </parameter_description>
 </parameter>
 </parameters>
@@ -11950,45 +16105,25 @@ for freeing the returned model using g_object_unref().
 </return>
 </function>
 
-<function name="gda_server_operation_save_data_to_xml">
-<description>
-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.
-
-
-</description>
-<parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> a new #xmlNodePtr structure, or %NULL
-</return>
-</function>
-
 <function name="gda_server_provider_init_schema_model">
 <description>
 Sets the column attributes of @model for the requested schema
 
+Deprecated: 4.2: This was a leftover from the pre 4.0 area
 
 </description>
 <parameters>
 <parameter name="model">
-<parameter_description>
+<parameter_description> a #GdaDataModel
 </parameter_description>
 </parameter>
 <parameter name="schema">
-<parameter_description>
+<parameter_description> a #GdaConnectionSchema
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if there was no error
+<return> %TRUE if there was no error
+
 </return>
 </function>
 
@@ -11998,8 +16133,8 @@ Same functionality as gda_holder_set_value() except that it uses a string repres
 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 &quot;NULL&quot; string, then @holder&apos;s value is set to %NULL.
-Note2: if @holder can&apos;t accept the @value value, then this method returns FALSE, and @holder will be left
+Note1: if @value is %NULL or is the &quot;NULL&quot; 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.
 
 
@@ -12026,18 +16161,46 @@ in an invalid state.
 </return>
 </function>
 
-<function name="gda_data_model_array_clear">
+<function name="gda_holder_new_inline">
 <description>
-Frees all the rows in @model.
+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.
+
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> the model to clear.
+<parameter name="type">
+<parameter_description> a valid GLib type
+</parameter_description>
+</parameter>
+<parameter name="id">
+<parameter_description> the id of the holder to create, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> value to set
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a new #GdaHolder object
+</return>
+</function>
+
+<function name="gda_transaction_status_find_current">
+<description>
+Find a pointer to the &quot;current&quot; _unnamed_ transaction, which is the last
+transaction if there are several nested transactions
+
+
+</description>
+<parameters>
+</parameters>
+<return>
+</return>
 </function>
 
 <function name="gda_sql_select_order_free">
@@ -12056,12 +16219,18 @@ Frees a #GdaSqlSelectOrder structure and its members.
 
 <function name="gda_data_model_get_typed_value_at">
 <description>
+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 FALSE will be returned and @error will be assigned a
+#GError from the #GDA_DATA_MODEL_ERROR domain.
+
 
 </description>
 <parameters>
@@ -12097,7 +16266,7 @@ position, or %NULL on error (out-of-bound position, wrong data type, etc).
 
 <function name="gda_sql_function_copy">
 <description>
-Creates a new #GdaSqlFunction structure initated with the values stored in @function.
+Creates a new #GdaSqlFunction structure initiated with the values stored in @function.
 
 
 </description>
@@ -12113,7 +16282,7 @@ Creates a new #GdaSqlFunction structure initated with the values stored in @func
 
 <function name="gda_set_copy">
 <description>
-Creates a new #GdaSet object, opy of @set
+Creates a new #GdaSet object, copy of @set
 
 
 </description>
@@ -12129,7 +16298,7 @@ Creates a new #GdaSet object, opy of @set
 
 <function name="gda_server_provider_get_data_handler_default">
 <description>
-Provides the implementation when the default Libgda&apos;s data handlers must be used
+Provides the implementation when the default Libgda's data handlers must be used
 
 
 </description>
@@ -12142,7 +16311,7 @@ Provides the implementation when the default Libgda&apos;s data handlers must be
 <parameter_description> a #GdaConnection object, or %NULL
 </parameter_description>
 </parameter>
-<parameter name="for_type">
+<parameter name="type">
 <parameter_description> a #GType
 </parameter_description>
 </parameter>
@@ -12155,24 +16324,6 @@ Provides the implementation when the default Libgda&apos;s data handlers must be
 </return>
 </function>
 
-<function name="GdaSet">
-<description>
-Gets emitted when gda_set_is_valid() is called, use
-this signal to control which combination of values @set&apos;s holder can have (for example to implement some business rules)
-
-
-</description>
-<parameters>
-<parameter name="set">
-<parameter_description> the object which received the signal
-</parameter_description>
-</parameter>
-</parameters>
-<return> NULL if @set&apos;s contents has been validated, or a #GError
-otherwise.
-</return>
-</function>
-
 <function name="gda_connection_get_options">
 <description>
 Gets the #GdaConnectionOptions used to open this connection.
@@ -12215,7 +16366,7 @@ Convenience function to get the type of a node.
 
 <function name="gda_column_set_default_value">
 <description>
-Sets @column&apos;s default #GValue.
+Sets @column's default #GValue.
 
 </description>
 <parameters>
@@ -12236,15 +16387,15 @@ Sets @column&apos;s default #GValue.
 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 &amp;lt;![CDATA[&quot;CREATE TABLE mytable (part1 int NOT NULL, part2 string NOT NULL, 
-name string, PRIMARY KEY (part1, part2))&quot;]]&amp;gt;, and if @pmodel corresponds to the execution of the 
-&amp;lt;![CDATA[&quot;SELECT name, part1, part2 FROM mytable&quot;]]&amp;gt;, then the sensible value for @sql_where would be
-&amp;lt;![CDATA[&quot;part1 = ##-1::int AND part2 = ##-2::string&quot;]]&amp;gt; because the values of the &apos;part1&apos; field are located
-in @pmodel&apos;s column number 1 and the values of the &apos;part2&apos; field are located
-in @pmodel&apos;s column number 2 and the primary key is composed of (part1, part2).
+For example for a table created as &lt;![CDATA[&quot;CREATE TABLE mytable (part1 int NOT NULL, part2 string NOT NULL, 
+name string, PRIMARY KEY (part1, part2))&quot;]]&gt;, and if @pmodel corresponds to the execution of the 
+&lt;![CDATA[&quot;SELECT name, part1, part2 FROM mytable&quot;]]&gt;, then the sensible value for @sql_where would be
+&lt;![CDATA[&quot;part1 = ##-1::int AND part2 = ##-2::string&quot;]]&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 &amp;lt;![CDATA[&quot;##-1::int&quot;]]&amp;gt; for example), see the
-&amp;lt;link linkend=&quot;GdaSqlParser.description&quot;&amp;gt;GdaSqlParser&amp;lt;/link&amp;gt; documentation, and 
+For more information about the syntax of the parameters (named &lt;![CDATA[&quot;##-1::int&quot;]]&gt; for example), see the
+&lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser&lt;/link&gt; documentation, and 
 gda_data_select_set_modification_statement().
 
 
@@ -12255,7 +16406,7 @@ gda_data_select_set_modification_statement().
 </parameter_description>
 </parameter>
 <parameter name="sql_where">
-<parameter_description> an SQL condition (withouth the WHERE keyword)
+<parameter_description> an SQL condition (without the WHERE keyword)
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -12295,7 +16446,7 @@ gda_server_provider_create_operation(), or gda_prepare_create_database().
 <function name="gda_connection_internal_set_provider_data">
 <description>
 Note: calling this function more than once will not make it call @destroy_func on any previously
-set opaque @data, you&apos;ll have to do it yourself.
+set opaque @data, you'll have to do it yourself.
 
 </description>
 <parameters>
@@ -12332,32 +16483,25 @@ This function can be used even if g_thread_init() has not yet been called, and,
 <return></return>
 </function>
 
-<function name="gda_connection_get_meta_store_data_v">
+<function name="gda_compute_select_statement_from_update">
 <description>
-see #gda_connection_get_meta_store_data
+Computes a SELECT statement which selects all the rows the @update_stmt would update. Beware
+however that this GdaSqlStatement does not select anything (ie it would be rendered as &quot;SELECT FROM ... WHERE ...&quot;)
+and before being usable, one needs to add some fields to actually select.
 
 
 </description>
 <parameters>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object.
-</parameter_description>
-</parameter>
-<parameter name="meta_type">
-<parameter_description> describes which data to get.
+<parameter name="update_stmt">
+<parameter_description> an UPDATE statement
 </parameter_description>
 </parameter>
 <parameter name="error">
 <parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
-<parameter name="filters">
-<parameter_description> a GList of GdaHolders
-</parameter_description>
-</parameter>
 </parameters>
-<return> a #GdaDataModel containing the data required. The caller is responsible
-for freeing the returned model using g_object_unref().
+<return> a new #GdaStatement if no error occurred, or %NULL otherwise
 </return>
 </function>
 
@@ -12409,9 +16553,37 @@ of @copy into @value, which must already be allocated.
 </return>
 </function>
 
-<function name="gda_log_enable">
+<function name="gda_set_replace_source_model">
+<description>
+Replaces @source-&gt;data_model with @model, which must have the same
+characteristics as @source-&gt;data_model (same column types)
+
+Also for each #GdaHolder for which @source-&gt;data_model is a source model,
+this method calls gda_holder_set_source_model() with @model to replace
+the source by the new model
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="set">
+<parameter_description> a #GdaSet object
+</parameter_description>
+</parameter>
+<parameter name="source">
+<parameter_description> a pointer to a #GdaSetSource in @set
+</parameter_description>
+</parameter>
+<parameter name="model">
+<parameter_description> a #GdaDataModel
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_data_model_iter_move_prev_default">
 <description>
-Enables GDA logs.
 
 </description>
 <parameters>
@@ -12428,121 +16600,112 @@ Enables GDA logs.
 <return></return>
 </function>
 
-<function name="gda_data_model_import_from_string">
+<function name="gda_set_new_read_only">
 <description>
-Loads the data from @string into @model.
+Creates a new #GdaSet like gda_set_new(), but does not allow modifications to any of the #GdaHolder
+object in @holders. This function is used for Libgda's database providers' implementation.
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModel
-</parameter_description>
-</parameter>
-<parameter name="string">
-<parameter_description> the string to import data from
-</parameter_description>
-</parameter>
-<parameter name="cols_trans">
-<parameter_description> a hash table containing which columns of @model will be imported, or %NULL for all columns
-</parameter_description>
-</parameter>
-<parameter name="options">
-<parameter_description> list of options for the export
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="holders">
+<parameter_description> a list of #GdaHolder objects
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred.
+<return> a new #GdaSet object
+
 </return>
 </function>
 
-<function name="gda_statement_check_validity">
+<function name="gda_sql_builder_add_field_value_id">
 <description>
-If @cnc is not %NULL then checks that every object (table, field, function) used in @stmt 
-actually exists in @cnc&apos;s database
+Valid only for: INSERT, UPDATE, SELECT statements
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;For UPDATE: specifies that the field represented by @field_id will be set to the value identified
+by @value_id.&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;For SELECT: add a selected item to the statement, and if @value_id is not %0, then use it as an
+alias&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;For INSERT: if @field_id represents an SQL identifier (obtained using gda_sql_builder_add_id()): then if
+ value_id is not %0 then specifies that the field represented by @field_id will be set to the
+value identified by @value_id, otherwise just specifies a named field to be given a value.
+If @field_id represents a sub SELECT (obtained using gda_sql_builder_add_sub_select()), then
+this method call defines the sub SELECT from which values to insert are taken.&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
 
-If @cnc is %NULL, then cleans anything related to @cnc in @stmt.
-
-See gda_sql_statement_check_validity() for more information.
+See also gda_sql_builder_add_field_value() and gda_sql_builder_add_field_value_as_gvalue().
 
+Since: 4.2
 
 </description>
 <parameters>
-<parameter name="stmt">
-<parameter_description> a #GdaStatement object
+<parameter name="builder">
+<parameter_description> a #GdaSqlBuilder object
 </parameter_description>
 </parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object, or %NULL
+<parameter name="field_id">
+<parameter_description> the ID of the field's name or definition
 </parameter_description>
 </parameter>
-<parameter name="error">
-<parameter_description> a place to store errors, or %NULL
+<parameter name="value_id">
+<parameter_description> the ID of the value to set the field to, or %0
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if every object actually exists in @cnc&apos;s database
-</return>
+<return></return>
 </function>
 
-<function name="gda_value_free">
+<function name="gda_server_provider_get_name">
 <description>
-Deallocates all memory associated to a #GValue.
+Get the name (identifier) of the provider
+
 
 </description>
 <parameters>
-<parameter name="value">
-<parameter_description> the resource to free.
+<parameter name="provider">
+<parameter_description> a #GdaServerProvider object.
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a string containing the provider's name
+</return>
 </function>
 
-<function name="gda_column_get_allow_null">
+<function name="gda_value_free">
 <description>
-Gets the &apos;allow null&apos; flag of the given column.
-
+Deallocates all memory associated to a #GValue.
 
 </description>
 <parameters>
-<parameter name="column">
-<parameter_description> a #GdaColumn.
+<parameter name="value">
+<parameter_description> the resource to free.
 </parameter_description>
 </parameter>
 </parameters>
-<return> whether the given column allows null values or not (%TRUE or %FALSE).
-</return>
+<return></return>
 </function>
 
-<function name="gda_server_provider_get_server_version">
+<function name="gda_sql_select_join_type_to_string">
 <description>
-Get the version of the database to which the connection is opened.
+Creates a new string representing the join type.
 
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> a #GdaServerProvider object.
-</parameter_description>
-</parameter>
-<parameter name="cnc">
-<parameter_description> a #GdaConnection object
+<parameter name="type">
+<parameter_description> a #GdaSqlSelectJoinType structure to be copied
 </parameter_description>
 </parameter>
 </parameters>
-<return> a (read only) string, or %NULL if an error occurred
+<return> a string representing the Join type.
 </return>
 </function>
 
 <function name="gda_connection_event_get_description">
 <description>
-Get the description of the event. Note that is @event&apos;s type is GDA_CONNECTION_EVENT_COMMAND,
-the the dsecription is the SQL of the command.
+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.
 
 
 </description>
@@ -12552,7 +16715,7 @@ the the dsecription is the SQL of the command.
 </parameter_description>
 </parameter>
 </parameters>
-<return> @event&apos;s description.
+<return> @event's description.
 </return>
 </function>
 
@@ -12572,45 +16735,63 @@ Tells if @iter is a valid iterator (if it actually corresponds to a valid row in
 </return>
 </function>
 
-<function name="gda_data_model_import_get_errors">
+<function name="gda_data_proxy_set_sample_start">
 <description>
-Get the list of errors which @model has to report. The returned list is a list of
-#GError structures, and must not be modified
-
+Sets the number of the first row to be available in @proxy (in reference to the proxied data model)
 
 </description>
 <parameters>
-<parameter name="model">
-<parameter_description> a #GdaDataModelImport object
+<parameter name="proxy">
+<parameter_description> a #GdaDataProxy object
+</parameter_description>
+</parameter>
+<parameter name="sample_start">
+<parameter_description> the number of the first row to be displayed
 </parameter_description>
 </parameter>
 </parameters>
-<return> the list of errors (which must not be modified), or %NULL
-</return>
+<return></return>
 </function>
 
-<function name="gda_perform_drop_database">
+<function name="gda_connection_internal_change_transaction_state">
 <description>
-Destroys an existing database using the specifications in @op.  @op can be obtained using
-gda_server_provider_create_operation(), or gda_prepare_drop_database().
-
+Internal function to be called by database providers to force a transaction status
+change.
 
 </description>
 <parameters>
-<parameter name="provider">
-<parameter_description> the database provider to use, or %NULL if @op has been created using gda_prepare_drop_database()
+<parameter name="cnc">
+<parameter_description> a #GdaConnection
 </parameter_description>
 </parameter>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object obtained using gda_prepare_drop_database()
+<parameter name="newstate">
+<parameter_description> the new state
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_data_select_rerun">
+<description>
+Requests that @model be re-run to have an updated result. If an error occurs,
+then @model will not be changed.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataSelect data model
 </parameter_description>
 </parameter>
 <parameter name="error">
-<parameter_description> a place to store en error, or %NULL
+<parameter_description> a place to store errors, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if no error occurred and the database has been destroyed
+<return> %TRUE if no error occurred
+
 </return>
 </function>
 
@@ -12628,6 +16809,8 @@ Makes a new #GValue of type #GDA_TYPE_TIMESTAMP with value @val
 </parameter>
 </parameters>
 <return> the newly created #GValue.
+
+Free-function: gda_value_free
 </return>
 </function>
 
@@ -12651,31 +16834,56 @@ Get the value of the #GdaHolder which ID is @holder_id
 </return>
 </function>
 
-<function name="gda_config_get">
+<function name="gda_data_model_array_get_row">
 <description>
-Get a pointer to the global GdaConfig object
+Get a pointer to a row in @model
 
 
 </description>
 <parameters>
+<parameter name="model">
+<parameter_description> a #GdaDataModelArray object
+</parameter_description>
+</parameter>
+<parameter name="row">
+<parameter_description> row number (starting from 0)
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store errors, or %NULL
+</parameter_description>
+</parameter>
 </parameters>
-<return> a non %NULL pointer to a #GdaConfig
+<return> the #GdaRow, or %NULL if an error occurred
 </return>
 </function>
 
-<function name="gda_server_operation_get_op_type">
+<function name="gda_statement_is_useless">
 <description>
-Get the type of operation @op is for
+Tells if @stmt is composed only of spaces (that is it has no real SQL code), and is completely
+useless as such.
 
 
 </description>
 <parameters>
-<parameter name="op">
-<parameter_description> a #GdaServerOperation object
+<parameter name="stmt">
+<parameter_description> a #GdaStatement object
 </parameter_description>
 </parameter>
 </parameters>
-<return>
+<return> TRUE if executing @stmt does nothing
+</return>
+</function>
+
+<function name="gda_config_get">
+<description>
+Get a pointer to the global GdaConfig object
+
+
+</description>
+<parameters>
+</parameters>
+<return> a non %NULL pointer to a #GdaConfig
 </return>
 </function>
 
@@ -12683,9 +16891,11 @@ Get the type of operation @op is for
 <description>
 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 useable using only their short name (that is which do not need to be prefixed by 
+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.
+
 
 </description>
 <parameters>
@@ -12704,7 +16914,7 @@ the schema in which they are to be used).
 
 <function name="gda_parse_iso8601_time">
 <description>
-Extracts time parts from @value, and sets @timegda&apos;s contents
+Extracts time parts from @value, and sets @timegda's contents
 
 Accepted date format is &quot;HH:MM:SS[.ms][TZ]&quot; where TZ is +hour or -hour
 
@@ -12730,11 +16940,13 @@ 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).
+
 
 </description>
 <parameters>
 <parameter name="provider_name">
-<parameter_description>
+<parameter_description> a database provider
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -12746,6 +16958,79 @@ returned object.
 </return>
 </function>
 
+<function name="gda_server_provider_perform_operation_default">
+<description>
+Performs the operation described by @op, using the SQL from the rendering of the operation
+
+
+</description>
+<parameters>
+<parameter name="provider">
+<parameter_description> a #GdaServerProvider object
+</parameter_description>
+</parameter>
+<parameter name="cnc">
+<parameter_description> a #GdaConnection object which will be used to perform an action, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store an error, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if no error occurred
+</return>
+</function>
+
+<function name="gda_sql_statement_update_take_set_value">
+<description>
+Specifies that the field named @fname will be updated with the expression @expr.
+
+ fname and @expr's responsibility are transferred to
+ stmt (which means @stmt is then responsible for freeing them when no longer needed).
+
+</description>
+<parameters>
+<parameter name="stmt">
+<parameter_description> a #GdaSqlStatement pointer
+</parameter_description>
+</parameter>
+<parameter name="fname">
+<parameter_description> a field name, as a G_TYPE_STRING #GValue
+</parameter_description>
+</parameter>
+<parameter name="expr">
+<parameter_description> a #GdaSqlExpr pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gda_tree_add_manager">
+<description>
+Sets @manager as a top #GdaTreeManager object, which will be responsible for creating top level nodes in @tree.
+
+Since: 4.2
+
+</description>
+<parameters>
+<parameter name="tree">
+<parameter_description> a #GdaTree object
+</parameter_description>
+</parameter>
+<parameter name="manager">
+<parameter_description> a #GdaTreeManager object
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gda_statement_copy">
 <description>
 Copy constructor
@@ -12762,24 +17047,29 @@ Copy constructor
 </return>
 </function>
 
-<function name="gda_sql_function_take_name">
+<function name="gda_perform_drop_database">
 <description>
-Sets the function&apos;s arguments to point to @args, then sets the
-list&apos;s data elements&apos; parent to @function.
+Destroys an existing database using the specifications in @op.  @op can be obtained using
+gda_server_provider_create_operation(), or gda_prepare_drop_database().
 
 
 </description>
 <parameters>
-<parameter name="function">
-<parameter_description> a #GdaSqlFunction structure
+<parameter name="provider">
+<parameter_description> the database provider to use, or %NULL if @op has been created using gda_prepare_drop_database()
 </parameter_description>
 </parameter>
-<parameter name="args">
-<parameter_description> a #GSList to take from
+<parameter name="op">
+<parameter_description> a #GdaServerOperation object obtained using gda_prepare_drop_database()
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a place to store en error, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> TRUE if no error occurred and the database has been destroyed
+</return>
 </function>
 
 <function name="gda_data_model_export_to_string">
@@ -12826,7 +17116,7 @@ gda_data_model_export_to_file() documentation for more information about the @op
 
 <function name="gda_connection_event_set_gda_code">
 <description>
-Sets @event&apos;s gda code: that code is standardized by the libgda
+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.
 



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