[vala] libgda-4.0: update to 4.2.4



commit 3b7de8b57ce6f66ad726a6ffbe32d23ecaebf70a
Author: Evan Nemerson <evan coeus-group com>
Date:   Sun Jul 24 21:27:26 2011 -0700

    libgda-4.0: update to 4.2.4

 vapi/libgda-4.0.vapi                            |  443 +++++-
 vapi/packages/libgda-4.0/libgda-4.0-custom.vala |    7 +
 vapi/packages/libgda-4.0/libgda-4.0.gi          | 1778 +++++++++++++++++++----
 vapi/packages/libgda-4.0/libgda-4.0.metadata    |   11 +-
 4 files changed, 1879 insertions(+), 360 deletions(-)
---
diff --git a/vapi/libgda-4.0.vapi b/vapi/libgda-4.0.vapi
index 78740eb..df4bca2 100644
--- a/vapi/libgda-4.0.vapi
+++ b/vapi/libgda-4.0.vapi
@@ -115,6 +115,9 @@ namespace Gda {
 		[CCode (has_construct_function = false)]
 		protected Connection ();
 		public bool add_savepoint (string name) throws GLib.Error;
+		public bool async_cancel (uint task_id) throws GLib.Error;
+		public unowned GLib.Object async_fetch_result (uint task_id, out unowned Gda.Set last_insert_row) throws GLib.Error;
+		public uint async_statement_execute (Gda.Statement stmt, Gda.Set @params, Gda.StatementModelUsage model_usage, GLib.Type[] col_types, bool need_last_insert_row) throws GLib.Error;
 		public unowned GLib.SList<GLib.Object> batch_execute (Gda.Batch batch, Gda.Set @params, Gda.StatementModelUsage model_usage) throws GLib.Error;
 		public bool begin_transaction (string name, Gda.TransactionIsolation level) throws GLib.Error;
 		public void close ();
@@ -122,8 +125,11 @@ namespace Gda {
 		public bool commit_transaction (string name) throws GLib.Error;
 		public unowned Gda.ServerOperation create_operation (Gda.ServerOperationType type, Gda.Set options) throws GLib.Error;
 		public unowned Gda.SqlParser create_parser ();
+		public bool delete_row_from_table (string table, string condition_column_name, GLib.Value condition_value) throws GLib.Error;
 		public bool delete_savepoint (string name) throws GLib.Error;
 		public static GLib.Quark error_quark ();
+		public int execute_non_select_command (string sql) throws GLib.Error;
+		public unowned Gda.DataModel execute_select_command (string sql) throws GLib.Error;
 		public unowned string get_authentication ();
 		public unowned string get_cnc_string ();
 		public unowned string get_dsn ();
@@ -135,12 +141,16 @@ namespace Gda {
 		public unowned Gda.ServerProvider get_provider ();
 		public unowned string get_provider_name ();
 		public unowned Gda.TransactionStatus get_transaction_status ();
+		public bool insert_row_into_table (string table) throws GLib.Error;
+		public bool insert_row_into_table_v (string table, GLib.SList col_names, GLib.SList values) throws GLib.Error;
 		public bool is_opened ();
 		public bool open () throws GLib.Error;
 		public static unowned Gda.Connection open_from_dsn (string dsn, string? auth_string, Gda.ConnectionOptions options) throws GLib.Error;
 		public static unowned Gda.Connection open_from_string (string provider_name, string? cnc_string, string? auth_string, Gda.ConnectionOptions options) throws GLib.Error;
+		public unowned Gda.Statement parse_sql_string (string sql, out unowned Gda.Set @params) throws GLib.Error;
 		public bool perform_operation (Gda.ServerOperation op) throws GLib.Error;
 		public unowned string quote_sql_identifier (string id);
+		public unowned GLib.SList repetitive_statement_execute (Gda.RepetitiveStatement rstmt, Gda.StatementModelUsage model_usage, GLib.Type[] col_types, bool stop_on_error) throws GLib.Error;
 		public bool rollback_savepoint (string name) throws GLib.Error;
 		public bool rollback_transaction (string name) throws GLib.Error;
 		public unowned GLib.Object statement_execute (Gda.Statement stmt, Gda.Set @params, Gda.StatementModelUsage model_usage, out unowned Gda.Set last_insert_row) throws GLib.Error;
@@ -153,6 +163,8 @@ namespace Gda {
 		public static void string_split (string str, string out_cnc_params, string out_provider, string out_username, string out_password);
 		public bool supports_feature (Gda.ConnectionFeature feature);
 		public bool update_meta_store (Gda.MetaContext context) throws GLib.Error;
+		public bool update_row_in_table (string table, string condition_column_name, GLib.Value condition_value) throws GLib.Error;
+		public bool update_row_in_table_v (string table, string condition_column_name, GLib.Value condition_value, GLib.SList col_names, GLib.SList values) throws GLib.Error;
 		public unowned string value_to_sql_string (GLib.Value from);
 		[NoAccessorMethod]
 		public string auth_string { owned get; set; }
@@ -161,8 +173,14 @@ namespace Gda {
 		[NoAccessorMethod]
 		public string dsn { owned get; set; }
 		[NoAccessorMethod]
+		public int events_history_size { get; set; }
+		[NoAccessorMethod]
+		public bool is_wrapper { get; construct; }
+		[NoAccessorMethod]
 		public Gda.MetaStore meta_store { owned get; set; }
 		[NoAccessorMethod]
+		public bool monitor_wrapped_in_mainloop { get; set; }
+		[NoAccessorMethod]
 		public Gda.ConnectionOptions options { get; set; }
 		[NoAccessorMethod]
 		public Gda.ServerProvider provider { owned get; set; }
@@ -232,29 +250,6 @@ namespace Gda {
 		public bool read_only { get; set; }
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
-	public class DataModelBdb : GLib.Object, Gda.DataModel {
-		[CCode (type = "GdaDataModel*", has_construct_function = false)]
-		public DataModelBdb (string filename, string db_name);
-		public void clean_errors ();
-		[NoWrapper]
-		public virtual unowned GLib.SList create_data_columns ();
-		[NoWrapper]
-		public virtual unowned GLib.SList create_key_columns ();
-		[NoWrapper]
-		public virtual GLib.Value get_data_part (void* data, int length, int part);
-		public unowned GLib.SList<GLib.Error> get_errors ();
-		[NoWrapper]
-		public virtual GLib.Value get_key_part (void* data, int length, int part);
-		[NoWrapper]
-		public virtual bool update_data_part (void* data, int length, int part, GLib.Value value) throws GLib.Error;
-		[NoWrapper]
-		public virtual bool update_key_part (void* data, int length, int part, GLib.Value value) throws GLib.Error;
-		[NoAccessorMethod]
-		public string db_name { owned get; construct; }
-		[NoAccessorMethod]
-		public string filename { owned get; construct; }
-	}
-	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class DataModelDir : GLib.Object, Gda.DataModel {
 		[CCode (type = "GdaDataModel*", has_construct_function = false)]
 		public DataModelDir (string basedir);
@@ -287,6 +282,8 @@ namespace Gda {
 		[NoAccessorMethod]
 		public bool random_access { get; construct; }
 		[NoAccessorMethod]
+		public bool strict { get; set construct; }
+		[NoAccessorMethod]
 		public void* xml_node { get; construct; }
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
@@ -389,6 +386,8 @@ namespace Gda {
 		public virtual bool fetch_random (out unowned Gda.Row prow, int rownum) throws GLib.Error;
 		public unowned Gda.Connection get_connection ();
 		public unowned Gda.Row get_stored_row (int rownum);
+		public bool rerun () throws GLib.Error;
+		public void set_columns (GLib.SList columns);
 		public bool set_modification_statement (Gda.Statement mod_stmt) throws GLib.Error;
 		public bool set_modification_statement_sql (string sql) throws GLib.Error;
 		public bool set_row_selection_condition (Gda.SqlExpr expr) throws GLib.Error;
@@ -573,6 +572,7 @@ namespace Gda {
 		[CCode (has_construct_function = false)]
 		public MetaStore (string cnc_string);
 		public unowned Gda.DataModel create_modify_data_model (string table_name);
+		public bool declare_foreign_key (Gda.MetaStruct mstruct, string fk_name, string catalog, string schema, string table, string ref_catalog, string ref_schema, string ref_table, uint nb_cols, string colnames, string ref_colnames) throws GLib.Error;
 		public static GLib.Quark error_quark ();
 		public unowned Gda.DataModel extract (string select_sql) throws GLib.Error;
 		public bool get_attribute_value (string att_name, string att_value) throws GLib.Error;
@@ -586,8 +586,10 @@ namespace Gda {
 		public unowned Gda.MetaStruct schema_get_structure () throws GLib.Error;
 		public bool schema_remove_custom_object (string obj_name) throws GLib.Error;
 		public bool set_attribute_value (string att_name, string att_value) throws GLib.Error;
+		public void set_identifiers_style (Gda.SqlIdentifierStyle style);
 		public void set_reserved_keywords_func (Gda.SqlReservedKeywordsFunc func);
 		public static unowned string sql_identifier_quote (string id, Gda.Connection cnc);
+		public bool undeclare_foreign_key (Gda.MetaStruct mstruct, string fk_name, string catalog, string schema, string table, string ref_catalog, string ref_schema, string ref_table) throws GLib.Error;
 		[CCode (has_construct_function = false)]
 		public MetaStore.with_file (string file_name);
 		public string catalog { construct; }
@@ -652,10 +654,14 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class MetaTableForeignKey {
 		public int cols_nb;
+		public void* declared;
 		public weak Gda.MetaDbObject depend_on;
 		public int fk_cols_array;
+		public weak string fk_name;
 		public weak string fk_names_array;
 		public weak Gda.MetaDbObject meta_table;
+		public void* on_delete_policy;
+		public void* on_update_policy;
 		public int ref_pk_cols_array;
 		public weak string ref_pk_names_array;
 	}
@@ -722,6 +728,16 @@ namespace Gda {
 		public void remove (string name);
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class RepetitiveStatement : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public RepetitiveStatement (Gda.Statement stmt);
+		public bool append_set (Gda.Set values, bool make_copy);
+		public unowned GLib.SList get_all_sets ();
+		public bool get_template_set (out unowned Gda.Set @set) throws GLib.Error;
+		[NoAccessorMethod]
+		public Gda.Statement statement { owned get; construct; }
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class Row : GLib.Object {
 		[CCode (has_construct_function = false)]
 		public Row (int count);
@@ -736,8 +752,9 @@ namespace Gda {
 	public class ServerOperation : GLib.Object {
 		[CCode (has_construct_function = false)]
 		public ServerOperation (Gda.ServerOperationType op_type, string xml_file);
-		public uint add_item_to_sequence (string path);
+		public uint add_item_to_sequence (string seq_path);
 		public bool del_item_from_sequence (string item_path);
+		public static GLib.Quark error_quark ();
 		public unowned Gda.ServerOperationNode get_node_info (string path_format);
 		public unowned string get_node_parent (string path);
 		public unowned string get_node_path_portion (string path);
@@ -754,12 +771,21 @@ namespace Gda {
 		public bool is_valid (string xml_file) throws GLib.Error;
 		public bool load_data_from_xml (Xml.Node node) throws GLib.Error;
 		public static unowned string op_type_to_string (Gda.ServerOperationType type);
+		public bool perform_create_database (string provider) throws GLib.Error;
+		public bool perform_create_table () throws GLib.Error;
+		public bool perform_drop_database (string provider) throws GLib.Error;
+		public bool perform_drop_table () throws GLib.Error;
+		public static unowned Gda.ServerOperation prepare_create_database (string provider, string db_name) throws GLib.Error;
+		public static unowned Gda.ServerOperation prepare_create_table (Gda.Connection cnc, string table_name) throws GLib.Error;
+		public static unowned Gda.ServerOperation prepare_drop_database (string provider, string db_name) throws GLib.Error;
+		public static unowned Gda.ServerOperation prepare_drop_table (Gda.Connection cnc, string table_name) throws GLib.Error;
 		public unowned Xml.Node save_data_to_xml () throws GLib.Error;
 		[NoWrapper]
 		public virtual void seq_item_added (string seq_path, int item_index);
 		[NoWrapper]
 		public virtual void seq_item_remove (string seq_path, int item_index);
 		public bool set_value_at (string value, string path_format) throws GLib.Error;
+		public static Gda.ServerOperationType string_to_op_type (string str);
 		[NoAccessorMethod]
 		public Gda.Connection connection { owned get; construct; }
 		public int op_type { get; construct; }
@@ -817,6 +843,8 @@ namespace Gda {
 		public static int get_schema_nb_columns (Gda.ConnectionSchema schema);
 		public virtual unowned string get_server_version (Gda.Connection cnc);
 		public virtual unowned string get_version ();
+		[NoWrapper]
+		public virtual bool handle_async (Gda.Connection cnc) throws GLib.Error;
 		public void handler_declare (Gda.DataHandler dh, Gda.Connection cnc, GLib.Type g_type, string dbms_type);
 		public unowned Gda.DataHandler handler_find (Gda.Connection cnc, GLib.Type g_type, string dbms_type);
 		[NoWrapper]
@@ -840,6 +868,8 @@ namespace Gda {
 		[NoWrapper]
 		public virtual bool statement_prepare (Gda.Connection cnc, Gda.Statement stmt) throws GLib.Error;
 		[NoWrapper]
+		public virtual unowned Gda.SqlStatement statement_rewrite (Gda.Connection cnc, Gda.Statement stmt, Gda.Set @params) throws GLib.Error;
+		[NoWrapper]
 		public virtual unowned string statement_to_sql (Gda.Connection cnc, Gda.Statement stmt, Gda.Set @params, Gda.StatementSqlFlag flags, GLib.SList params_used) throws GLib.Error;
 		public GLib.Value string_to_value (Gda.Connection cnc, string str, GLib.Type preferred_type, string dbms_type);
 		public virtual bool supports_feature (Gda.Connection cnc, Gda.ConnectionFeature feature);
@@ -913,13 +943,17 @@ namespace Gda {
 		public unowned Gda.Holder get_holder (string holder_id);
 		public GLib.Value get_holder_value (string holder_id);
 		public unowned Gda.SetNode get_node (Gda.Holder holder);
+		public unowned Gda.Holder get_nth_holder (int pos);
 		public unowned Gda.SetSource get_source (Gda.Holder holder);
 		public unowned Gda.SetSource get_source_for_model (Gda.DataModel model);
 		[CCode (has_construct_function = false)]
 		public Set  inline (int nb);
 		public bool is_valid () throws GLib.Error;
 		public void merge_with_set (Gda.Set set_to_merge);
+		[CCode (has_construct_function = false)]
+		public Set.read_only (GLib.SList holders);
 		public void remove_holder (Gda.Holder holder);
+		public void replace_source_model (Gda.SetSource source, Gda.DataModel model);
 		public bool set_holder_value (string holder_id) throws GLib.Error;
 		[NoAccessorMethod]
 		public string description { owned get; set; }
@@ -930,7 +964,9 @@ namespace Gda {
 		public string name { owned get; set; }
 		public virtual signal void holder_attr_changed (Gda.Holder holder, string attr_name, GLib.Value attr_value);
 		public virtual signal void holder_changed (Gda.Holder holder);
+		public virtual signal void holder_type_set (Gda.Holder holder);
 		public virtual signal void public_data_changed ();
+		public virtual signal void source_model_changed (void* source);
 		public virtual signal unowned GLib.Error validate_holder_change (Gda.Holder holder, GLib.Value new_value);
 		public virtual signal unowned GLib.Error validate_set ();
 	}
@@ -961,6 +997,50 @@ namespace Gda {
 		public bool check_structure () throws GLib.Error;
 		public bool @foreach (Gda.SqlForeachFunc func, void* data) throws GLib.Error;
 	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class SqlBuilder : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public SqlBuilder (Gda.SqlStatementType stmt_type);
+		[CCode (sentinel = "")]
+		public Gda.SqlBuilderId add_case (Gda.SqlBuilderId test_expr, Gda.SqlBuilderId else_expr, ...);
+		public Gda.SqlBuilderId add_case_v (Gda.SqlBuilderId test_expr, Gda.SqlBuilderId else_expr, Gda.SqlBuilderId when_array, Gda.SqlBuilderId then_array, int args_size);
+		public Gda.SqlBuilderId add_cond (Gda.SqlOperatorType op, Gda.SqlBuilderId op1, Gda.SqlBuilderId op2, Gda.SqlBuilderId op3);
+		public Gda.SqlBuilderId add_cond_v (Gda.SqlOperatorType op, Gda.SqlBuilderId op_ids, int op_ids_size);
+		[CCode (sentinel = "")]
+		public Gda.SqlBuilderId add_expr (Gda.DataHandler dh, GLib.Type type, ...);
+		public Gda.SqlBuilderId add_expr_value (Gda.DataHandler dh, GLib.Value value);
+		public Gda.SqlBuilderId add_field_id (string field_name, string table_name);
+		[CCode (sentinel = "")]
+		public void add_field_value (string field_name, GLib.Type type, ...);
+		public void add_field_value_as_gvalue (string field_name, GLib.Value value);
+		public void add_field_value_id (Gda.SqlBuilderId field_id, Gda.SqlBuilderId value_id);
+		[CCode (sentinel = "")]
+		public Gda.SqlBuilderId add_function (string func_name, ...);
+		public Gda.SqlBuilderId add_function_v (string func_name, Gda.SqlBuilderId args, int args_size);
+		public Gda.SqlBuilderId add_id (string str);
+		public Gda.SqlBuilderId add_param (string param_name, GLib.Type type, bool nullok);
+		public Gda.SqlBuilderId add_sub_select (Gda.SqlStatement sqlst);
+		public void compound_add_sub_select (Gda.SqlStatement sqlst);
+		public void compound_set_type (Gda.SqlStatementCompoundType compound_type);
+		public static GLib.Quark error_quark ();
+		public unowned Gda.SqlExpr export_expression (Gda.SqlBuilderId id);
+		public unowned Gda.SqlStatement get_sql_statement ();
+		public unowned Gda.Statement get_statement () throws GLib.Error;
+		public Gda.SqlBuilderId import_expression (Gda.SqlExpr expr);
+		public void join_add_field (Gda.SqlBuilderId join_id, string field_name);
+		public Gda.SqlBuilderId select_add_field (string field_name, string table_name, string alias);
+		public Gda.SqlBuilderId select_add_target (string table_name, string alias);
+		public Gda.SqlBuilderId select_add_target_id (Gda.SqlBuilderId table_id, string alias);
+		public void select_group_by (Gda.SqlBuilderId expr_id);
+		public Gda.SqlBuilderId select_join_targets (Gda.SqlBuilderId left_target_id, Gda.SqlBuilderId right_target_id, Gda.SqlSelectJoinType join_type, Gda.SqlBuilderId join_expr);
+		public void select_order_by (Gda.SqlBuilderId expr_id, bool asc, string collation_name);
+		public void select_set_distinct (bool distinct, Gda.SqlBuilderId expr_id);
+		public void select_set_having (Gda.SqlBuilderId cond_id);
+		public void select_set_limit (Gda.SqlBuilderId limit_count_expr_id, Gda.SqlBuilderId limit_offset_expr_id);
+		public void set_table (string table_name);
+		public void set_where (Gda.SqlBuilderId cond_id);
+		public Gda.SqlStatementType stmt_type { construct; }
+	}
 	[Compact]
 	[CCode (copy_function = "gda_sql_case_copy", cheader_filename = "libgda/libgda.h")]
 	public class SqlCase {
@@ -975,7 +1055,11 @@ namespace Gda {
 		public unowned string serialize ();
 	}
 	[Compact]
-	[CCode (copy_function = "gda_sql_expr_copy", cheader_filename = "libgda/libgda.h")]
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class SqlErrorType {
+	}
+	[Compact]
+	[CCode (copy_function = "gda_sql_expr_copy", type_id = "GDA_TYPE_SQL_EXPR", cheader_filename = "libgda/libgda.h")]
 	public class SqlExpr {
 		public weak Gda.SqlAnyPart any;
 		public weak Gda.SqlCase case_s;
@@ -1192,7 +1276,7 @@ namespace Gda {
 		public void take_table_name (GLib.Value value);
 	}
 	[Compact]
-	[CCode (copy_function = "gda_sql_statement_copy", cheader_filename = "libgda/libgda.h")]
+	[CCode (copy_function = "gda_sql_statement_copy", type_id = "GDA_TYPE_SQL_STATEMENT", cheader_filename = "libgda/libgda.h")]
 	public class SqlStatement {
 		public void* contents;
 		public weak string sql;
@@ -1203,6 +1287,7 @@ namespace Gda {
 		public void check_clean ();
 		public bool check_structure () throws GLib.Error;
 		public bool check_validity (Gda.Connection cnc) throws GLib.Error;
+		public bool check_validity_m (Gda.MetaStruct mstruct) throws GLib.Error;
 		public unowned Gda.SqlStatement copy ();
 		public static unowned Gda.SqlStatementContentsInfo get_contents_infos (Gda.SqlStatementType type);
 		public bool normalize (Gda.Connection cnc) throws GLib.Error;
@@ -1347,14 +1432,30 @@ namespace Gda {
 		public Gda.SqlStatementType get_statement_type ();
 		public bool is_useless ();
 		public bool normalize (Gda.Connection cnc) throws GLib.Error;
+		public unowned Gda.SqlStatement rewrite_for_default_values (Gda.Set @params, bool remove) throws GLib.Error;
 		public unowned string serialize ();
-		public unowned string to_sql_extended (Gda.Connection cnc, Gda.Set @params, Gda.StatementSqlFlag flags, GLib.SList<Gda.Holder> params_used) throws GLib.Error;
+		public string to_sql_extended (Gda.Connection? cnc, Gda.Set? @params, Gda.StatementSqlFlag flags, GLib.SList<Gda.Holder>? params_used) throws GLib.Error;
 		public unowned string to_sql_real (Gda.SqlRenderingContext context) throws GLib.Error;
 		[NoAccessorMethod]
 		public void* structure { get; set; }
 		public virtual signal void checked (Gda.Connection cnc, bool checked);
 		public virtual signal void reset ();
 	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class ThreadWrapper : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public ThreadWrapper ();
+		public bool cancel (uint id);
+		public ulong connect_raw (void* instance, string sig_name, bool private_thread, bool private_job, Gda.ThreadWrapperCallback callback, void* data);
+		public void disconnect (ulong id);
+		public static GLib.Quark error_quark ();
+		public uint execute (Gda.ThreadWrapperFunc func, void* arg, GLib.DestroyNotify arg_destroy_func) throws GLib.Error;
+		public uint execute_void (Gda.ThreadWrapperVoidFunc func, void* arg, GLib.DestroyNotify arg_destroy_func) throws GLib.Error;
+		public void* fetch_result (bool may_lock, uint exp_id) throws GLib.Error;
+		public int get_waiting_size ();
+		public void iterate (bool may_block);
+		public void steal_signal (ulong id);
+	}
 	[Compact]
 	[CCode (copy_function = "gda_time_copy", type_id = "GDA_TYPE_TIME", cheader_filename = "libgda/libgda.h")]
 	public class Time {
@@ -1364,6 +1465,7 @@ namespace Gda {
 		public ushort second;
 		public long timezone;
 		public static void* copy (void* boxed);
+		public bool valid ();
 	}
 	[Compact]
 	[CCode (copy_function = "gda_timestamp_copy", type_id = "GDA_TYPE_TIMESTAMP", cheader_filename = "libgda/libgda.h")]
@@ -1377,6 +1479,7 @@ namespace Gda {
 		public long timezone;
 		public short year;
 		public static void* copy (void* boxed);
+		public bool valid ();
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class TransactionStatus : GLib.Object {
@@ -1395,6 +1498,138 @@ namespace Gda {
 		public weak Gda.TransactionStatus trans;
 		public Gda.TransactionStatusEventType type;
 	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class Tree : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public Tree ();
+		public void add_manager (Gda.TreeManager manager);
+		public void clean ();
+		public void dump (Gda.TreeNode node, GLib.FileStream stream);
+		public static GLib.Quark error_quark ();
+		public unowned Gda.TreeNode get_node (string tree_path, bool use_names);
+		public unowned Gda.TreeManager get_node_manager (Gda.TreeNode node);
+		public unowned string get_node_path (Gda.TreeNode node);
+		public unowned GLib.SList get_nodes_in_path (string tree_path, bool use_names);
+		public void set_attribute (string attribute, GLib.Value value, GLib.DestroyNotify destroy);
+		public bool update_all () throws GLib.Error;
+		public bool update_part (Gda.TreeNode node) throws GLib.Error;
+		[NoAccessorMethod]
+		public bool is_list { get; }
+		public virtual signal void node_changed (Gda.TreeNode node);
+		public virtual signal void node_deleted (string node_path);
+		public virtual signal void node_has_child_toggled (Gda.TreeNode node);
+		public virtual signal void node_inserted (Gda.TreeNode node);
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeManager : GLib.Object {
+		[CCode (has_construct_function = false)]
+		protected TreeManager ();
+		public void add_manager (Gda.TreeManager sub);
+		public void add_new_node_attribute (string attribute, GLib.Value value);
+		public unowned Gda.TreeNode create_node (Gda.TreeNode parent, string name);
+		public static GLib.Quark error_quark ();
+		public unowned GLib.SList get_managers ();
+		public unowned Gda.TreeManagerNodeFunc get_node_create_func ();
+		public void set_node_create_func (Gda.TreeManagerNodeFunc func);
+		[NoWrapper]
+		public virtual unowned GLib.SList update_children (Gda.TreeNode node, GLib.SList children_nodes, bool out_error) throws GLib.Error;
+		[CCode (has_construct_function = false)]
+		public TreeManager.with_func (Gda.TreeManagerNodesFunc update_func);
+		[NoAccessorMethod]
+		public void* func { get; set construct; }
+		[NoAccessorMethod]
+		public bool recursive { get; set construct; }
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrColumns : Gda.TreeManager {
+		[CCode (type = "GdaTreeManager*", has_construct_function = false)]
+		public TreeMgrColumns (Gda.Connection cnc, string schema, string table_name);
+		[NoAccessorMethod]
+		public Gda.Connection connection { owned get; construct; }
+		[NoAccessorMethod]
+		public Gda.MetaStore meta_store { owned get; construct; }
+		public string schema { construct; }
+		public string table_name { construct; }
+	}
+	[Compact]
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrColumnsPriv {
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrLabel : Gda.TreeManager {
+		[CCode (type = "GdaTreeManager*", has_construct_function = false)]
+		public TreeMgrLabel (string label);
+		public string label { construct; }
+	}
+	[Compact]
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrLabelPriv {
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrSchemas : Gda.TreeManager {
+		[CCode (type = "GdaTreeManager*", has_construct_function = false)]
+		public TreeMgrSchemas (Gda.Connection cnc);
+		[NoAccessorMethod]
+		public Gda.Connection connection { owned get; construct; }
+		[NoAccessorMethod]
+		public Gda.MetaStore meta_store { owned get; construct; }
+	}
+	[Compact]
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrSchemasPriv {
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrSelect : Gda.TreeManager {
+		[CCode (type = "GdaTreeManager*", has_construct_function = false)]
+		public TreeMgrSelect (Gda.Connection cnc, Gda.Statement stmt, Gda.Set @params);
+		[NoAccessorMethod]
+		public Gda.Connection connection { owned get; construct; }
+		[NoAccessorMethod]
+		public Gda.Set @params { owned get; construct; }
+		[NoAccessorMethod]
+		public Gda.Statement statement { owned get; construct; }
+	}
+	[Compact]
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrSelectPriv {
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrTables : Gda.TreeManager {
+		[CCode (type = "GdaTreeManager*", has_construct_function = false)]
+		public TreeMgrTables (Gda.Connection cnc, string schema);
+		[NoAccessorMethod]
+		public Gda.Connection connection { owned get; construct; }
+		[NoAccessorMethod]
+		public Gda.MetaStore meta_store { owned get; construct; }
+		public string schema { construct; }
+	}
+	[Compact]
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeMgrTablesPriv {
+	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class TreeNode : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public TreeNode (string name);
+		[NoWrapper]
+		public virtual void dump_children (string prefix, GLib.StringBuilder in_string);
+		[NoWrapper]
+		public virtual unowned string dump_header ();
+		public static GLib.Quark error_quark ();
+		public GLib.Value fetch_attribute (string attribute);
+		public unowned Gda.TreeNode get_child_index (int index);
+		public unowned Gda.TreeNode get_child_name (string name);
+		public unowned GLib.SList get_children ();
+		public GLib.Value get_node_attribute (string attribute);
+		public unowned Gda.TreeNode get_parent ();
+		public void set_node_attribute (string attribute, GLib.Value value, GLib.DestroyNotify destroy);
+		[NoAccessorMethod]
+		public string name { owned get; set; }
+		public virtual signal void node_changed (Gda.TreeNode node);
+		public virtual signal void node_deleted (string relative_path);
+		public virtual signal void node_has_child_toggled (Gda.TreeNode node);
+		public virtual signal void node_inserted (Gda.TreeNode node);
+	}
 	[Compact]
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class ValueList {
@@ -1412,8 +1647,23 @@ namespace Gda {
 	}
 	[Compact]
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public class VconnectionDataModelFilter {
+		public void* aConstraint;
+		public void* aConstraintUsage;
+		public void* aOrderBy;
+		public double estimatedCost;
+		public int idxNum;
+		public void* idxPointer;
+		public int nConstraint;
+		public int nOrderBy;
+		public bool orderByConsumed;
+	}
+	[Compact]
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VconnectionDataModelSpec {
 		public weak Gda.VconnectionDataModelCreateColumnsFunc create_columns_func;
+		public weak Gda.VconnectionDataModelParseFilterFunc create_filter_func;
+		public weak Gda.VconnectionDataModelCreateFModelFunc create_filtered_model_func;
 		public weak Gda.VconnectionDataModelCreateModelFunc create_model_func;
 		public weak Gda.DataModel data_model;
 	}
@@ -1433,6 +1683,7 @@ namespace Gda {
 		public void* internal_get_provider_data ();
 		public void internal_set_provider_data (void* data, GLib.DestroyNotify destroy_func);
 		public static unowned Gda.Connection open (Gda.VirtualProvider virtual_provider) throws GLib.Error;
+		public static unowned Gda.Connection open_extended (Gda.VirtualProvider virtual_provider, Gda.ConnectionOptions options) throws GLib.Error;
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public class VirtualProvider : Gda.SqliteProvider {
@@ -1479,6 +1730,7 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public interface DataHandler : GLib.Object {
 		public abstract bool accepts_g_type (GLib.Type type);
+		public static unowned Gda.DataHandler get_default (GLib.Type for_type);
 		public abstract unowned string get_descr ();
 		public abstract GLib.Value get_sane_init_value (GLib.Type type);
 		public abstract unowned string get_sql_from_value (GLib.Value value);
@@ -1551,11 +1803,20 @@ namespace Gda {
 		public weak string auth_string;
 		public bool is_system;
 	}
+	[CCode (cheader_filename = "libgda/libgda.h")]
+	[SimpleType]
+	[IntegerType (rank = 7)]
+	public struct SqlBuilderId : uint {
+	}
 	[CCode (type_id = "GDA_TYPE_SQL_PARSER_IFACE", cheader_filename = "libgda/libgda.h")]
 	protected struct SqlParserIface {
 		public Gda.SqlParser parser;
 		public Gda.SqlStatement parsed_statement;
 	}
+	[CCode (cprefix = "GDA_BATCH_CONFLICTING_PARAMETER_", cheader_filename = "libgda/libgda.h")]
+	public enum BatchError {
+		ERROR
+	}
 	[CCode (cprefix = "GDA_CONFIG_", cheader_filename = "libgda/libgda.h")]
 	public enum ConfigError {
 		DSN_NOT_FOUND_ERROR,
@@ -1571,7 +1832,11 @@ namespace Gda {
 		NO_CNC_SPEC_ERROR,
 		NO_PROVIDER_SPEC_ERROR,
 		OPEN_ERROR,
-		STATEMENT_TYPE_ERROR
+		STATEMENT_TYPE_ERROR,
+		CANT_LOCK_ERROR,
+		TASK_NOT_FOUND_ERROR,
+		UNSUPPORTED_THREADS_ERROR,
+		CLOSED_ERROR
 	}
 	[CCode (cprefix = "GDA_CONNECTION_EVENT_CODE_", cheader_filename = "libgda/libgda.h")]
 	public enum ConnectionEventCode {
@@ -1620,6 +1885,7 @@ namespace Gda {
 		USERS,
 		VIEWS,
 		XA_TRANSACTIONS,
+		MULTI_THREADING,
 		LAST
 	}
 	[CCode (cprefix = "GDA_CONNECTION_META_", cheader_filename = "libgda/libgda.h")]
@@ -1636,7 +1902,10 @@ namespace Gda {
 	public enum ConnectionOptions {
 		NONE,
 		READ_ONLY,
-		SQL_IDENTIFIERS_CASE_SENSITIVE
+		SQL_IDENTIFIERS_CASE_SENSITIVE,
+		THREAD_SAFE,
+		THREAD_ISOLATED,
+		AUTO_META_DATA
 	}
 	[CCode (cprefix = "GDA_CONNECTION_SCHEMA_", cheader_filename = "libgda/libgda.h")]
 	public enum ConnectionSchema {
@@ -1711,6 +1980,15 @@ namespace Gda {
 		READ_ONLY_ROW,
 		FILTER_ERROR
 	}
+	[CCode (cprefix = "GDA_DATA_SELECT_", cheader_filename = "libgda/libgda.h")]
+	public enum DataSelectError {
+		MODIFICATION_STATEMENT_ERROR,
+		MISSING_MODIFICATION_STATEMENT_ERROR,
+		CONNECTION_ERROR,
+		ACCESS_ERROR,
+		SQL_ERROR,
+		SAFETY_LOCKED_ERROR
+	}
 	[CCode (cprefix = "GDA_DIFF_", cheader_filename = "libgda/libgda.h")]
 	public enum DiffType {
 		ADD_ROW,
@@ -1718,7 +1996,6 @@ namespace Gda {
 		MODIFY_ROW
 	}
 	[CCode (cprefix = "GDA_EASY_CREATE_TABLE_", cheader_filename = "libgda/libgda.h")]
-	[Flags]
 	public enum EasyCreateTableFlag {
 		NOTHING_FLAG,
 		PKEY_FLAG,
@@ -1746,6 +2023,16 @@ namespace Gda {
 		TABLE,
 		VIEW
 	}
+	[CCode (cprefix = "GDA_META_FOREIGN_KEY_", cheader_filename = "libgda/libgda.h")]
+	public enum MetaForeignKeyPolicy {
+		UNKNOWN,
+		NONE,
+		NO_ACTION,
+		RESTRICT,
+		CASCADE,
+		SET_NULL,
+		SET_DEFAULT
+	}
 	[CCode (cprefix = "GDA_META_GRAPH_", cheader_filename = "libgda/libgda.h")]
 	[Flags]
 	public enum MetaGraphInfo {
@@ -1802,6 +2089,22 @@ namespace Gda {
 		LIBEXEC_DIR,
 		ETC_DIR
 	}
+	[CCode (cprefix = "GDA_SERVER_OPERATION_CREATE_TABLE_", cheader_filename = "libgda/libgda.h")]
+	[Flags]
+	public enum ServerOperationCreateTableFlag {
+		NOTHING_FLAG,
+		PKEY_FLAG,
+		NOT_NULL_FLAG,
+		UNIQUE_FLAG,
+		AUTOINC_FLAG,
+		FKEY_FLAG,
+		PKEY_AUTOINC_FLAG
+	}
+	[CCode (cprefix = "GDA_SERVER_OPERATION_", cheader_filename = "libgda/libgda.h")]
+	public enum ServerOperationError {
+		OBJECT_NAME_ERROR,
+		INCORRECT_VALUE_ERROR
+	}
 	[CCode (cprefix = "GDA_SERVER_OPERATION_STATUS_", cheader_filename = "libgda/libgda.h")]
 	public enum ServerOperationNodeStatus {
 		OPTIONAL,
@@ -1831,6 +2134,11 @@ namespace Gda {
 		DROP_INDEX,
 		CREATE_VIEW,
 		DROP_VIEW,
+		COMMENT_TABLE,
+		COMMENT_COLUMN,
+		CREATE_USER,
+		ALTER_USER,
+		DROP_USER,
 		LAST
 	}
 	[CCode (cprefix = "GDA_SERVER_PROVIDER_", cheader_filename = "libgda/libgda.h")]
@@ -1845,13 +2153,15 @@ namespace Gda {
 		BUSY_ERROR,
 		NON_SUPPORTED_ERROR,
 		SERVER_VERSION_ERROR,
-		DATA_ERROR
+		DATA_ERROR,
+		DEFAULT_VALUE_HANDLING_ERROR
 	}
 	[CCode (cprefix = "GDA_SET_", cheader_filename = "libgda/libgda.h")]
 	public enum SetError {
 		XML_SPEC_ERROR,
 		HOLDER_NOT_FOUND_ERROR,
-		INVALID_ERROR
+		INVALID_ERROR,
+		READ_ONLY_ERROR
 	}
 	[CCode (cprefix = "GDA_SQL_ANY_", cheader_filename = "libgda/libgda.h")]
 	public enum SqlAnyPartType {
@@ -1879,12 +2189,10 @@ namespace Gda {
 		SQL_SELECT_FROM,
 		SQL_SELECT_ORDER
 	}
-	[CCode (cprefix = "GDA_SQL_", cheader_filename = "libgda/libgda.h")]
-	public enum SqlErrorType {
-		STRUCTURE_CONTENTS_ERROR,
-		MALFORMED_IDENTIFIER_ERROR,
-		MISSING_IDENTIFIER_ERROR,
-		VALIDATION_ERROR
+	[CCode (cprefix = "GDA_SQL_BUILDER_", cheader_filename = "libgda/libgda.h")]
+	public enum SqlBuilderError {
+		WRONG_TYPE_ERROR,
+		MISUSE_ERROR
 	}
 	[CCode (cprefix = "GDA_SQL_IDENTIFIERS_", cheader_filename = "libgda/libgda.h")]
 	[Flags]
@@ -2000,6 +2308,7 @@ namespace Gda {
 	[CCode (cprefix = "GDA_STATEMENT_SQL_", cheader_filename = "libgda/libgda.h")]
 	[Flags]
 	public enum StatementSqlFlag {
+		PARAMS_AS_VALUES,
 		PRETTY,
 		PARAMS_LONG,
 		PARAMS_SHORT,
@@ -2008,6 +2317,10 @@ namespace Gda {
 		PARAMS_AS_QMARK,
 		PARAMS_AS_UQMARK
 	}
+	[CCode (cprefix = "GDA_THREAD_WRAPPER_UNKNOWN_", has_type_id = false, cheader_filename = "libgda/libgda.h")]
+	public enum ThreadWrapperError {
+		ERROR
+	}
 	[CCode (cprefix = "GDA_TRANSACTION_ISOLATION_", cheader_filename = "libgda/libgda.h")]
 	public enum TransactionIsolation {
 		UNKNOWN,
@@ -2027,6 +2340,18 @@ namespace Gda {
 		OK,
 		FAILED
 	}
+	[CCode (cprefix = "GDA_TREE_UNKNOWN_", cheader_filename = "libgda/libgda.h")]
+	public enum TreeError {
+		ERROR
+	}
+	[CCode (cprefix = "GDA_TREE_MANAGER_UNKNOWN_", cheader_filename = "libgda/libgda.h")]
+	public enum TreeManagerError {
+		ERROR
+	}
+	[CCode (cprefix = "GDA_TREE_NODE_UNKNOWN_", cheader_filename = "libgda/libgda.h")]
+	public enum TreeNodeError {
+		ERROR
+	}
 	[CCode (cprefix = "GDA_VALUE_ATTR_", cheader_filename = "libgda/libgda.h")]
 	[Flags]
 	public enum ValueAttribute {
@@ -2045,7 +2370,15 @@ namespace Gda {
 	[CCode (cprefix = "GDA_XA_TRANSACTION_", cheader_filename = "libgda/libgda.h")]
 	public enum XaTransactionError {
 		ALREADY_REGISTERED_ERROR,
-		DTP_NOT_SUPPORTED_ERROR
+		DTP_NOT_SUPPORTED_ERROR,
+		CONNECTION_BRANCH_LENGTH_ERROR
+	}
+	[CCode (cprefix = "GDA_SQL_ERROR_", cheader_filename = "libgda/libgda.h")]
+	public errordomain SqlError {
+		STRUCTURE_CONTENTS_ERROR,
+		MALFORMED_IDENTIFIER_ERROR,
+		MISSING_IDENTIFIER_ERROR,
+		VALIDATION_ERROR
 	}
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public delegate void AttributesManagerFunc (string att_name, GLib.Value value);
@@ -2068,13 +2401,27 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
 	public delegate bool SqlReservedKeywordsFunc (string word);
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public delegate void ThreadWrapperCallback (Gda.ThreadWrapper wrapper, void* instance, string signame, int n_param_values, GLib.Value param_values, void* gda_reserved);
+	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
+	public delegate void* ThreadWrapperFunc (void* arg) throws GLib.Error;
+	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
+	public delegate void ThreadWrapperVoidFunc (void* arg) throws GLib.Error;
+	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
+	public delegate unowned Gda.TreeNode TreeManagerNodeFunc (Gda.TreeManager manager, Gda.TreeNode parent, string name);
+	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
+	public delegate unowned GLib.SList TreeManagerNodesFunc (Gda.TreeManager manager, Gda.TreeNode node, GLib.SList children_nodes, bool out_error) throws GLib.Error;
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public delegate void VConnectionHubFunc (Gda.Connection cnc, string ns);
 	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
 	public delegate unowned GLib.List VconnectionDataModelCreateColumnsFunc (Gda.VconnectionDataModelSpec p1) throws GLib.Error;
 	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
+	public delegate unowned Gda.DataModel VconnectionDataModelCreateFModelFunc (Gda.VconnectionDataModelSpec p1, int p2, string p3, int p4, out GLib.Value p5);
+	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
 	public delegate unowned Gda.DataModel VconnectionDataModelCreateModelFunc (Gda.VconnectionDataModelSpec p1);
 	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
 	public delegate void VconnectionDataModelFunc (Gda.DataModel p1, string p2, void* p3);
+	[CCode (cheader_filename = "libgda/libgda.h", has_target = false)]
+	public delegate void VconnectionDataModelParseFilterFunc (Gda.VconnectionDataModelSpec p1, Gda.VconnectionDataModelFilter p2);
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public const string ATTRIBUTE_AUTO_INCREMENT;
 	[CCode (cheader_filename = "libgda/libgda.h")]
@@ -2088,18 +2435,6 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public const string ATTRIBUTE_NUMERIC_SCALE;
 	[CCode (cheader_filename = "libgda/libgda.h")]
-	public const string D_COL_ERR;
-	[CCode (cheader_filename = "libgda/libgda.h")]
-	public const string D_COL_H0;
-	[CCode (cheader_filename = "libgda/libgda.h")]
-	public const string D_COL_H1;
-	[CCode (cheader_filename = "libgda/libgda.h")]
-	public const string D_COL_H2;
-	[CCode (cheader_filename = "libgda/libgda.h")]
-	public const string D_COL_NOR;
-	[CCode (cheader_filename = "libgda/libgda.h")]
-	public const string D_COL_OK;
-	[CCode (cheader_filename = "libgda/libgda.h")]
 	public const string EXTRA_AUTO_INCREMENT;
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public const string SQLSTATE_GENERAL_ERROR;
@@ -2120,6 +2455,8 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static unowned Gda.SqlExpr compute_unique_table_row_condition (Gda.SqlStatementSelect stsel, Gda.MetaTable mtable, bool require_pk) throws GLib.Error;
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public static unowned Gda.SqlExpr compute_unique_table_row_condition_with_cnc (Gda.Connection cnc, Gda.SqlStatementSelect stsel, Gda.MetaTable mtable, bool require_pk) throws GLib.Error;
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static unowned string default_escape_string (string str);
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static unowned string default_unescape_string (string str);
@@ -2156,6 +2493,8 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool insert_row_into_table_v (Gda.Connection cnc, string table, GLib.SList col_names, GLib.SList values) throws GLib.Error;
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public static void locale_changed ();
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static void log_disable ();
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static void log_enable ();
@@ -2172,6 +2511,8 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool parse_iso8601_timestamp (Gda.Timestamp timestamp, string value);
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public static unowned Gda.Statement parse_sql_string (Gda.Connection cnc, string sql, out unowned Gda.Set @params) throws GLib.Error;
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool perform_create_database (string provider, Gda.ServerOperation op) throws GLib.Error;
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool perform_create_table (Gda.ServerOperation op) throws GLib.Error;
diff --git a/vapi/packages/libgda-4.0/libgda-4.0-custom.vala b/vapi/packages/libgda-4.0/libgda-4.0-custom.vala
index 858fe84..7b694b5 100644
--- a/vapi/packages/libgda-4.0/libgda-4.0-custom.vala
+++ b/vapi/packages/libgda-4.0/libgda-4.0-custom.vala
@@ -26,4 +26,11 @@ namespace Gda {
 		Gda.SqlParser    parser;
 		Gda.SqlStatement parsed_statement;
 	}
+
+	public errordomain SqlError {
+		STRUCTURE_CONTENTS_ERROR,
+		MALFORMED_IDENTIFIER_ERROR,
+		MISSING_IDENTIFIER_ERROR,
+		VALIDATION_ERROR
+	}
 }
diff --git a/vapi/packages/libgda-4.0/libgda-4.0.gi b/vapi/packages/libgda-4.0/libgda-4.0.gi
index 3fba44e..c4a5ff4 100644
--- a/vapi/packages/libgda-4.0/libgda-4.0.gi
+++ b/vapi/packages/libgda-4.0/libgda-4.0.gi
@@ -44,6 +44,16 @@
 				<parameter name="error" type="GError**"/>
 			</parameters>
 		</function>
+		<function name="compute_unique_table_row_condition_with_cnc" symbol="gda_compute_unique_table_row_condition_with_cnc">
+			<return-type type="GdaSqlExpr*"/>
+			<parameters>
+				<parameter name="cnc" type="GdaConnection*"/>
+				<parameter name="stsel" type="GdaSqlStatementSelect*"/>
+				<parameter name="mtable" type="GdaMetaTable*"/>
+				<parameter name="require_pk" type="gboolean"/>
+				<parameter name="error" type="GError**"/>
+			</parameters>
+		</function>
 		<function name="default_escape_string" symbol="gda_default_escape_string">
 			<return-type type="gchar*"/>
 			<parameters>
@@ -161,6 +171,9 @@
 				<parameter name="error" type="GError**"/>
 			</parameters>
 		</function>
+		<function name="locale_changed" symbol="gda_locale_changed">
+			<return-type type="void"/>
+		</function>
 		<function name="log_disable" symbol="gda_log_disable">
 			<return-type type="void"/>
 		</function>
@@ -203,6 +216,15 @@
 				<parameter name="value" type="gchar*"/>
 			</parameters>
 		</function>
+		<function name="parse_sql_string" symbol="gda_parse_sql_string">
+			<return-type type="GdaStatement*"/>
+			<parameters>
+				<parameter name="cnc" type="GdaConnection*"/>
+				<parameter name="sql" type="gchar*"/>
+				<parameter name="params" type="GdaSet**"/>
+				<parameter name="error" type="GError**"/>
+			</parameters>
+		</function>
 		<function name="perform_create_database" symbol="gda_perform_create_database">
 			<return-type type="gboolean"/>
 			<parameters>
@@ -752,6 +774,50 @@
 				<parameter name="word" type="gchar*"/>
 			</parameters>
 		</callback>
+		<callback name="GdaThreadWrapperCallback">
+			<return-type type="void"/>
+			<parameters>
+				<parameter name="wrapper" type="GdaThreadWrapper*"/>
+				<parameter name="instance" type="gpointer"/>
+				<parameter name="signame" type="gchar*"/>
+				<parameter name="n_param_values" type="gint"/>
+				<parameter name="param_values" type="GValue*"/>
+				<parameter name="gda_reserved" type="gpointer"/>
+				<parameter name="data" type="gpointer"/>
+			</parameters>
+		</callback>
+		<callback name="GdaThreadWrapperFunc">
+			<return-type type="gpointer"/>
+			<parameters>
+				<parameter name="arg" type="gpointer"/>
+				<parameter name="error" type="GError**"/>
+			</parameters>
+		</callback>
+		<callback name="GdaThreadWrapperVoidFunc">
+			<return-type type="void"/>
+			<parameters>
+				<parameter name="arg" type="gpointer"/>
+				<parameter name="error" type="GError**"/>
+			</parameters>
+		</callback>
+		<callback name="GdaTreeManagerNodeFunc">
+			<return-type type="GdaTreeNode*"/>
+			<parameters>
+				<parameter name="manager" type="GdaTreeManager*"/>
+				<parameter name="parent" type="GdaTreeNode*"/>
+				<parameter name="name" type="gchar*"/>
+			</parameters>
+		</callback>
+		<callback name="GdaTreeManagerNodesFunc">
+			<return-type type="GSList*"/>
+			<parameters>
+				<parameter name="manager" type="GdaTreeManager*"/>
+				<parameter name="node" type="GdaTreeNode*"/>
+				<parameter name="children_nodes" type="GSList*"/>
+				<parameter name="out_error" type="gboolean*"/>
+				<parameter name="error" type="GError**"/>
+			</parameters>
+		</callback>
 		<callback name="GdaVConnectionHubFunc">
 			<return-type type="void"/>
 			<parameters>
@@ -767,6 +833,16 @@
 				<parameter name="p2" type="GError**"/>
 			</parameters>
 		</callback>
+		<callback name="GdaVconnectionDataModelCreateFModelFunc">
+			<return-type type="GdaDataModel*"/>
+			<parameters>
+				<parameter name="p1" type="GdaVconnectionDataModelSpec*"/>
+				<parameter name="p2" type="int"/>
+				<parameter name="p3" type="char*"/>
+				<parameter name="p4" type="int"/>
+				<parameter name="p5" type="GValue**"/>
+			</parameters>
+		</callback>
 		<callback name="GdaVconnectionDataModelCreateModelFunc">
 			<return-type type="GdaDataModel*"/>
 			<parameters>
@@ -781,6 +857,13 @@
 				<parameter name="p3" type="gpointer"/>
 			</parameters>
 		</callback>
+		<callback name="GdaVconnectionDataModelParseFilterFunc">
+			<return-type type="void"/>
+			<parameters>
+				<parameter name="p1" type="GdaVconnectionDataModelSpec*"/>
+				<parameter name="p2" type="GdaVconnectionDataModelFilter*"/>
+			</parameters>
+		</callback>
 		<struct name="GdaAttributesManager">
 			<method name="clear" symbol="gda_attributes_manager_clear">
 				<return-type type="void"/>
@@ -961,10 +1044,10 @@
 			<field name="fk_names_array" type="gchar**"/>
 			<field name="ref_pk_cols_array" type="gint*"/>
 			<field name="ref_pk_names_array" type="gchar**"/>
-			<field name="_gda_reserved1" type="gpointer"/>
-			<field name="_gda_reserved2" type="gpointer"/>
-			<field name="_gda_reserved3" type="gpointer"/>
-			<field name="_gda_reserved4" type="gpointer"/>
+			<field name="on_update_policy" type="gpointer"/>
+			<field name="on_delete_policy" type="gpointer"/>
+			<field name="declared" type="gpointer"/>
+			<field name="fk_name" type="gchar*"/>
 		</struct>
 		<struct name="GdaMetaView">
 			<field name="table" type="GdaMetaTable"/>
@@ -1140,6 +1223,8 @@
 			<field name="type" type="GdaSqlAnyPartType"/>
 			<field name="parent" type="GdaSqlAnyPart*"/>
 		</struct>
+		<struct name="GdaSqlBuilderId">
+		</struct>
 		<struct name="GdaSqlCase">
 			<method name="copy" symbol="gda_sql_case_copy">
 				<return-type type="GdaSqlCase*"/>
@@ -1173,48 +1258,7 @@
 			<field name="_gda_reserved1" type="gpointer"/>
 			<field name="_gda_reserved2" type="gpointer"/>
 		</struct>
-		<struct name="GdaSqlExpr">
-			<method name="copy" symbol="gda_sql_expr_copy">
-				<return-type type="GdaSqlExpr*"/>
-				<parameters>
-					<parameter name="expr" type="GdaSqlExpr*"/>
-				</parameters>
-			</method>
-			<method name="free" symbol="gda_sql_expr_free">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="expr" type="GdaSqlExpr*"/>
-				</parameters>
-			</method>
-			<method name="new" symbol="gda_sql_expr_new">
-				<return-type type="GdaSqlExpr*"/>
-				<parameters>
-					<parameter name="parent" type="GdaSqlAnyPart*"/>
-				</parameters>
-			</method>
-			<method name="serialize" symbol="gda_sql_expr_serialize">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="expr" type="GdaSqlExpr*"/>
-				</parameters>
-			</method>
-			<method name="take_select" symbol="gda_sql_expr_take_select">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="expr" type="GdaSqlExpr*"/>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-				</parameters>
-			</method>
-			<field name="any" type="GdaSqlAnyPart"/>
-			<field name="value" type="GValue*"/>
-			<field name="param_spec" type="GdaSqlParamSpec*"/>
-			<field name="func" type="GdaSqlFunction*"/>
-			<field name="cond" type="GdaSqlOperation*"/>
-			<field name="select" type="GdaSqlAnyPart*"/>
-			<field name="case_s" type="GdaSqlCase*"/>
-			<field name="cast_as" type="gchar*"/>
-			<field name="value_is_ident" type="gpointer"/>
-			<field name="_gda_reserved2" type="gpointer"/>
+		<struct name="GdaSqlErrorType">
 		</struct>
 		<struct name="GdaSqlField">
 			<method name="copy" symbol="gda_sql_field_copy">
@@ -1676,106 +1720,6 @@
 			<field name="_gda_reserved1" type="gpointer"/>
 			<field name="_gda_reserved2" type="gpointer"/>
 		</struct>
-		<struct name="GdaSqlStatement">
-			<method name="check_clean" symbol="gda_sql_statement_check_clean">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-				</parameters>
-			</method>
-			<method name="check_structure" symbol="gda_sql_statement_check_structure">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-					<parameter name="error" type="GError**"/>
-				</parameters>
-			</method>
-			<method name="check_validity" symbol="gda_sql_statement_check_validity">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-					<parameter name="cnc" type="GdaConnection*"/>
-					<parameter name="error" type="GError**"/>
-				</parameters>
-			</method>
-			<method name="copy" symbol="gda_sql_statement_copy">
-				<return-type type="GdaSqlStatement*"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-				</parameters>
-			</method>
-			<method name="free" symbol="gda_sql_statement_free">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-				</parameters>
-			</method>
-			<method name="get_contents_infos" symbol="gda_sql_statement_get_contents_infos">
-				<return-type type="GdaSqlStatementContentsInfo*"/>
-				<parameters>
-					<parameter name="type" type="GdaSqlStatementType"/>
-				</parameters>
-			</method>
-			<method name="new" symbol="gda_sql_statement_new">
-				<return-type type="GdaSqlStatement*"/>
-				<parameters>
-					<parameter name="type" type="GdaSqlStatementType"/>
-				</parameters>
-			</method>
-			<method name="normalize" symbol="gda_sql_statement_normalize">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-					<parameter name="cnc" type="GdaConnection*"/>
-					<parameter name="error" type="GError**"/>
-				</parameters>
-			</method>
-			<method name="serialize" symbol="gda_sql_statement_serialize">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-				</parameters>
-			</method>
-			<method name="string_to_type" symbol="gda_sql_statement_string_to_type">
-				<return-type type="GdaSqlStatementType"/>
-				<parameters>
-					<parameter name="type" type="gchar*"/>
-				</parameters>
-			</method>
-			<method name="trans_set_isol_level" symbol="gda_sql_statement_trans_set_isol_level">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-					<parameter name="level" type="GdaTransactionIsolation"/>
-				</parameters>
-			</method>
-			<method name="trans_take_mode" symbol="gda_sql_statement_trans_take_mode">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-					<parameter name="value" type="GValue*"/>
-				</parameters>
-			</method>
-			<method name="trans_take_name" symbol="gda_sql_statement_trans_take_name">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="stmt" type="GdaSqlStatement*"/>
-					<parameter name="value" type="GValue*"/>
-				</parameters>
-			</method>
-			<method name="type_to_string" symbol="gda_sql_statement_type_to_string">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="type" type="GdaSqlStatementType"/>
-				</parameters>
-			</method>
-			<field name="sql" type="gchar*"/>
-			<field name="stmt_type" type="GdaSqlStatementType"/>
-			<field name="contents" type="gpointer"/>
-			<field name="validity_meta_struct" type="GdaMetaStruct*"/>
-			<field name="_gda_reserved1" type="gpointer"/>
-			<field name="_gda_reserved2" type="gpointer"/>
-		</struct>
 		<struct name="GdaSqlStatementCheckValidityData">
 			<field name="cnc" type="GdaConnection*"/>
 			<field name="store" type="GdaMetaStore*"/>
@@ -2072,14 +2016,35 @@
 			<field name="_gda_reserved1" type="gpointer"/>
 			<field name="_gda_reserved2" type="gpointer"/>
 		</struct>
+		<struct name="GdaTreeMgrColumnsPriv">
+		</struct>
+		<struct name="GdaTreeMgrLabelPriv">
+		</struct>
+		<struct name="GdaTreeMgrSchemasPriv">
+		</struct>
+		<struct name="GdaTreeMgrSelectPriv">
+		</struct>
+		<struct name="GdaTreeMgrTablesPriv">
+		</struct>
 		<struct name="GdaValueList">
 		</struct>
+		<struct name="GdaVconnectionDataModelFilter">
+			<field name="nConstraint" type="int"/>
+			<field name="aConstraint" type="struct GdaVirtualConstraint*"/>
+			<field name="nOrderBy" type="int"/>
+			<field name="aOrderBy" type="struct GdaVirtualOrderby*"/>
+			<field name="aConstraintUsage" type="struct GdaVirtualConstraintUsage*"/>
+			<field name="idxNum" type="int"/>
+			<field name="idxPointer" type="gpointer"/>
+			<field name="orderByConsumed" type="gboolean"/>
+			<field name="estimatedCost" type="double"/>
+		</struct>
 		<struct name="GdaVconnectionDataModelSpec">
 			<field name="data_model" type="GdaDataModel*"/>
 			<field name="create_columns_func" type="GdaVconnectionDataModelCreateColumnsFunc"/>
 			<field name="create_model_func" type="GdaVconnectionDataModelCreateModelFunc"/>
-			<field name="_gda_reserved1" type="GCallback"/>
-			<field name="_gda_reserved2" type="GCallback"/>
+			<field name="create_filter_func" type="GdaVconnectionDataModelParseFilterFunc"/>
+			<field name="create_filtered_model_func" type="GdaVconnectionDataModelCreateFModelFunc"/>
 		</struct>
 		<struct name="GdaXaTransactionId">
 			<method name="to_string" symbol="gda_xa_transaction_id_to_string">
@@ -2239,51 +2204,217 @@
 				</parameters>
 			</method>
 		</boxed>
-		<boxed name="GdaTime" type-name="GdaTime" get-type="gda_time_get_type">
-			<method name="copy" symbol="gda_time_copy">
-				<return-type type="gpointer"/>
+		<boxed name="GdaSqlExpr" type-name="GdaSqlExpr" get-type="gda_sql_expr_get_type">
+			<method name="copy" symbol="gda_sql_expr_copy">
+				<return-type type="GdaSqlExpr*"/>
 				<parameters>
-					<parameter name="boxed" type="gpointer"/>
+					<parameter name="expr" type="GdaSqlExpr*"/>
 				</parameters>
 			</method>
-			<method name="free" symbol="gda_time_free">
+			<method name="free" symbol="gda_sql_expr_free">
 				<return-type type="void"/>
 				<parameters>
-					<parameter name="boxed" type="gpointer"/>
+					<parameter name="expr" type="GdaSqlExpr*"/>
 				</parameters>
 			</method>
-			<field name="hour" type="gushort"/>
-			<field name="minute" type="gushort"/>
-			<field name="second" type="gushort"/>
-			<field name="fraction" type="gulong"/>
-			<field name="timezone" type="glong"/>
-		</boxed>
-		<boxed name="GdaTimestamp" type-name="GdaTimestamp" get-type="gda_timestamp_get_type">
-			<method name="copy" symbol="gda_timestamp_copy">
-				<return-type type="gpointer"/>
+			<constructor name="new" symbol="gda_sql_expr_new">
+				<return-type type="GdaSqlExpr*"/>
 				<parameters>
-					<parameter name="boxed" type="gpointer"/>
+					<parameter name="parent" type="GdaSqlAnyPart*"/>
+				</parameters>
+			</constructor>
+			<method name="serialize" symbol="gda_sql_expr_serialize">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="expr" type="GdaSqlExpr*"/>
 				</parameters>
 			</method>
-			<method name="free" symbol="gda_timestamp_free">
+			<method name="take_select" symbol="gda_sql_expr_take_select">
 				<return-type type="void"/>
 				<parameters>
-					<parameter name="boxed" type="gpointer"/>
+					<parameter name="expr" type="GdaSqlExpr*"/>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
 				</parameters>
 			</method>
-			<field name="year" type="gshort"/>
-			<field name="month" type="gushort"/>
-			<field name="day" type="gushort"/>
-			<field name="hour" type="gushort"/>
-			<field name="minute" type="gushort"/>
-			<field name="second" type="gushort"/>
-			<field name="fraction" type="gulong"/>
-			<field name="timezone" type="glong"/>
-		</boxed>
-		<boxed name="GdaValueList" type-name="GdaValueList" get-type="gda_value_list_get_type">
+			<field name="any" type="GdaSqlAnyPart"/>
+			<field name="value" type="GValue*"/>
+			<field name="param_spec" type="GdaSqlParamSpec*"/>
+			<field name="func" type="GdaSqlFunction*"/>
+			<field name="cond" type="GdaSqlOperation*"/>
+			<field name="select" type="GdaSqlAnyPart*"/>
+			<field name="case_s" type="GdaSqlCase*"/>
+			<field name="cast_as" type="gchar*"/>
+			<field name="value_is_ident" type="gpointer"/>
+			<field name="_gda_reserved2" type="gpointer"/>
 		</boxed>
-		<enum name="GdaConfigError" type-name="GdaConfigError" get-type="gda_config_error_get_type">
-			<member name="GDA_CONFIG_DSN_NOT_FOUND_ERROR" value="0"/>
+		<boxed name="GdaSqlStatement" type-name="GdaSqlStatement" get-type="gda_sql_statement_get_type">
+			<method name="check_clean" symbol="gda_sql_statement_check_clean">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+				</parameters>
+			</method>
+			<method name="check_structure" symbol="gda_sql_statement_check_structure">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="check_validity" symbol="gda_sql_statement_check_validity">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="check_validity_m" symbol="gda_sql_statement_check_validity_m">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="mstruct" type="GdaMetaStruct*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="copy" symbol="gda_sql_statement_copy">
+				<return-type type="GdaSqlStatement*"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+				</parameters>
+			</method>
+			<method name="free" symbol="gda_sql_statement_free">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+				</parameters>
+			</method>
+			<method name="get_contents_infos" symbol="gda_sql_statement_get_contents_infos">
+				<return-type type="GdaSqlStatementContentsInfo*"/>
+				<parameters>
+					<parameter name="type" type="GdaSqlStatementType"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gda_sql_statement_new">
+				<return-type type="GdaSqlStatement*"/>
+				<parameters>
+					<parameter name="type" type="GdaSqlStatementType"/>
+				</parameters>
+			</constructor>
+			<method name="normalize" symbol="gda_sql_statement_normalize">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="serialize" symbol="gda_sql_statement_serialize">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+				</parameters>
+			</method>
+			<method name="string_to_type" symbol="gda_sql_statement_string_to_type">
+				<return-type type="GdaSqlStatementType"/>
+				<parameters>
+					<parameter name="type" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="trans_set_isol_level" symbol="gda_sql_statement_trans_set_isol_level">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="level" type="GdaTransactionIsolation"/>
+				</parameters>
+			</method>
+			<method name="trans_take_mode" symbol="gda_sql_statement_trans_take_mode">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="value" type="GValue*"/>
+				</parameters>
+			</method>
+			<method name="trans_take_name" symbol="gda_sql_statement_trans_take_name">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="stmt" type="GdaSqlStatement*"/>
+					<parameter name="value" type="GValue*"/>
+				</parameters>
+			</method>
+			<method name="type_to_string" symbol="gda_sql_statement_type_to_string">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="type" type="GdaSqlStatementType"/>
+				</parameters>
+			</method>
+			<field name="sql" type="gchar*"/>
+			<field name="stmt_type" type="GdaSqlStatementType"/>
+			<field name="contents" type="gpointer"/>
+			<field name="validity_meta_struct" type="GdaMetaStruct*"/>
+			<field name="_gda_reserved1" type="gpointer"/>
+			<field name="_gda_reserved2" type="gpointer"/>
+		</boxed>
+		<boxed name="GdaTime" type-name="GdaTime" get-type="gda_time_get_type">
+			<method name="copy" symbol="gda_time_copy">
+				<return-type type="gpointer"/>
+				<parameters>
+					<parameter name="boxed" type="gpointer"/>
+				</parameters>
+			</method>
+			<method name="free" symbol="gda_time_free">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="boxed" type="gpointer"/>
+				</parameters>
+			</method>
+			<method name="valid" symbol="gda_time_valid">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="time" type="GdaTime*"/>
+				</parameters>
+			</method>
+			<field name="hour" type="gushort"/>
+			<field name="minute" type="gushort"/>
+			<field name="second" type="gushort"/>
+			<field name="fraction" type="gulong"/>
+			<field name="timezone" type="glong"/>
+		</boxed>
+		<boxed name="GdaTimestamp" type-name="GdaTimestamp" get-type="gda_timestamp_get_type">
+			<method name="copy" symbol="gda_timestamp_copy">
+				<return-type type="gpointer"/>
+				<parameters>
+					<parameter name="boxed" type="gpointer"/>
+				</parameters>
+			</method>
+			<method name="free" symbol="gda_timestamp_free">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="boxed" type="gpointer"/>
+				</parameters>
+			</method>
+			<method name="valid" symbol="gda_timestamp_valid">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="timestamp" type="GdaTimestamp*"/>
+				</parameters>
+			</method>
+			<field name="year" type="gshort"/>
+			<field name="month" type="gushort"/>
+			<field name="day" type="gushort"/>
+			<field name="hour" type="gushort"/>
+			<field name="minute" type="gushort"/>
+			<field name="second" type="gushort"/>
+			<field name="fraction" type="gulong"/>
+			<field name="timezone" type="glong"/>
+		</boxed>
+		<boxed name="GdaValueList" type-name="GdaValueList" get-type="gda_value_list_get_type">
+		</boxed>
+		<enum name="GdaBatchError" type-name="GdaBatchError" get-type="gda_batch_error_get_type">
+			<member name="GDA_BATCH_CONFLICTING_PARAMETER_ERROR" value="0"/>
+		</enum>
+		<enum name="GdaConfigError" type-name="GdaConfigError" get-type="gda_config_error_get_type">
+			<member name="GDA_CONFIG_DSN_NOT_FOUND_ERROR" value="0"/>
 			<member name="GDA_CONFIG_PERMISSION_ERROR" value="1"/>
 			<member name="GDA_CONFIG_PROVIDER_NOT_FOUND_ERROR" value="2"/>
 			<member name="GDA_CONFIG_PROVIDER_CREATION_ERROR" value="3"/>
@@ -2296,6 +2427,10 @@
 			<member name="GDA_CONNECTION_NO_PROVIDER_SPEC_ERROR" value="4"/>
 			<member name="GDA_CONNECTION_OPEN_ERROR" value="5"/>
 			<member name="GDA_CONNECTION_STATEMENT_TYPE_ERROR" value="6"/>
+			<member name="GDA_CONNECTION_CANT_LOCK_ERROR" value="7"/>
+			<member name="GDA_CONNECTION_TASK_NOT_FOUND_ERROR" value="8"/>
+			<member name="GDA_CONNECTION_UNSUPPORTED_THREADS_ERROR" value="9"/>
+			<member name="GDA_CONNECTION_CLOSED_ERROR" value="10"/>
 		</enum>
 		<enum name="GdaConnectionEventCode" type-name="GdaConnectionEventCode" get-type="gda_connection_event_code_get_type">
 			<member name="GDA_CONNECTION_EVENT_CODE_CONSTRAINT_VIOLATION" value="0"/>
@@ -2341,7 +2476,8 @@
 			<member name="GDA_CONNECTION_FEATURE_USERS" value="13"/>
 			<member name="GDA_CONNECTION_FEATURE_VIEWS" value="14"/>
 			<member name="GDA_CONNECTION_FEATURE_XA_TRANSACTIONS" value="15"/>
-			<member name="GDA_CONNECTION_FEATURE_LAST" value="16"/>
+			<member name="GDA_CONNECTION_FEATURE_MULTI_THREADING" value="16"/>
+			<member name="GDA_CONNECTION_FEATURE_LAST" value="17"/>
 		</enum>
 		<enum name="GdaConnectionMetaType" type-name="GdaConnectionMetaType" get-type="gda_connection_meta_type_get_type">
 			<member name="GDA_CONNECTION_META_NAMESPACES" value="0"/>
@@ -2405,11 +2541,28 @@
 			<member name="GDA_DATA_PROXY_READ_ONLY_ROW" value="3"/>
 			<member name="GDA_DATA_PROXY_FILTER_ERROR" value="4"/>
 		</enum>
+		<enum name="GdaDataSelectError" type-name="GdaDataSelectError" get-type="gda_data_select_error_get_type">
+			<member name="GDA_DATA_SELECT_MODIFICATION_STATEMENT_ERROR" value="0"/>
+			<member name="GDA_DATA_SELECT_MISSING_MODIFICATION_STATEMENT_ERROR" value="1"/>
+			<member name="GDA_DATA_SELECT_CONNECTION_ERROR" value="2"/>
+			<member name="GDA_DATA_SELECT_ACCESS_ERROR" value="3"/>
+			<member name="GDA_DATA_SELECT_SQL_ERROR" value="4"/>
+			<member name="GDA_DATA_SELECT_SAFETY_LOCKED_ERROR" value="5"/>
+		</enum>
 		<enum name="GdaDiffType" type-name="GdaDiffType" get-type="gda_diff_type_get_type">
 			<member name="GDA_DIFF_ADD_ROW" value="0"/>
 			<member name="GDA_DIFF_REMOVE_ROW" value="1"/>
 			<member name="GDA_DIFF_MODIFY_ROW" value="2"/>
 		</enum>
+		<enum name="GdaEasyCreateTableFlag" type-name="GdaEasyCreateTableFlag" get-type="gda_easy_create_table_flag_get_type">
+			<member name="GDA_EASY_CREATE_TABLE_NOTHING_FLAG" value="1"/>
+			<member name="GDA_EASY_CREATE_TABLE_PKEY_FLAG" value="2"/>
+			<member name="GDA_EASY_CREATE_TABLE_NOT_NULL_FLAG" value="4"/>
+			<member name="GDA_EASY_CREATE_TABLE_UNIQUE_FLAG" value="8"/>
+			<member name="GDA_EASY_CREATE_TABLE_AUTOINC_FLAG" value="16"/>
+			<member name="GDA_EASY_CREATE_TABLE_FKEY_FLAG" value="32"/>
+			<member name="GDA_EASY_CREATE_TABLE_PKEY_AUTOINC_FLAG" value="18"/>
+		</enum>
 		<enum name="GdaEasyError" type-name="GdaEasyError" get-type="gda_easy_error_get_type">
 			<member name="GDA_EASY_OBJECT_NAME_ERROR" value="0"/>
 			<member name="GDA_EASY_INCORRECT_VALUE_ERROR" value="1"/>
@@ -2425,6 +2578,15 @@
 			<member name="GDA_META_DB_TABLE" value="1"/>
 			<member name="GDA_META_DB_VIEW" value="2"/>
 		</enum>
+		<enum name="GdaMetaForeignKeyPolicy" type-name="GdaMetaForeignKeyPolicy" get-type="gda_meta_foreign_key_policy_get_type">
+			<member name="GDA_META_FOREIGN_KEY_UNKNOWN" value="0"/>
+			<member name="GDA_META_FOREIGN_KEY_NONE" value="1"/>
+			<member name="GDA_META_FOREIGN_KEY_NO_ACTION" value="2"/>
+			<member name="GDA_META_FOREIGN_KEY_RESTRICT" value="3"/>
+			<member name="GDA_META_FOREIGN_KEY_CASCADE" value="4"/>
+			<member name="GDA_META_FOREIGN_KEY_SET_NULL" value="5"/>
+			<member name="GDA_META_FOREIGN_KEY_SET_DEFAULT" value="6"/>
+		</enum>
 		<enum name="GdaMetaSortType" type-name="GdaMetaSortType" get-type="gda_meta_sort_type_get_type">
 			<member name="GDA_META_SORT_ALHAPETICAL" value="0"/>
 			<member name="GDA_META_SORT_DEPENDENCIES" value="1"/>
@@ -2463,6 +2625,10 @@
 			<member name="GDA_LIBEXEC_DIR" value="6"/>
 			<member name="GDA_ETC_DIR" value="7"/>
 		</enum>
+		<enum name="GdaServerOperationError" type-name="GdaServerOperationError" get-type="gda_server_operation_error_get_type">
+			<member name="GDA_SERVER_OPERATION_OBJECT_NAME_ERROR" value="0"/>
+			<member name="GDA_SERVER_OPERATION_INCORRECT_VALUE_ERROR" value="1"/>
+		</enum>
 		<enum name="GdaServerOperationNodeStatus" type-name="GdaServerOperationNodeStatus" get-type="gda_server_operation_node_status_get_type">
 			<member name="GDA_SERVER_OPERATION_STATUS_OPTIONAL" value="0"/>
 			<member name="GDA_SERVER_OPERATION_STATUS_REQUIRED" value="1"/>
@@ -2489,7 +2655,12 @@
 			<member name="GDA_SERVER_OPERATION_DROP_INDEX" value="8"/>
 			<member name="GDA_SERVER_OPERATION_CREATE_VIEW" value="9"/>
 			<member name="GDA_SERVER_OPERATION_DROP_VIEW" value="10"/>
-			<member name="GDA_SERVER_OPERATION_LAST" value="11"/>
+			<member name="GDA_SERVER_OPERATION_COMMENT_TABLE" value="11"/>
+			<member name="GDA_SERVER_OPERATION_COMMENT_COLUMN" value="12"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_USER" value="13"/>
+			<member name="GDA_SERVER_OPERATION_ALTER_USER" value="14"/>
+			<member name="GDA_SERVER_OPERATION_DROP_USER" value="15"/>
+			<member name="GDA_SERVER_OPERATION_LAST" value="16"/>
 		</enum>
 		<enum name="GdaServerProviderError" type-name="GdaServerProviderError" get-type="gda_server_provider_error_get_type">
 			<member name="GDA_SERVER_PROVIDER_METHOD_NON_IMPLEMENTED_ERROR" value="0"/>
@@ -2503,11 +2674,13 @@
 			<member name="GDA_SERVER_PROVIDER_NON_SUPPORTED_ERROR" value="8"/>
 			<member name="GDA_SERVER_PROVIDER_SERVER_VERSION_ERROR" value="9"/>
 			<member name="GDA_SERVER_PROVIDER_DATA_ERROR" value="10"/>
+			<member name="GDA_SERVER_PROVIDER_DEFAULT_VALUE_HANDLING_ERROR" value="11"/>
 		</enum>
 		<enum name="GdaSetError" type-name="GdaSetError" get-type="gda_set_error_get_type">
 			<member name="GDA_SET_XML_SPEC_ERROR" value="0"/>
 			<member name="GDA_SET_HOLDER_NOT_FOUND_ERROR" value="1"/>
 			<member name="GDA_SET_INVALID_ERROR" value="2"/>
+			<member name="GDA_SET_READ_ONLY_ERROR" value="3"/>
 		</enum>
 		<enum name="GdaSqlAnyPartType" type-name="GdaSqlAnyPartType" get-type="gda_sql_any_part_type_get_type">
 			<member name="GDA_SQL_ANY_STMT_SELECT" value="0"/>
@@ -2534,7 +2707,17 @@
 			<member name="GDA_SQL_ANY_SQL_SELECT_FROM" value="509"/>
 			<member name="GDA_SQL_ANY_SQL_SELECT_ORDER" value="510"/>
 		</enum>
-		<enum name="GdaSqlErrorType" type-name="GdaSqlErrorType" get-type="gda_sql_error_type_get_type">
+		<enum name="GdaSqlBuilderError" type-name="GdaSqlBuilderError" get-type="gda_sql_builder_error_get_type">
+			<member name="GDA_SQL_BUILDER_WRONG_TYPE_ERROR" value="0"/>
+			<member name="GDA_SQL_BUILDER_MISUSE_ERROR" value="1"/>
+		</enum>
+		<enum name="GdaSqlError" type-name="GdaSqlError" get-type="gda_sql_error_type_get_type">
+			<member name="GDA_SQL_STRUCTURE_CONTENTS_ERROR" value="0"/>
+			<member name="GDA_SQL_MALFORMED_IDENTIFIER_ERROR" value="1"/>
+			<member name="GDA_SQL_MISSING_IDENTIFIER_ERROR" value="2"/>
+			<member name="GDA_SQL_VALIDATION_ERROR" value="3"/>
+		</enum>
+		<enum name="GdaSqlError" type-name="GdaSqlError" get-type="gda_sql_error_get_type">
 			<member name="GDA_SQL_STRUCTURE_CONTENTS_ERROR" value="0"/>
 			<member name="GDA_SQL_MALFORMED_IDENTIFIER_ERROR" value="1"/>
 			<member name="GDA_SQL_MISSING_IDENTIFIER_ERROR" value="2"/>
@@ -2628,6 +2811,9 @@
 			<member name="GDA_STATEMENT_PARAM_TYPE_ERROR" value="5"/>
 			<member name="GDA_STATEMENT_PARAM_ERROR" value="6"/>
 		</enum>
+		<enum name="GdaThreadWrapperError">
+			<member name="GDA_THREAD_WRAPPER_UNKNOWN_ERROR" value="0"/>
+		</enum>
 		<enum name="GdaTransactionIsolation" type-name="GdaTransactionIsolation" get-type="gda_transaction_isolation_get_type">
 			<member name="GDA_TRANSACTION_ISOLATION_UNKNOWN" value="0"/>
 			<member name="GDA_TRANSACTION_ISOLATION_READ_COMMITTED" value="1"/>
@@ -2644,14 +2830,27 @@
 			<member name="GDA_TRANSACTION_STATUS_STATE_OK" value="0"/>
 			<member name="GDA_TRANSACTION_STATUS_STATE_FAILED" value="1"/>
 		</enum>
+		<enum name="GdaTreeError" type-name="GdaTreeError" get-type="gda_tree_error_get_type">
+			<member name="GDA_TREE_UNKNOWN_ERROR" value="0"/>
+		</enum>
+		<enum name="GdaTreeManagerError" type-name="GdaTreeManagerError" get-type="gda_tree_manager_error_get_type">
+			<member name="GDA_TREE_MANAGER_UNKNOWN_ERROR" value="0"/>
+		</enum>
+		<enum name="GdaTreeNodeError" type-name="GdaTreeNodeError" get-type="gda_tree_node_error_get_type">
+			<member name="GDA_TREE_NODE_UNKNOWN_ERROR" value="0"/>
+		</enum>
 		<enum name="GdaXaTransactionError" type-name="GdaXaTransactionError" get-type="gda_xa_transaction_error_get_type">
 			<member name="GDA_XA_TRANSACTION_ALREADY_REGISTERED_ERROR" value="0"/>
 			<member name="GDA_XA_TRANSACTION_DTP_NOT_SUPPORTED_ERROR" value="1"/>
+			<member name="GDA_XA_TRANSACTION_CONNECTION_BRANCH_LENGTH_ERROR" value="2"/>
 		</enum>
 		<flags name="GdaConnectionOptions" type-name="GdaConnectionOptions" get-type="gda_connection_options_get_type">
 			<member name="GDA_CONNECTION_OPTIONS_NONE" value="0"/>
 			<member name="GDA_CONNECTION_OPTIONS_READ_ONLY" value="1"/>
 			<member name="GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE" value="2"/>
+			<member name="GDA_CONNECTION_OPTIONS_THREAD_SAFE" value="4"/>
+			<member name="GDA_CONNECTION_OPTIONS_THREAD_ISOLATED" value="8"/>
+			<member name="GDA_CONNECTION_OPTIONS_AUTO_META_DATA" value="16"/>
 		</flags>
 		<flags name="GdaDataModelAccessFlags" type-name="GdaDataModelAccessFlags" get-type="gda_data_model_access_flags_get_type">
 			<member name="GDA_DATA_MODEL_ACCESS_RANDOM" value="1"/>
@@ -2664,15 +2863,6 @@
 			<member name="GDA_DATA_MODEL_ACCESS_WRITE" value="56"/>
 			<member name="GDA_DATA_MODEL_ACCESS_DELETE" value="32"/>
 		</flags>
-		<flags name="GdaEasyCreateTableFlag" type-name="GdaEasyCreateTableFlag" get-type="gda_easy_create_table_flag_get_type">
-			<member name="GDA_EASY_CREATE_TABLE_NOTHING_FLAG" value="1"/>
-			<member name="GDA_EASY_CREATE_TABLE_PKEY_FLAG" value="2"/>
-			<member name="GDA_EASY_CREATE_TABLE_NOT_NULL_FLAG" value="4"/>
-			<member name="GDA_EASY_CREATE_TABLE_UNIQUE_FLAG" value="8"/>
-			<member name="GDA_EASY_CREATE_TABLE_AUTOINC_FLAG" value="16"/>
-			<member name="GDA_EASY_CREATE_TABLE_FKEY_FLAG" value="32"/>
-			<member name="GDA_EASY_CREATE_TABLE_PKEY_AUTOINC_FLAG" value="18"/>
-		</flags>
 		<flags name="GdaMetaGraphInfo" type-name="GdaMetaGraphInfo" get-type="gda_meta_graph_info_get_type">
 			<member name="GDA_META_GRAPH_COLUMNS" value="1"/>
 		</flags>
@@ -2683,6 +2873,15 @@
 			<member name="GDA_META_STRUCT_FEATURE_ALL" value="3"/>
 			<member name="GDA_META_STRUCT_FEATURE_VIEW_DEPENDENCIES" value="2"/>
 		</flags>
+		<flags name="GdaServerOperationCreateTableFlag" type-name="GdaServerOperationCreateTableFlag" get-type="gda_server_operation_create_table_flag_get_type">
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_NOTHING_FLAG" value="1"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_PKEY_FLAG" value="2"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_NOT_NULL_FLAG" value="4"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_UNIQUE_FLAG" value="8"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_AUTOINC_FLAG" value="16"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG" value="32"/>
+			<member name="GDA_SERVER_OPERATION_CREATE_TABLE_PKEY_AUTOINC_FLAG" value="18"/>
+		</flags>
 		<flags name="GdaSqlIdentifierStyle" type-name="GdaSqlIdentifierStyle" get-type="gda_sql_identifier_style_get_type">
 			<member name="GDA_SQL_IDENTIFIERS_LOWER_CASE" value="1"/>
 			<member name="GDA_SQL_IDENTIFIERS_UPPER_CASE" value="2"/>
@@ -2695,6 +2894,7 @@
 			<member name="GDA_STATEMENT_MODEL_ALLOW_NOPARAM" value="8"/>
 		</flags>
 		<flags name="GdaStatementSqlFlag" type-name="GdaStatementSqlFlag" get-type="gda_statement_sql_flag_get_type">
+			<member name="GDA_STATEMENT_SQL_PARAMS_AS_VALUES" value="0"/>
 			<member name="GDA_STATEMENT_SQL_PRETTY" value="1"/>
 			<member name="GDA_STATEMENT_SQL_PARAMS_LONG" value="2"/>
 			<member name="GDA_STATEMENT_SQL_PARAMS_SHORT" value="4"/>
@@ -3100,6 +3300,35 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</method>
+			<method name="async_cancel" symbol="gda_connection_async_cancel">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="task_id" type="guint"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="async_fetch_result" symbol="gda_connection_async_fetch_result">
+				<return-type type="GObject*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="task_id" type="guint"/>
+					<parameter name="last_insert_row" type="GdaSet**"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="async_statement_execute" symbol="gda_connection_async_statement_execute">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="stmt" type="GdaStatement*"/>
+					<parameter name="params" type="GdaSet*"/>
+					<parameter name="model_usage" type="GdaStatementModelUsage"/>
+					<parameter name="col_types" type="GType*"/>
+					<parameter name="need_last_insert_row" type="gboolean"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="batch_execute" symbol="gda_connection_batch_execute">
 				<return-type type="GSList*"/>
 				<parameters>
@@ -3154,6 +3383,16 @@
 					<parameter name="cnc" type="GdaConnection*"/>
 				</parameters>
 			</method>
+			<method name="delete_row_from_table" symbol="gda_connection_delete_row_from_table">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="condition_column_name" type="gchar*"/>
+					<parameter name="condition_value" type="GValue*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="delete_savepoint" symbol="gda_connection_delete_savepoint">
 				<return-type type="gboolean"/>
 				<parameters>
@@ -3165,6 +3404,22 @@
 			<method name="error_quark" symbol="gda_connection_error_quark">
 				<return-type type="GQuark"/>
 			</method>
+			<method name="execute_non_select_command" symbol="gda_connection_execute_non_select_command">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="sql" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="execute_select_command" symbol="gda_connection_execute_select_command">
+				<return-type type="GdaDataModel*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="sql" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="get_authentication" symbol="gda_connection_get_authentication">
 				<return-type type="gchar*"/>
 				<parameters>
@@ -3237,6 +3492,24 @@
 					<parameter name="cnc" type="GdaConnection*"/>
 				</parameters>
 			</method>
+			<method name="insert_row_into_table" symbol="gda_connection_insert_row_into_table">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="insert_row_into_table_v" symbol="gda_connection_insert_row_into_table_v">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="col_names" type="GSList*"/>
+					<parameter name="values" type="GSList*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="is_opened" symbol="gda_connection_is_opened">
 				<return-type type="gboolean"/>
 				<parameters>
@@ -3269,6 +3542,15 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</method>
+			<method name="parse_sql_string" symbol="gda_connection_parse_sql_string">
+				<return-type type="GdaStatement*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="sql" type="gchar*"/>
+					<parameter name="params" type="GdaSet**"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="perform_operation" symbol="gda_connection_perform_operation">
 				<return-type type="gboolean"/>
 				<parameters>
@@ -3284,8 +3566,19 @@
 					<parameter name="id" type="gchar*"/>
 				</parameters>
 			</method>
-			<method name="rollback_savepoint" symbol="gda_connection_rollback_savepoint">
-				<return-type type="gboolean"/>
+			<method name="repetitive_statement_execute" symbol="gda_connection_repetitive_statement_execute">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="rstmt" type="GdaRepetitiveStatement*"/>
+					<parameter name="model_usage" type="GdaStatementModelUsage"/>
+					<parameter name="col_types" type="GType*"/>
+					<parameter name="stop_on_error" type="gboolean"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="rollback_savepoint" symbol="gda_connection_rollback_savepoint">
+				<return-type type="gboolean"/>
 				<parameters>
 					<parameter name="cnc" type="GdaConnection*"/>
 					<parameter name="name" type="gchar*"/>
@@ -3395,6 +3688,28 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</method>
+			<method name="update_row_in_table" symbol="gda_connection_update_row_in_table">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="condition_column_name" type="gchar*"/>
+					<parameter name="condition_value" type="GValue*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="update_row_in_table_v" symbol="gda_connection_update_row_in_table_v">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="condition_column_name" type="gchar*"/>
+					<parameter name="condition_value" type="GValue*"/>
+					<parameter name="col_names" type="GSList*"/>
+					<parameter name="values" type="GSList*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="value_to_sql_string" symbol="gda_connection_value_to_sql_string">
 				<return-type type="gchar*"/>
 				<parameters>
@@ -3405,7 +3720,10 @@
 			<property name="auth-string" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
 			<property name="cnc-string" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
 			<property name="dsn" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="events-history-size" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="is-wrapper" type="gboolean" readable="1" writable="1" construct="0" construct-only="1"/>
 			<property name="meta-store" type="GdaMetaStore*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="monitor-wrapped-in-mainloop" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
 			<property name="options" type="GdaConnectionOptions" readable="1" writable="1" construct="0" construct-only="0"/>
 			<property name="provider" type="GdaServerProvider*" readable="1" writable="1" construct="0" construct-only="0"/>
 			<property name="thread-owner" type="gpointer" readable="1" writable="1" construct="0" construct-only="0"/>
@@ -3642,84 +3960,6 @@
 			<property name="n-columns" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
 			<property name="read-only" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
 		</object>
-		<object name="GdaDataModelBdb" parent="GObject" type-name="GdaDataModelBdb" get-type="gda_data_model_bdb_get_type">
-			<implements>
-				<interface name="GdaDataModel"/>
-			</implements>
-			<method name="clean_errors" symbol="gda_data_model_bdb_clean_errors">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-				</parameters>
-			</method>
-			<method name="get_errors" symbol="gda_data_model_bdb_get_errors">
-				<return-type type="GSList*"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-				</parameters>
-			</method>
-			<constructor name="new" symbol="gda_data_model_bdb_new">
-				<return-type type="GdaDataModel*"/>
-				<parameters>
-					<parameter name="filename" type="gchar*"/>
-					<parameter name="db_name" type="gchar*"/>
-				</parameters>
-			</constructor>
-			<property name="db-name" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
-			<property name="filename" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
-			<vfunc name="create_data_columns">
-				<return-type type="GSList*"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="create_key_columns">
-				<return-type type="GSList*"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="get_data_part">
-				<return-type type="GValue*"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-					<parameter name="data" type="gpointer"/>
-					<parameter name="length" type="gint"/>
-					<parameter name="part" type="gint"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="get_key_part">
-				<return-type type="GValue*"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-					<parameter name="data" type="gpointer"/>
-					<parameter name="length" type="gint"/>
-					<parameter name="part" type="gint"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="update_data_part">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-					<parameter name="data" type="gpointer"/>
-					<parameter name="length" type="gint"/>
-					<parameter name="part" type="gint"/>
-					<parameter name="value" type="GValue*"/>
-					<parameter name="error" type="GError**"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="update_key_part">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="model" type="GdaDataModelBdb*"/>
-					<parameter name="data" type="gpointer"/>
-					<parameter name="length" type="gint"/>
-					<parameter name="part" type="gint"/>
-					<parameter name="value" type="GValue*"/>
-					<parameter name="error" type="GError**"/>
-				</parameters>
-			</vfunc>
-		</object>
 		<object name="GdaDataModelDir" parent="GObject" type-name="GdaDataModelDir" get-type="gda_data_model_dir_get_type">
 			<implements>
 				<interface name="GdaDataModel"/>
@@ -3816,6 +4056,7 @@
 			<property name="filename" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
 			<property name="options" type="GdaSet*" readable="1" writable="1" construct="0" construct-only="1"/>
 			<property name="random-access" type="gboolean" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="strict" type="gboolean" readable="1" writable="1" construct="1" construct-only="0"/>
 			<property name="xml-node" type="gpointer" readable="1" writable="1" construct="0" construct-only="1"/>
 		</object>
 		<object name="GdaDataModelIter" parent="GdaSet" type-name="GdaDataModelIter" get-type="gda_data_model_iter_get_type">
@@ -4232,6 +4473,20 @@
 					<parameter name="rownum" type="gint"/>
 				</parameters>
 			</method>
+			<method name="rerun" symbol="gda_data_select_rerun">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="model" type="GdaDataSelect*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="set_columns" symbol="gda_data_select_set_columns">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="model" type="GdaDataSelect*"/>
+					<parameter name="columns" type="GSList*"/>
+				</parameters>
+			</method>
 			<method name="set_modification_statement" symbol="gda_data_select_set_modification_statement">
 				<return-type type="gboolean"/>
 				<parameters>
@@ -4649,6 +4904,24 @@
 					<parameter name="table_name" type="gchar*"/>
 				</parameters>
 			</method>
+			<method name="declare_foreign_key" symbol="gda_meta_store_declare_foreign_key">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="store" type="GdaMetaStore*"/>
+					<parameter name="mstruct" type="GdaMetaStruct*"/>
+					<parameter name="fk_name" type="gchar*"/>
+					<parameter name="catalog" type="gchar*"/>
+					<parameter name="schema" type="gchar*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="ref_catalog" type="gchar*"/>
+					<parameter name="ref_schema" type="gchar*"/>
+					<parameter name="ref_table" type="gchar*"/>
+					<parameter name="nb_cols" type="guint"/>
+					<parameter name="colnames" type="gchar**"/>
+					<parameter name="ref_colnames" type="gchar**"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="error_quark" symbol="gda_meta_store_error_quark">
 				<return-type type="GQuark"/>
 			</method>
@@ -4757,6 +5030,13 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</method>
+			<method name="set_identifiers_style" symbol="gda_meta_store_set_identifiers_style">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="store" type="GdaMetaStore*"/>
+					<parameter name="style" type="GdaSqlIdentifierStyle"/>
+				</parameters>
+			</method>
 			<method name="set_reserved_keywords_func" symbol="gda_meta_store_set_reserved_keywords_func">
 				<return-type type="void"/>
 				<parameters>
@@ -4771,6 +5051,21 @@
 					<parameter name="cnc" type="GdaConnection*"/>
 				</parameters>
 			</method>
+			<method name="undeclare_foreign_key" symbol="gda_meta_store_undeclare_foreign_key">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="store" type="GdaMetaStore*"/>
+					<parameter name="mstruct" type="GdaMetaStruct*"/>
+					<parameter name="fk_name" type="gchar*"/>
+					<parameter name="catalog" type="gchar*"/>
+					<parameter name="schema" type="gchar*"/>
+					<parameter name="table" type="gchar*"/>
+					<parameter name="ref_catalog" type="gchar*"/>
+					<parameter name="ref_schema" type="gchar*"/>
+					<parameter name="ref_table" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<property name="catalog" type="char*" readable="0" writable="1" construct="0" construct-only="1"/>
 			<property name="cnc" type="GdaConnection*" readable="1" writable="1" construct="0" construct-only="1"/>
 			<property name="cnc-string" type="char*" readable="0" writable="1" construct="0" construct-only="1"/>
@@ -4918,6 +5213,37 @@
 			<field name="types" type="GType*"/>
 			<field name="tmpl_columns" type="GSList*"/>
 		</object>
+		<object name="GdaRepetitiveStatement" parent="GObject" type-name="GdaRepetitiveStatement" get-type="gda_repetitive_statement_get_type">
+			<method name="append_set" symbol="gda_repetitive_statement_append_set">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="rstmt" type="GdaRepetitiveStatement*"/>
+					<parameter name="values" type="GdaSet*"/>
+					<parameter name="make_copy" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="get_all_sets" symbol="gda_repetitive_statement_get_all_sets">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="rstmt" type="GdaRepetitiveStatement*"/>
+				</parameters>
+			</method>
+			<method name="get_template_set" symbol="gda_repetitive_statement_get_template_set">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="rstmt" type="GdaRepetitiveStatement*"/>
+					<parameter name="set" type="GdaSet**"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gda_repetitive_statement_new">
+				<return-type type="GdaRepetitiveStatement*"/>
+				<parameters>
+					<parameter name="stmt" type="GdaStatement*"/>
+				</parameters>
+			</constructor>
+			<property name="statement" type="GdaStatement*" readable="1" writable="1" construct="0" construct-only="1"/>
+		</object>
 		<object name="GdaRow" parent="GObject" type-name="GdaRow" get-type="gda_row_get_type">
 			<method name="get_length" symbol="gda_row_get_length">
 				<return-type type="gint"/>
@@ -4959,7 +5285,7 @@
 				<return-type type="guint"/>
 				<parameters>
 					<parameter name="op" type="GdaServerOperation*"/>
-					<parameter name="path" type="gchar*"/>
+					<parameter name="seq_path" type="gchar*"/>
 				</parameters>
 			</method>
 			<method name="del_item_from_sequence" symbol="gda_server_operation_del_item_from_sequence">
@@ -4969,6 +5295,9 @@
 					<parameter name="item_path" type="gchar*"/>
 				</parameters>
 			</method>
+			<method name="error_quark" symbol="gda_server_operation_error_quark">
+				<return-type type="GQuark"/>
+			</method>
 			<method name="get_node_info" symbol="gda_server_operation_get_node_info">
 				<return-type type="GdaServerOperationNode*"/>
 				<parameters>
@@ -5090,6 +5419,68 @@
 					<parameter name="type" type="GdaServerOperationType"/>
 				</parameters>
 			</method>
+			<method name="perform_create_database" symbol="gda_server_operation_perform_create_database">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="op" type="GdaServerOperation*"/>
+					<parameter name="provider" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="perform_create_table" symbol="gda_server_operation_perform_create_table">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="op" type="GdaServerOperation*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="perform_drop_database" symbol="gda_server_operation_perform_drop_database">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="op" type="GdaServerOperation*"/>
+					<parameter name="provider" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="perform_drop_table" symbol="gda_server_operation_perform_drop_table">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="op" type="GdaServerOperation*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="prepare_create_database" symbol="gda_server_operation_prepare_create_database">
+				<return-type type="GdaServerOperation*"/>
+				<parameters>
+					<parameter name="provider" type="gchar*"/>
+					<parameter name="db_name" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="prepare_create_table" symbol="gda_server_operation_prepare_create_table">
+				<return-type type="GdaServerOperation*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table_name" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="prepare_drop_database" symbol="gda_server_operation_prepare_drop_database">
+				<return-type type="GdaServerOperation*"/>
+				<parameters>
+					<parameter name="provider" type="gchar*"/>
+					<parameter name="db_name" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="prepare_drop_table" symbol="gda_server_operation_prepare_drop_table">
+				<return-type type="GdaServerOperation*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="table_name" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="save_data_to_xml" symbol="gda_server_operation_save_data_to_xml">
 				<return-type type="xmlNodePtr"/>
 				<parameters>
@@ -5106,6 +5497,12 @@
 					<parameter name="path_format" type="gchar*"/>
 				</parameters>
 			</method>
+			<method name="string_to_op_type" symbol="gda_server_operation_string_to_op_type">
+				<return-type type="GdaServerOperationType"/>
+				<parameters>
+					<parameter name="str" type="gchar*"/>
+				</parameters>
+			</method>
 			<property name="connection" type="GdaConnection*" readable="1" writable="1" construct="0" construct-only="1"/>
 			<property name="op-type" type="gint" readable="1" writable="1" construct="0" construct-only="1"/>
 			<property name="provider" type="GdaServerProvider*" readable="1" writable="1" construct="0" construct-only="1"/>
@@ -5483,6 +5880,14 @@
 					<parameter name="provider" type="GdaServerProvider*"/>
 				</parameters>
 			</vfunc>
+			<vfunc name="handle_async">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="provider" type="GdaServerProvider*"/>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</vfunc>
 			<vfunc name="identifier_quote">
 				<return-type type="gchar*"/>
 				<parameters>
@@ -5577,6 +5982,16 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</vfunc>
+			<vfunc name="statement_rewrite">
+				<return-type type="GdaSqlStatement*"/>
+				<parameters>
+					<parameter name="provider" type="GdaServerProvider*"/>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="stmt" type="GdaStatement*"/>
+					<parameter name="params" type="GdaSet*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</vfunc>
 			<vfunc name="statement_to_sql">
 				<return-type type="gchar*"/>
 				<parameters>
@@ -5660,6 +6075,13 @@
 					<parameter name="holder" type="GdaHolder*"/>
 				</parameters>
 			</method>
+			<method name="get_nth_holder" symbol="gda_set_get_nth_holder">
+				<return-type type="GdaHolder*"/>
+				<parameters>
+					<parameter name="set" type="GdaSet*"/>
+					<parameter name="pos" type="gint"/>
+				</parameters>
+			</method>
 			<method name="get_source" symbol="gda_set_get_source">
 				<return-type type="GdaSetSource*"/>
 				<parameters>
@@ -5714,6 +6136,12 @@
 					<parameter name="nb" type="gint"/>
 				</parameters>
 			</constructor>
+			<constructor name="new_read_only" symbol="gda_set_new_read_only">
+				<return-type type="GdaSet*"/>
+				<parameters>
+					<parameter name="holders" type="GSList*"/>
+				</parameters>
+			</constructor>
 			<method name="remove_holder" symbol="gda_set_remove_holder">
 				<return-type type="void"/>
 				<parameters>
@@ -5721,6 +6149,14 @@
 					<parameter name="holder" type="GdaHolder*"/>
 				</parameters>
 			</method>
+			<method name="replace_source_model" symbol="gda_set_replace_source_model">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="set" type="GdaSet*"/>
+					<parameter name="source" type="GdaSetSource*"/>
+					<parameter name="model" type="GdaDataModel*"/>
+				</parameters>
+			</method>
 			<method name="set_holder_value" symbol="gda_set_set_holder_value">
 				<return-type type="gboolean"/>
 				<parameters>
@@ -5749,12 +6185,26 @@
 					<parameter name="holder" type="GdaHolder*"/>
 				</parameters>
 			</signal>
+			<signal name="holder-type-set" when="FIRST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="set" type="GdaSet*"/>
+					<parameter name="holder" type="GdaHolder*"/>
+				</parameters>
+			</signal>
 			<signal name="public-data-changed" when="FIRST">
 				<return-type type="void"/>
 				<parameters>
 					<parameter name="set" type="GdaSet*"/>
 				</parameters>
 			</signal>
+			<signal name="source-model-changed" when="FIRST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="set" type="GdaSet*"/>
+					<parameter name="source" type="gpointer"/>
+				</parameters>
+			</signal>
 			<signal name="validate-holder-change" when="LAST">
 				<return-type type="GdaError*"/>
 				<parameters>
@@ -5774,46 +6224,320 @@
 			<field name="sources_list" type="GSList*"/>
 			<field name="groups_list" type="GSList*"/>
 		</object>
-		<object name="GdaSqlParser" parent="GObject" type-name="GdaSqlParser" get-type="gda_sql_parser_get_type">
-			<implements>
-				<interface name="GdaLockable"/>
-			</implements>
-			<method name="error_quark" symbol="gda_sql_parser_error_quark">
-				<return-type type="GQuark"/>
-			</method>
-			<constructor name="new" symbol="gda_sql_parser_new">
-				<return-type type="GdaSqlParser*"/>
-			</constructor>
-			<method name="parse_file_as_batch" symbol="gda_sql_parser_parse_file_as_batch">
-				<return-type type="GdaBatch*"/>
+		<object name="GdaSqlBuilder" parent="GObject" type-name="GdaSqlBuilder" get-type="gda_sql_builder_get_type">
+			<method name="add_case" symbol="gda_sql_builder_add_case">
+				<return-type type="GdaSqlBuilderId"/>
 				<parameters>
-					<parameter name="parser" type="GdaSqlParser*"/>
-					<parameter name="filename" type="gchar*"/>
-					<parameter name="error" type="GError**"/>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="test_expr" type="GdaSqlBuilderId"/>
+					<parameter name="else_expr" type="GdaSqlBuilderId"/>
 				</parameters>
 			</method>
-			<method name="parse_string" symbol="gda_sql_parser_parse_string">
-				<return-type type="GdaStatement*"/>
+			<method name="add_case_v" symbol="gda_sql_builder_add_case_v">
+				<return-type type="GdaSqlBuilderId"/>
 				<parameters>
-					<parameter name="parser" type="GdaSqlParser*"/>
-					<parameter name="sql" type="gchar*"/>
-					<parameter name="remain" type="gchar**"/>
-					<parameter name="error" type="GError**"/>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="test_expr" type="GdaSqlBuilderId"/>
+					<parameter name="else_expr" type="GdaSqlBuilderId"/>
+					<parameter name="when_array" type="GdaSqlBuilderId*"/>
+					<parameter name="then_array" type="GdaSqlBuilderId*"/>
+					<parameter name="args_size" type="gint"/>
 				</parameters>
 			</method>
-			<method name="parse_string_as_batch" symbol="gda_sql_parser_parse_string_as_batch">
-				<return-type type="GdaBatch*"/>
+			<method name="add_cond" symbol="gda_sql_builder_add_cond">
+				<return-type type="GdaSqlBuilderId"/>
 				<parameters>
-					<parameter name="parser" type="GdaSqlParser*"/>
-					<parameter name="sql" type="gchar*"/>
-					<parameter name="remain" type="gchar**"/>
-					<parameter name="error" type="GError**"/>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="op" type="GdaSqlOperatorType"/>
+					<parameter name="op1" type="GdaSqlBuilderId"/>
+					<parameter name="op2" type="GdaSqlBuilderId"/>
+					<parameter name="op3" type="GdaSqlBuilderId"/>
 				</parameters>
 			</method>
-			<method name="set_overflow_error" symbol="gda_sql_parser_set_overflow_error">
-				<return-type type="void"/>
+			<method name="add_cond_v" symbol="gda_sql_builder_add_cond_v">
+				<return-type type="GdaSqlBuilderId"/>
 				<parameters>
-					<parameter name="parser" type="GdaSqlParser*"/>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="op" type="GdaSqlOperatorType"/>
+					<parameter name="op_ids" type="GdaSqlBuilderId*"/>
+					<parameter name="op_ids_size" type="gint"/>
+				</parameters>
+			</method>
+			<method name="add_expr" symbol="gda_sql_builder_add_expr">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="dh" type="GdaDataHandler*"/>
+					<parameter name="type" type="GType"/>
+				</parameters>
+			</method>
+			<method name="add_expr_value" symbol="gda_sql_builder_add_expr_value">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="dh" type="GdaDataHandler*"/>
+					<parameter name="value" type="GValue*"/>
+				</parameters>
+			</method>
+			<method name="add_field_id" symbol="gda_sql_builder_add_field_id">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="field_name" type="gchar*"/>
+					<parameter name="table_name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="add_field_value" symbol="gda_sql_builder_add_field_value">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="field_name" type="gchar*"/>
+					<parameter name="type" type="GType"/>
+				</parameters>
+			</method>
+			<method name="add_field_value_as_gvalue" symbol="gda_sql_builder_add_field_value_as_gvalue">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="field_name" type="gchar*"/>
+					<parameter name="value" type="GValue*"/>
+				</parameters>
+			</method>
+			<method name="add_field_value_id" symbol="gda_sql_builder_add_field_value_id">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="field_id" type="GdaSqlBuilderId"/>
+					<parameter name="value_id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="add_function" symbol="gda_sql_builder_add_function">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="func_name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="add_function_v" symbol="gda_sql_builder_add_function_v">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="func_name" type="gchar*"/>
+					<parameter name="args" type="GdaSqlBuilderId*"/>
+					<parameter name="args_size" type="gint"/>
+				</parameters>
+			</method>
+			<method name="add_id" symbol="gda_sql_builder_add_id">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="string" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="add_param" symbol="gda_sql_builder_add_param">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="param_name" type="gchar*"/>
+					<parameter name="type" type="GType"/>
+					<parameter name="nullok" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="add_sub_select" symbol="gda_sql_builder_add_sub_select">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="sqlst" type="GdaSqlStatement*"/>
+				</parameters>
+			</method>
+			<method name="compound_add_sub_select" symbol="gda_sql_builder_compound_add_sub_select">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="sqlst" type="GdaSqlStatement*"/>
+				</parameters>
+			</method>
+			<method name="compound_set_type" symbol="gda_sql_builder_compound_set_type">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="compound_type" type="GdaSqlStatementCompoundType"/>
+				</parameters>
+			</method>
+			<method name="error_quark" symbol="gda_sql_builder_error_quark">
+				<return-type type="GQuark"/>
+			</method>
+			<method name="export_expression" symbol="gda_sql_builder_export_expression">
+				<return-type type="GdaSqlExpr*"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="get_sql_statement" symbol="gda_sql_builder_get_sql_statement">
+				<return-type type="GdaSqlStatement*"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+				</parameters>
+			</method>
+			<method name="get_statement" symbol="gda_sql_builder_get_statement">
+				<return-type type="GdaStatement*"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="import_expression" symbol="gda_sql_builder_import_expression">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="expr" type="GdaSqlExpr*"/>
+				</parameters>
+			</method>
+			<method name="join_add_field" symbol="gda_sql_builder_join_add_field">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="join_id" type="GdaSqlBuilderId"/>
+					<parameter name="field_name" type="gchar*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gda_sql_builder_new">
+				<return-type type="GdaSqlBuilder*"/>
+				<parameters>
+					<parameter name="stmt_type" type="GdaSqlStatementType"/>
+				</parameters>
+			</constructor>
+			<method name="select_add_field" symbol="gda_sql_builder_select_add_field">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="field_name" type="gchar*"/>
+					<parameter name="table_name" type="gchar*"/>
+					<parameter name="alias" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="select_add_target" symbol="gda_sql_builder_select_add_target">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="table_name" type="gchar*"/>
+					<parameter name="alias" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="select_add_target_id" symbol="gda_sql_builder_select_add_target_id">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="table_id" type="GdaSqlBuilderId"/>
+					<parameter name="alias" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="select_group_by" symbol="gda_sql_builder_select_group_by">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="expr_id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="select_join_targets" symbol="gda_sql_builder_select_join_targets">
+				<return-type type="GdaSqlBuilderId"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="left_target_id" type="GdaSqlBuilderId"/>
+					<parameter name="right_target_id" type="GdaSqlBuilderId"/>
+					<parameter name="join_type" type="GdaSqlSelectJoinType"/>
+					<parameter name="join_expr" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="select_order_by" symbol="gda_sql_builder_select_order_by">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="expr_id" type="GdaSqlBuilderId"/>
+					<parameter name="asc" type="gboolean"/>
+					<parameter name="collation_name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="select_set_distinct" symbol="gda_sql_builder_select_set_distinct">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="distinct" type="gboolean"/>
+					<parameter name="expr_id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="select_set_having" symbol="gda_sql_builder_select_set_having">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="cond_id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="select_set_limit" symbol="gda_sql_builder_select_set_limit">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="limit_count_expr_id" type="GdaSqlBuilderId"/>
+					<parameter name="limit_offset_expr_id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<method name="set_table" symbol="gda_sql_builder_set_table">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="table_name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_where" symbol="gda_sql_builder_set_where">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="builder" type="GdaSqlBuilder*"/>
+					<parameter name="cond_id" type="GdaSqlBuilderId"/>
+				</parameters>
+			</method>
+			<property name="stmt-type" type="GdaSqlStatementType" readable="0" writable="1" construct="0" construct-only="1"/>
+		</object>
+		<object name="GdaSqlParser" parent="GObject" type-name="GdaSqlParser" get-type="gda_sql_parser_get_type">
+			<implements>
+				<interface name="GdaLockable"/>
+			</implements>
+			<method name="error_quark" symbol="gda_sql_parser_error_quark">
+				<return-type type="GQuark"/>
+			</method>
+			<constructor name="new" symbol="gda_sql_parser_new">
+				<return-type type="GdaSqlParser*"/>
+			</constructor>
+			<method name="parse_file_as_batch" symbol="gda_sql_parser_parse_file_as_batch">
+				<return-type type="GdaBatch*"/>
+				<parameters>
+					<parameter name="parser" type="GdaSqlParser*"/>
+					<parameter name="filename" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="parse_string" symbol="gda_sql_parser_parse_string">
+				<return-type type="GdaStatement*"/>
+				<parameters>
+					<parameter name="parser" type="GdaSqlParser*"/>
+					<parameter name="sql" type="gchar*"/>
+					<parameter name="remain" type="gchar**"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="parse_string_as_batch" symbol="gda_sql_parser_parse_string_as_batch">
+				<return-type type="GdaBatch*"/>
+				<parameters>
+					<parameter name="parser" type="GdaSqlParser*"/>
+					<parameter name="sql" type="gchar*"/>
+					<parameter name="remain" type="gchar**"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="set_overflow_error" symbol="gda_sql_parser_set_overflow_error">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="parser" type="GdaSqlParser*"/>
 				</parameters>
 			</method>
 			<method name="set_syntax_error" symbol="gda_sql_parser_set_syntax_error">
@@ -5943,6 +6667,15 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</method>
+			<method name="rewrite_for_default_values" symbol="gda_statement_rewrite_for_default_values">
+				<return-type type="GdaSqlStatement*"/>
+				<parameters>
+					<parameter name="stmt" type="GdaStatement*"/>
+					<parameter name="params" type="GdaSet*"/>
+					<parameter name="remove" type="gboolean"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 			<method name="serialize" symbol="gda_statement_serialize">
 				<return-type type="gchar*"/>
 				<parameters>
@@ -5984,6 +6717,89 @@
 				</parameters>
 			</signal>
 		</object>
+		<object name="GdaThreadWrapper" parent="GObject" type-name="GdaThreadWrapper" get-type="gda_thread_wrapper_get_type">
+			<method name="cancel" symbol="gda_thread_wrapper_cancel">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="id" type="guint"/>
+				</parameters>
+			</method>
+			<method name="connect_raw" symbol="gda_thread_wrapper_connect_raw">
+				<return-type type="gulong"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="instance" type="gpointer"/>
+					<parameter name="sig_name" type="gchar*"/>
+					<parameter name="private_thread" type="gboolean"/>
+					<parameter name="private_job" type="gboolean"/>
+					<parameter name="callback" type="GdaThreadWrapperCallback"/>
+					<parameter name="data" type="gpointer"/>
+				</parameters>
+			</method>
+			<method name="disconnect" symbol="gda_thread_wrapper_disconnect">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="id" type="gulong"/>
+				</parameters>
+			</method>
+			<method name="error_quark" symbol="gda_thread_wrapper_error_quark">
+				<return-type type="GQuark"/>
+			</method>
+			<method name="execute" symbol="gda_thread_wrapper_execute">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="func" type="GdaThreadWrapperFunc"/>
+					<parameter name="arg" type="gpointer"/>
+					<parameter name="arg_destroy_func" type="GDestroyNotify"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="execute_void" symbol="gda_thread_wrapper_execute_void">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="func" type="GdaThreadWrapperVoidFunc"/>
+					<parameter name="arg" type="gpointer"/>
+					<parameter name="arg_destroy_func" type="GDestroyNotify"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="fetch_result" symbol="gda_thread_wrapper_fetch_result">
+				<return-type type="gpointer"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="may_lock" type="gboolean"/>
+					<parameter name="exp_id" type="guint"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="get_waiting_size" symbol="gda_thread_wrapper_get_waiting_size">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+				</parameters>
+			</method>
+			<method name="iterate" symbol="gda_thread_wrapper_iterate">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="may_block" type="gboolean"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gda_thread_wrapper_new">
+				<return-type type="GdaThreadWrapper*"/>
+			</constructor>
+			<method name="steal_signal" symbol="gda_thread_wrapper_steal_signal">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="wrapper" type="GdaThreadWrapper*"/>
+					<parameter name="id" type="gulong"/>
+				</parameters>
+			</method>
+		</object>
 		<object name="GdaTransactionStatus" parent="GObject" type-name="GdaTransactionStatus" get-type="gda_transaction_status_get_type">
 			<constructor name="new" symbol="gda_transaction_status_new">
 				<return-type type="GdaTransactionStatus*"/>
@@ -5996,6 +6812,344 @@
 			<field name="state" type="GdaTransactionStatusState"/>
 			<field name="events" type="GList*"/>
 		</object>
+		<object name="GdaTree" parent="GObject" type-name="GdaTree" get-type="gda_tree_get_type">
+			<method name="add_manager" symbol="gda_tree_add_manager">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="manager" type="GdaTreeManager*"/>
+				</parameters>
+			</method>
+			<method name="clean" symbol="gda_tree_clean">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+				</parameters>
+			</method>
+			<method name="dump" symbol="gda_tree_dump">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="stream" type="FILE*"/>
+				</parameters>
+			</method>
+			<method name="error_quark" symbol="gda_tree_error_quark">
+				<return-type type="GQuark"/>
+			</method>
+			<method name="get_node" symbol="gda_tree_get_node">
+				<return-type type="GdaTreeNode*"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="tree_path" type="gchar*"/>
+					<parameter name="use_names" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="get_node_manager" symbol="gda_tree_get_node_manager">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</method>
+			<method name="get_node_path" symbol="gda_tree_get_node_path">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</method>
+			<method name="get_nodes_in_path" symbol="gda_tree_get_nodes_in_path">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="tree_path" type="gchar*"/>
+					<parameter name="use_names" type="gboolean"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gda_tree_new">
+				<return-type type="GdaTree*"/>
+			</constructor>
+			<method name="set_attribute" symbol="gda_tree_set_attribute">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="attribute" type="gchar*"/>
+					<parameter name="value" type="GValue*"/>
+					<parameter name="destroy" type="GDestroyNotify"/>
+				</parameters>
+			</method>
+			<method name="update_all" symbol="gda_tree_update_all">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<method name="update_part" symbol="gda_tree_update_part">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
+			<property name="is-list" type="gboolean" readable="1" writable="0" construct="0" construct-only="0"/>
+			<signal name="node-changed" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</signal>
+			<signal name="node-deleted" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node_path" type="char*"/>
+				</parameters>
+			</signal>
+			<signal name="node-has-child-toggled" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</signal>
+			<signal name="node-inserted" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="tree" type="GdaTree*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</signal>
+		</object>
+		<object name="GdaTreeManager" parent="GObject" type-name="GdaTreeManager" get-type="gda_tree_manager_get_type">
+			<method name="add_manager" symbol="gda_tree_manager_add_manager">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+					<parameter name="sub" type="GdaTreeManager*"/>
+				</parameters>
+			</method>
+			<method name="add_new_node_attribute" symbol="gda_tree_manager_add_new_node_attribute">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+					<parameter name="attribute" type="gchar*"/>
+					<parameter name="value" type="GValue*"/>
+				</parameters>
+			</method>
+			<method name="create_node" symbol="gda_tree_manager_create_node">
+				<return-type type="GdaTreeNode*"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+					<parameter name="parent" type="GdaTreeNode*"/>
+					<parameter name="name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="error_quark" symbol="gda_tree_manager_error_quark">
+				<return-type type="GQuark"/>
+			</method>
+			<method name="get_managers" symbol="gda_tree_manager_get_managers">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+				</parameters>
+			</method>
+			<method name="get_node_create_func" symbol="gda_tree_manager_get_node_create_func">
+				<return-type type="GdaTreeManagerNodeFunc"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+				</parameters>
+			</method>
+			<constructor name="new_with_func" symbol="gda_tree_manager_new_with_func">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="update_func" type="GdaTreeManagerNodesFunc"/>
+				</parameters>
+			</constructor>
+			<method name="set_node_create_func" symbol="gda_tree_manager_set_node_create_func">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+					<parameter name="func" type="GdaTreeManagerNodeFunc"/>
+				</parameters>
+			</method>
+			<property name="func" type="gpointer" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="recursive" type="gboolean" readable="1" writable="1" construct="1" construct-only="0"/>
+			<vfunc name="update_children">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="manager" type="GdaTreeManager*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="children_nodes" type="GSList*"/>
+					<parameter name="out_error" type="gboolean*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</vfunc>
+		</object>
+		<object name="GdaTreeMgrColumns" parent="GdaTreeManager" type-name="GdaTreeMgrColumns" get-type="gda_tree_mgr_columns_get_type">
+			<constructor name="new" symbol="gda_tree_mgr_columns_new">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="schema" type="gchar*"/>
+					<parameter name="table_name" type="gchar*"/>
+				</parameters>
+			</constructor>
+			<property name="connection" type="GdaConnection*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="meta-store" type="GdaMetaStore*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="schema" type="char*" readable="0" writable="1" construct="0" construct-only="1"/>
+			<property name="table-name" type="char*" readable="0" writable="1" construct="0" construct-only="1"/>
+		</object>
+		<object name="GdaTreeMgrLabel" parent="GdaTreeManager" type-name="GdaTreeMgrLabel" get-type="gda_tree_mgr_label_get_type">
+			<constructor name="new" symbol="gda_tree_mgr_label_new">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="label" type="gchar*"/>
+				</parameters>
+			</constructor>
+			<property name="label" type="char*" readable="0" writable="1" construct="0" construct-only="1"/>
+		</object>
+		<object name="GdaTreeMgrSchemas" parent="GdaTreeManager" type-name="GdaTreeMgrSchemas" get-type="gda_tree_mgr_schemas_get_type">
+			<constructor name="new" symbol="gda_tree_mgr_schemas_new">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+				</parameters>
+			</constructor>
+			<property name="connection" type="GdaConnection*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="meta-store" type="GdaMetaStore*" readable="1" writable="1" construct="0" construct-only="1"/>
+		</object>
+		<object name="GdaTreeMgrSelect" parent="GdaTreeManager" type-name="GdaTreeMgrSelect" get-type="gda_tree_mgr_select_get_type">
+			<constructor name="new" symbol="gda_tree_mgr_select_new">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="stmt" type="GdaStatement*"/>
+					<parameter name="params" type="GdaSet*"/>
+				</parameters>
+			</constructor>
+			<property name="connection" type="GdaConnection*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="params" type="GdaSet*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="statement" type="GdaStatement*" readable="1" writable="1" construct="0" construct-only="1"/>
+		</object>
+		<object name="GdaTreeMgrTables" parent="GdaTreeManager" type-name="GdaTreeMgrTables" get-type="gda_tree_mgr_tables_get_type">
+			<constructor name="new" symbol="gda_tree_mgr_tables_new">
+				<return-type type="GdaTreeManager*"/>
+				<parameters>
+					<parameter name="cnc" type="GdaConnection*"/>
+					<parameter name="schema" type="gchar*"/>
+				</parameters>
+			</constructor>
+			<property name="connection" type="GdaConnection*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="meta-store" type="GdaMetaStore*" readable="1" writable="1" construct="0" construct-only="1"/>
+			<property name="schema" type="char*" readable="0" writable="1" construct="0" construct-only="1"/>
+		</object>
+		<object name="GdaTreeNode" parent="GObject" type-name="GdaTreeNode" get-type="gda_tree_node_get_type">
+			<method name="error_quark" symbol="gda_tree_node_error_quark">
+				<return-type type="GQuark"/>
+			</method>
+			<method name="fetch_attribute" symbol="gda_tree_node_fetch_attribute">
+				<return-type type="GValue*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="attribute" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="get_child_index" symbol="gda_tree_node_get_child_index">
+				<return-type type="GdaTreeNode*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="index" type="gint"/>
+				</parameters>
+			</method>
+			<method name="get_child_name" symbol="gda_tree_node_get_child_name">
+				<return-type type="GdaTreeNode*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="get_children" symbol="gda_tree_node_get_children">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</method>
+			<method name="get_node_attribute" symbol="gda_tree_node_get_node_attribute">
+				<return-type type="GValue*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="attribute" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="get_parent" symbol="gda_tree_node_get_parent">
+				<return-type type="GdaTreeNode*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gda_tree_node_new">
+				<return-type type="GdaTreeNode*"/>
+				<parameters>
+					<parameter name="name" type="gchar*"/>
+				</parameters>
+			</constructor>
+			<method name="set_node_attribute" symbol="gda_tree_node_set_node_attribute">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="attribute" type="gchar*"/>
+					<parameter name="value" type="GValue*"/>
+					<parameter name="destroy" type="GDestroyNotify"/>
+				</parameters>
+			</method>
+			<property name="name" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<signal name="node-changed" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="reporting" type="GdaTreeNode*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</signal>
+			<signal name="node-deleted" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="reporting" type="GdaTreeNode*"/>
+					<parameter name="relative_path" type="char*"/>
+				</parameters>
+			</signal>
+			<signal name="node-has-child-toggled" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="reporting" type="GdaTreeNode*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</signal>
+			<signal name="node-inserted" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="reporting" type="GdaTreeNode*"/>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</signal>
+			<vfunc name="dump_children">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+					<parameter name="prefix" type="gchar*"/>
+					<parameter name="in_string" type="GString*"/>
+				</parameters>
+			</vfunc>
+			<vfunc name="dump_header">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="node" type="GdaTreeNode*"/>
+				</parameters>
+			</vfunc>
+		</object>
 		<object name="GdaVconnectionDataModel" parent="GdaVirtualConnection" type-name="GdaVconnectionDataModel" get-type="gda_vconnection_data_model_get_type">
 			<implements>
 				<interface name="GdaLockable"/>
@@ -6094,7 +7248,7 @@
 			<method name="internal_get_provider_data" symbol="gda_virtual_connection_internal_get_provider_data">
 				<return-type type="gpointer"/>
 				<parameters>
-					<parameter name="cnc" type="GdaVirtualConnection*"/>
+					<parameter name="vcnc" type="GdaVirtualConnection*"/>
 				</parameters>
 			</method>
 			<method name="internal_set_provider_data" symbol="gda_virtual_connection_internal_set_provider_data">
@@ -6112,6 +7266,14 @@
 					<parameter name="error" type="GError**"/>
 				</parameters>
 			</method>
+			<method name="open_extended" symbol="gda_virtual_connection_open_extended">
+				<return-type type="GdaConnection*"/>
+				<parameters>
+					<parameter name="virtual_provider" type="GdaVirtualProvider*"/>
+					<parameter name="options" type="GdaConnectionOptions"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</method>
 		</object>
 		<object name="GdaVirtualProvider" parent="GdaSqliteProvider" type-name="GdaVirtualProvider" get-type="gda_virtual_provider_get_type">
 		</object>
@@ -6202,6 +7364,12 @@
 					<parameter name="type" type="GType"/>
 				</parameters>
 			</method>
+			<method name="get_default" symbol="gda_data_handler_get_default">
+				<return-type type="GdaDataHandler*"/>
+				<parameters>
+					<parameter name="for_type" type="GType"/>
+				</parameters>
+			</method>
 			<method name="get_descr" symbol="gda_data_handler_get_descr">
 				<return-type type="gchar*"/>
 				<parameters>
@@ -6734,12 +7902,6 @@
 				</parameters>
 			</vfunc>
 		</interface>
-		<constant name="D_COL_ERR" type="char*" value="&#x1b;[;31;1m"/>
-		<constant name="D_COL_H0" type="char*" value="&#x1b;[;34;7m"/>
-		<constant name="D_COL_H1" type="char*" value="&#x1b;[;36;7m"/>
-		<constant name="D_COL_H2" type="char*" value="&#x1b;[;36;4m"/>
-		<constant name="D_COL_NOR" type="char*" value="&#x1b;[0m"/>
-		<constant name="D_COL_OK" type="char*" value="&#x1b;[;32m"/>
 		<constant name="GDA_ATTRIBUTE_AUTO_INCREMENT" type="char*" value="__gda_attr_autoinc"/>
 		<constant name="GDA_ATTRIBUTE_DESCRIPTION" type="char*" value="__gda_attr_descr"/>
 		<constant name="GDA_ATTRIBUTE_IS_DEFAULT" type="char*" value="__gda_attr_is_default"/>
diff --git a/vapi/packages/libgda-4.0/libgda-4.0.metadata b/vapi/packages/libgda-4.0/libgda-4.0.metadata
index 4016030..709ae3a 100644
--- a/vapi/packages/libgda-4.0/libgda-4.0.metadata
+++ b/vapi/packages/libgda-4.0/libgda-4.0.metadata
@@ -40,12 +40,18 @@ gda_data_model_set_values.values type_arguments="GLib.Value"
 gda_data_model_bdb_get_errors type_arguments="GLib.Error"
 gda_data_model_import_get_errors type_arguments="GLib.Error"
 gda_data_proxy_get_values type_arguments="GLib.Value"
+GdaSqlError hidden="1"
 gda_lockable_lock virtual="1" vfunc_name="i_lock"
 gda_lockable_trylock virtual="1" vfunc_name="i_trylock"
 gda_lockable_unlock virtual="1" vfunc_name="i_unlock"
 GdaMetaStore::meta_changed.changes type_arguments="MetaStoreChange"
 gda_meta_struct_get_all_db_objects transfer_ownership="1" type_arguments="MetaDbObject"
 gda_set_new.holders type_arguments="Holder"
+GdaSqlBuilderId is_value_type="1" simple_type="1" base_type="uint" rank="7"
+gda_sql_builder_add_case ellipsis="1" sentinel=""
+gda_sql_builder_add_expr ellipsis="1" sentinel=""
+gda_sql_builder_add_field_value ellipsis="1" sentinel=""
+gda_sql_builder_add_function ellipsis="1" sentinel=""
 gda_sql_function_take_args_list.args transfer_ownership="1"
 gda_sql_parser_parse_string.remain is_out="1"
 gda_sql_statement_insert_take_1_values_list.list transfer_ownership="1" type_arguments="SqlExpr"
@@ -54,8 +60,11 @@ gda_sql_statement_select_take_expr_list.expr_list transfer_ownership="1" type_ar
 gda_sql_statement_select_take_group_by.group_by transfer_ownership="1" type_arguments="SqlExpr"
 gda_sql_statement_select_take_order_by.order_by transfer_ownership="1" type_arguments="SqlSelectOrder"
 gda_sql_statement_select_take_where_cond.expr transfer_ownership="1"
+gda_statement_to_sql_extended transfer_ownership="1"
+gda_statement_to_sql_extended.cnc nullable="1"
+gda_statement_to_sql_extended.params nullable="1"
+gda_statement_to_sql_extended.params_used nullable="1" type_arguments="Holder"
 gda_sql_statement_unknown_take_expressions.expressions transfer_ownership="1" type_arguments="SqlExpr"
-gda_statement_to_sql_extended.params_used type_arguments="Holder"
 xmlNodePtr name="Node" namespace="Xml"
 GdaDataModelAccessFlags hidden="1"
 GdaMetaStructFeature hidden="1"



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