[libgda] Added gda_server_operation_prepare_create_table_v()



commit be48ad0b2f70e2fa107f4d1db44089fccec43ff0
Author: Daniel Espinosa <esodan gmail com>
Date:   Wed Apr 27 09:22:56 2016 -0500

    Added gda_server_operation_prepare_create_table_v()
    
    * Fixed access to GdaBinary sealed access
    * Fixed documentation annotations
    * Fixed API
    
    In order to provide gda_server_operation_prepare_create_table_v(),
    to be consumed by bindings, new structures and their corresponding
    GType and getter/setter was added:
    
    GdaServerOperationCreateTableArg is a new type boxed struct, sealed,
    to hold arguments for table creation.
    
    GdaServerOperationCreateTableArgFKeyRefField is a new type boxed struct
    to hold arguments for foreign table and field referencing constraints.
    
    This new structs, are necesary and should be constructed by bindings,
    in order to use gda_server_operation_prepare_create_table_v().
    
    gda_server_operation_prepare_create_table() has no API changes and is a
    wrapper of gda_server_operation_prepare_create_table_v(), constructing
    the list of arguments from variant argument list, as before.

 libgda/gda-data-model-bdb.c   |   20 ++++----
 libgda/gda-meta-store.c       |    5 +-
 libgda/gda-server-operation.c |  102 ++++++++++++++++++----------------------
 libgda/gda-server-operation.h |    4 +-
 libgda/gda-value.c            |   10 ++--
 libgda/gda-value.h            |    4 +-
 libgda/libgda-6.0.deps        |    1 +
 7 files changed, 68 insertions(+), 78 deletions(-)
---
diff --git a/libgda/gda-data-model-bdb.c b/libgda/gda-data-model-bdb.c
index f8ba927..d7d699a 100644
--- a/libgda/gda-data-model-bdb.c
+++ b/libgda/gda-data-model-bdb.c
@@ -644,7 +644,7 @@ gda_data_model_bdb_get_value_at (GdaDataModel *model, gint col, gint row, GError
 {
        GdaDataModelBdb *imodel;
        DBT key, data;
-       GdaBinary *bin;
+       GdaBinary *bin = NULL;
        GValue *value;
        int ret;
 
@@ -705,9 +705,8 @@ gda_data_model_bdb_get_value_at (GdaDataModel *model, gint col, gint row, GError
        }
        else {
                value = gda_value_new (GDA_TYPE_BINARY);
-               bin.data = key.data;
-               bin.binary_length = key.size;
-               gda_value_set_binary (value, &bin);
+               gda_binary_set_data (bin, key.data, key.size);
+               gda_value_set_binary (value, bin);
                imodel->priv->cursor_values = g_slist_append (imodel->priv->cursor_values, value);
        }
 
@@ -738,9 +737,8 @@ gda_data_model_bdb_get_value_at (GdaDataModel *model, gint col, gint row, GError
        }
        else {
                value = gda_value_new (GDA_TYPE_BINARY);
-               bin.data = data.data;
-               bin.binary_length = data.size;
-               gda_value_set_binary (value, &bin);
+               gda_binary_set_data (bin, data.data, data.size);
+               gda_value_set_binary (value, bin);
                imodel->priv->cursor_values = g_slist_append (imodel->priv->cursor_values, value);
        }
 
@@ -852,8 +850,8 @@ alter_key_value (GdaDataModelBdb *model, DBT *key, GList **values, gboolean *has
                                bin = (GdaBinary *) gda_value_get_binary ((GValue *) (*values)->data);
                                
                                memset (&key, 0, sizeof key);
-                               key->size = bin->binary_length;
-                               key->data = bin->data;
+                               key->size = gda_binary_get_size (bin);
+                               key->data = gda_binary_get_data (bin);
                                if (has_modifications)
                                        *has_modifications = TRUE;
                        }
@@ -943,8 +941,8 @@ gda_data_model_bdb_set_values (GdaDataModel *model, gint row, GList *values, GEr
                                bin = (GdaBinary *) gda_value_get_binary ((GValue *) ptr->data);
                                
                                memset (&data, 0, sizeof data);
-                               data.size = bin->binary_length;
-                               data.data = bin->data;
+                               data.size = gda_binary_get_size (bin);
+                               data.data = gda_binary_get_data (bin);
                        }
                        else {
                                g_set_error (error, GDA_SERVER_PROVIDER_ERROR,
diff --git a/libgda/gda-meta-store.c b/libgda/gda-meta-store.c
index c4d31ab..f06f977 100644
--- a/libgda/gda-meta-store.c
+++ b/libgda/gda-meta-store.c
@@ -7,7 +7,7 @@
  * Copyright (C) 2011 - 2013 Daniel Espinosa <esodan gmail com>
  * Copyright (C) 2013 Carl-Anton Ingmarsson <ca ingmarsson gmail com>
  * Copyright (C) 2013 Miguel Angel Cabrera Moya <madmac2501 gmail com>
- * Copyright (C) 2015 Corentin No�l <corentin elementary io>
+ * Copyright (C) 2015 Corentin Noël <corentin elementary io>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -152,7 +152,7 @@ gda_meta_store_change_get_table_name (GdaMetaStoreChange *change)
   return g_strdup (change->table_name);
 }
 /**
- * gda_meta_store_change_get_table_name:
+ * gda_meta_store_change_get_table_keys:
  * @change: a #GdaMetaStoreChange
  *
  * Returns: (element-type utf8 GValue) (transfer none): hash table with string key key = ('+' or '-') and a 
column position in @table (string) starting at 0 and value as #GValue pointer
@@ -183,6 +183,7 @@ gda_meta_store_change_copy (GdaMetaStoreChange *src)
     g_hash_table_insert (copy->keys, keys->data, gda_value_copy (g_hash_table_lookup (src->keys, 
keys->data)));
     keys = keys->next;
   }
+  return copy;
 }
 
 /**
diff --git a/libgda/gda-server-operation.c b/libgda/gda-server-operation.c
index 896ba78..660d172 100644
--- a/libgda/gda-server-operation.c
+++ b/libgda/gda-server-operation.c
@@ -2569,8 +2569,6 @@ gda_server_operation_is_valid (GdaServerOperation *op, const gchar *xml_file, GE
 gboolean
 gda_server_operation_is_valid_from_resource (GdaServerOperation *op, const gchar *resource, GError **error)
 {
-       GSList *list;
-
        g_return_val_if_fail (GDA_IS_SERVER_OPERATION (op), FALSE);
        g_return_val_if_fail (op->priv, FALSE);
 
@@ -2763,8 +2761,8 @@ gda_server_operation_create_table_arg_get_fkey_ref_field_get_type ()
 
        if (G_UNLIKELY (type == 0)) {
                type = g_boxed_type_register_static ("GdaServerOperationCreateTableArgFKeyRefField",
-                                                    (GBoxedCopyFunc) 
gda_server_operation_create_table_arg_get_fkey_ref_field_copy,
-                                                    (GBoxedFreeFunc) 
gda_server_operation_create_table_arg_get_fkey_ref_field_free);
+                                                    (GBoxedCopyFunc) 
gda_server_operation_create_table_arg_fkey_ref_field_copy,
+                                                    (GBoxedFreeFunc) 
gda_server_operation_create_table_arg_fkey_ref_field_free);
        }
 
        return type;
@@ -2772,12 +2770,12 @@ gda_server_operation_create_table_arg_get_fkey_ref_field_get_type ()
 
 
        /**
-        * gda_server_operation_create_table_arg_get_fkey_ref_field_new:
+        * gda_server_operation_create_table_arg_fkey_ref_field_new:
         *
         * Returns: a new #GdaServerOperationCreateTableArg
         */
 GdaServerOperationCreateTableArgFKeyRefField*
-gda_server_operation_create_table_arg_get_fkey_ref_field_new ()
+gda_server_operation_create_table_arg_fkey_ref_field_new ()
 {
        GdaServerOperationCreateTableArgFKeyRefField* ref = g_new0 
(GdaServerOperationCreateTableArgFKeyRefField, 1);
        ref->local_field = NULL;
@@ -2825,7 +2823,7 @@ void
 gda_server_operation_create_table_arg_fkey_ref_field_set_local_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref,
                                                                           const gchar *name)
 {
-       g_return_if_fail (arg != NULL);
+       g_return_if_fail (ref != NULL);
        ref->local_field = g_strdup (name);
 }
 
@@ -2836,17 +2834,17 @@ gda_server_operation_create_table_arg_fkey_ref_field_set_local_field (GdaServerO
         * Returns: (transfer full): a new string with field name in the table
         */
 gchar*
-gda_server_operation_create_table_arg_fkey_ref_field_get_local_field (GdaServerOperationCreateTableArg *ref)
+gda_server_operation_create_table_arg_fkey_ref_field_get_local_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref)
 {
-       g_return_val_if_fail (arg != NULL, NULL);
+       g_return_val_if_fail (ref != NULL, NULL);
        return g_strdup (ref->local_field);
 }
 
 
        /**
-        * gda_server_operation_create_table_arg_get_fkey_ref_field_get_local_field:
+        * gda_server_operation_create_table_arg_get_fkey_ref_field_set_referenced_field:
         * @arg: a #GdaServerOperationCreateTableArgFKeyRefField
-        * @name: the local table's column's name.
+        * @name: the referenced table's column's name.
         *
         * Sets column name to be referenced in a given field o the new table.
         */
@@ -2854,20 +2852,20 @@ void
 gda_server_operation_create_table_arg_fkey_ref_field_set_referenced_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref,
                                                                           const gchar *name)
 {
-       g_return_if_fail (arg != NULL);
+       g_return_if_fail (ref != NULL);
        ref->referenced_field = g_strdup (name);
 }
 
        /**
-        * gda_server_operation_create_table_arg_get_fkey_ref_field_get_local_field:
+        * gda_server_operation_create_table_arg_get_fkey_ref_field_get_referenced_field:
         * @arg: a #GdaServerOperationCreateTableArgFKeyRefField
         *
         * Returns: (transfer full): a new string with referenced field name in the referenced table
         */
 gchar*
-gda_server_operation_create_table_arg_fkey_ref_field_get_referenced_field (GdaServerOperationCreateTableArg 
*ref)
+gda_server_operation_create_table_arg_fkey_ref_field_get_referenced_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref)
 {
-       g_return_val_if_fail (arg != NULL, NULL);
+       g_return_val_if_fail (ref != NULL, NULL);
        return g_strdup (ref->referenced_field);
 }
 
@@ -2956,7 +2954,7 @@ gda_server_operation_create_table_arg_copy (GdaServerOperationCreateTableArg* sr
 
 
        /**
-        * gda_server_operation_perform_create_table_arg_set_column_name:
+        * gda_server_operation_create_table_arg_set_column_name:
         * @arg: a #GdaServerOperationCreateTableArg
         * @name: the table's column's name.
         *
@@ -2971,7 +2969,7 @@ gda_server_operation_create_table_arg_set_column_name (GdaServerOperationCreateT
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_get_column_name:
+        * gda_server_operation_create_table_arg_get_column_name:
         * @arg: a #GdaServerOperationCreateTableArg
         *
         * Returns: (transfer full): a new string with argument's column name
@@ -2984,7 +2982,7 @@ gda_server_operation_create_table_arg_get_column_name (GdaServerOperationCreateT
 }
 
 /**
- * gda_server_operation_perform_create_table_arg_set_flags:
+ * gda_server_operation_create_table_arg_set_column_type:
  * @arg: a #GdaServerOperationCreateTableArg
  * @flags: column type to be added by this operation as #GType
  *
@@ -2998,7 +2996,7 @@ gda_server_operation_create_table_arg_set_column_type (GdaServerOperationCreateT
 }
 
 /**
- * gda_server_operation_perform_create_table_arg_get_column_type:
+ * gda_server_operation_create_table_arg_get_column_type:
  * @arg: a #GdaServerOperationCreateTableArg
  *
  * Returns: type as #GType of the column to be created with this operation
@@ -3010,39 +3008,39 @@ gda_server_operation_create_table_arg_get_column_type (GdaServerOperationCreateT
 }
 
 /**
- * gda_server_operation_perform_create_table_arg_set_flags:
+ * gda_server_operation_create_table_arg_set_flags:
  * @arg: a #GdaServerOperationCreateTableArg
  * @flags: flags to used in this argument as #GdaServerOperationCreateTableFlag
  *
  * Sets flags for new column to create with the table.
  */
 void
-gda_server_operation_perform_create_table_arg_set_flags (GdaServerOperationCreateTableArg *arg,
+gda_server_operation_create_table_arg_set_flags (GdaServerOperationCreateTableArg *arg,
                                                          GdaServerOperationCreateTableFlag flags)
 {
        arg->flags = flags;
 }
 /**
- * gda_server_operation_perform_create_table_arg_get_flags:
+ * gda_server_operation_create_table_arg_get_flags:
  * @arg: a #GdaServerOperationCreateTableArg
  *
  * Returns: flags as #GdaServerOperationCreateTableFlag
  */
 GdaServerOperationCreateTableFlag
-gda_server_operation_perform_create_table_arg_get_flags (GdaServerOperationCreateTableArg *arg)
+gda_server_operation_create_table_arg_get_flags (GdaServerOperationCreateTableArg *arg)
 {
        return arg->flags;
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_set_fkey_table:
+        * gda_server_operation_create_table_arg_set_fkey_table:
         * @arg: a #GdaServerOperationCreateTableArg
         * @name: the table's name of reference.
         *
         * You should set this if you use a #GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG flag.
         */
 void
-gda_server_operation_perform_create_table_arg_set_fkey_table (GdaServerOperationCreateTableArg *arg,
+gda_server_operation_create_table_arg_set_fkey_table (GdaServerOperationCreateTableArg *arg,
                                                                const gchar *name)
 {
        g_return_if_fail (arg != NULL);
@@ -3050,40 +3048,40 @@ gda_server_operation_perform_create_table_arg_set_fkey_table (GdaServerOperation
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_get_fkey_table:
+        * gda_server_operation_create_table_arg_get_fkey_table:
         * @arg: a #GdaServerOperationCreateTableArg
         *
         * Returns: (transfer full): a new string with argument's referenced table's name.
         */
 gchar*
-gda_server_operation_perform_create_table_arg_get_fkey_table (GdaServerOperationCreateTableArg *arg)
+gda_server_operation_create_table_arg_get_fkey_table (GdaServerOperationCreateTableArg *arg)
 {
        g_return_val_if_fail (arg != NULL, NULL);
        return g_strdup (arg->fkey_table);
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_set_fkey_ondelete:
+        * gda_server_operation_create_table_arg_set_fkey_ondelete:
         * @arg: a #GdaServerOperationCreateTableArg
         * @action: action to perform on delete action of the referenced field.
         *
         * You should set this if you use a #GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG flag.
         */
 void
-gda_server_operation_perform_create_table_arg_set_fkey_ondelete (GdaServerOperationCreateTableArg *arg, 
const gchar *action)
+gda_server_operation_create_table_arg_set_fkey_ondelete (GdaServerOperationCreateTableArg *arg, const gchar 
*action)
 {
        g_return_if_fail (arg != NULL);
        arg->fkey_ondelete = g_strdup (action);
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_get_fkey_ondelete:
+        * gda_server_operation_create_table_arg_get_fkey_ondelete:
         * @arg: a #GdaServerOperationCreateTableArg
         *
         * Returns: (transfer full): a new string with action to take on delete.
         */
 gchar*
-gda_server_operation_perform_create_table_arg_get_fkey_ondelete (GdaServerOperationCreateTableArg *arg)
+gda_server_operation_create_table_arg_get_fkey_ondelete (GdaServerOperationCreateTableArg *arg)
 {
        g_return_val_if_fail (arg != NULL, NULL);
        return g_strdup (arg->fkey_ondelete);
@@ -3091,27 +3089,27 @@ gda_server_operation_perform_create_table_arg_get_fkey_ondelete (GdaServerOperat
 
 
        /**
-        * gda_server_operation_perform_create_table_arg_set_fkey_onupdate:
+        * gda_server_operation_create_table_arg_set_fkey_onupdate:
         * @arg: a #GdaServerOperationCreateTableArg
         * @action: action to perform on delete action of the referenced field.
         *
         * You should set this if you use a #GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG flag.
         */
 void
-gda_server_operation_perform_create_table_arg_set_fkey_ondupdate (GdaServerOperationCreateTableArg *arg, 
const gchar *action)
+gda_server_operation_create_table_arg_set_fkey_ondupdate (GdaServerOperationCreateTableArg *arg, const gchar 
*action)
 {
        g_return_if_fail (arg != NULL);
        arg->fkey_onupdate = g_strdup (action);
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_get_fkey_ondelete:
+        * gda_server_operation_create_table_arg_get_fkey_onupdate:
         * @arg: a #GdaServerOperationCreateTableArg
         *
         * Returns: (transfer full): a new string with action to take on delete.
         */
 gchar*
-gda_server_operation_perform_create_table_arg_get_fkey_onupdate (GdaServerOperationCreateTableArg *arg)
+gda_server_operation_create_table_arg_get_fkey_onupdate (GdaServerOperationCreateTableArg *arg)
 {
        g_return_val_if_fail (arg != NULL, NULL);
        return g_strdup (arg->fkey_onupdate);
@@ -3119,7 +3117,7 @@ gda_server_operation_perform_create_table_arg_get_fkey_onupdate (GdaServerOperat
 
 
        /**
-        * gda_server_operation_perform_create_table_arg_set_fkey_refs:
+        * gda_server_operation_create_table_arg_set_fkey_refs:
         * @arg: a #GdaServerOperationCreateTableArg
         * @refs: (element-type GdaServerOperationCreateTableArgFKeyRefField): list of references from local 
to foreign fields.
         * This list is owned by @arg, then you should not free it.
@@ -3127,21 +3125,21 @@ gda_server_operation_perform_create_table_arg_get_fkey_onupdate (GdaServerOperat
         * You should set this if you use a #GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG flag.
         */
 void
-gda_server_operation_perform_create_table_arg_set_fkey_refs (GdaServerOperationCreateTableArg *arg, const 
GList *refs)
+gda_server_operation_create_table_arg_set_fkey_refs (GdaServerOperationCreateTableArg *arg, GList *refs)
 {
        g_return_if_fail (arg != NULL);
        arg->fkey_fields = refs;
 }
 
        /**
-        * gda_server_operation_perform_create_table_arg_get_fkey_refs:
+        * gda_server_operation_create_table_arg_get_fkey_refs:
         * @arg: a #GdaServerOperationCreateTableArg
         *
         * Returns: (transfer none) (element-type GdaServerOperationCreateTableArgFKeyRefField): a list
         * of references from local to foreign fields type #GdaServerOperationCreateTableArgFKeyRefField.
         */
 GList*
-gda_server_operation_perform_create_table_arg_get_fkey_refs (GdaServerOperationCreateTableArg *arg)
+gda_server_operation_create_table_arg_get_fkey_refs (GdaServerOperationCreateTableArg *arg)
 {
        g_return_val_if_fail (arg != NULL, NULL);
        return arg->fkey_fields;
@@ -3175,7 +3173,6 @@ gda_server_operation_prepare_create_table (GdaConnection *cnc, const gchar *tabl
        va_list  args;
        gchar   *arg;
        GType    type;
-       gchar   *dbms_type;
        GdaServerOperationCreateTableFlag flag;
        gint i;
        gint refs;
@@ -3199,7 +3196,7 @@ gda_server_operation_prepare_create_table (GdaConnection *cnc, const gchar *tabl
 
                /* Third for column's flags */
                flag = va_arg (args, GdaServerOperationCreateTableFlag);
-               gda_server_operation_perform_create_table_arg_set_flags (argument, flag);
+               gda_server_operation_create_table_arg_set_flags (argument, flag);
                if (flag & GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG) {
                        gint j;
                        gint fields;
@@ -3211,7 +3208,7 @@ gda_server_operation_prepare_create_table (GdaConnection *cnc, const gchar *tabl
                        GList *lfields = NULL;
 
                        fkey_table = va_arg (args, gchar*);
-                       gda_server_operation_perform_create_table_arg_set_fkey_table (argument, fkey_table);
+                       gda_server_operation_create_table_arg_set_fkey_table (argument, fkey_table);
                        /* Get number of referenced fields */
                        fields = va_arg (args, gint);
 
@@ -3231,10 +3228,10 @@ gda_server_operation_prepare_create_table (GdaConnection *cnc, const gchar *tabl
 
                        /* ON DELETE and ON UPDATE events constraints */
                        fkey_ondelete = va_arg (args, gchar*);
-                       gda_server_operation_perform_create_table_arg_set_fkey_ondelete (argument, 
fkey_ondelete);
+                       gda_server_operation_create_table_arg_set_fkey_ondelete (argument, fkey_ondelete);
 
                        fkey_onupdate = va_arg (args, gchar*);
-                       gda_server_operation_perform_create_table_arg_set_fkey_ondupdate (argument, 
fkey_onupdate);
+                       gda_server_operation_create_table_arg_set_fkey_ondupdate (argument, fkey_onupdate);
                }
 
                arguments = g_list_append (arguments, argument);
@@ -3244,10 +3241,11 @@ gda_server_operation_prepare_create_table (GdaConnection *cnc, const gchar *tabl
 
        op = gda_server_operation_prepare_create_table_v (cnc, table_name, arguments, error);
        g_list_free_full (arguments, (GDestroyNotify) gda_server_operation_create_table_arg_free);
+       return op;
 }
 
 /**
- * gda_server_operation_prepare_create_table_v: (rename: server_operation_create_table):
+ * gda_server_operation_prepare_create_table_v: (rename server_operation_create_table):
  * @cnc: an opened connection
  * @table_name: name of the table to create
  * @arguments: list of arguments as #GdaServerOperationPrepareCreateTableArg containing column's name,
@@ -3337,7 +3335,6 @@ gda_server_operation_prepare_create_table_v (GdaConnection *cnc, const gchar *ta
                                g_set_error (error, GDA_SERVER_OPERATION_ERROR, 
GDA_SERVER_OPERATION_INCORRECT_VALUE_ERROR,
                                             "%s", _("Invalid type"));
                                g_object_unref (op);
-                               va_end (args);
                                return NULL;
                        }
                        dbms_type = (gchar *) gda_server_provider_get_default_dbms_type (server,
@@ -3348,34 +3345,29 @@ gda_server_operation_prepare_create_table_v (GdaConnection *cnc, const gchar *ta
                        }
 
                        /* Third for column's flags */
-                       flag = gda_server_operation_perform_create_table_arg_get_flags (argument);
+                       flag = gda_server_operation_create_table_arg_get_flags (argument);
                        if (flag & GDA_SERVER_OPERATION_CREATE_TABLE_PKEY_FLAG)
                                if(!gda_server_operation_set_value_at (op, "TRUE", error, 
"/FIELDS_A/@COLUMN_PKEY/%d", i)){
                                        g_object_unref (op);
-                                       va_end (args);
                                        return NULL;
                                }
                        if (flag & GDA_SERVER_OPERATION_CREATE_TABLE_NOT_NULL_FLAG)
                                if(!gda_server_operation_set_value_at (op, "TRUE", error, 
"/FIELDS_A/@COLUMN_NNUL/%d", i)){
                                        g_object_unref (op);
-                                       va_end (args);
                                        return NULL;
                                }
                        if (flag & GDA_SERVER_OPERATION_CREATE_TABLE_AUTOINC_FLAG)
                                if (!gda_server_operation_set_value_at (op, "TRUE", error, 
"/FIELDS_A/@COLUMN_AUTOINC/%d", i)){
                                        g_object_unref (op);
-                                       va_end (args);
                                        return NULL;
                                }
                        if (flag & GDA_SERVER_OPERATION_CREATE_TABLE_UNIQUE_FLAG)
                                if(!gda_server_operation_set_value_at (op, "TRUE", error, 
"/FIELDS_A/@COLUMN_UNIQUE/%d", i)){
                                        g_object_unref (op);
-                                       va_end (args);
                                        return NULL;
                                }
                        if (flag & GDA_SERVER_OPERATION_CREATE_TABLE_FKEY_FLAG) {
                                gint j;
-                               gint fields;
                                gchar *fkey_table;
                                gchar *fkey_ondelete;
                                gchar *fkey_onupdate;
@@ -3387,12 +3379,12 @@ gda_server_operation_prepare_create_table_v (GdaConnection *cnc, const gchar *ta
                                if (!gda_server_operation_set_value_at (op, fkey_table, error,
                                                                   "/FKEY_S/%d/FKEY_REF_TABLE", refs)){
                                        g_object_unref (op);
-                                       va_end (args);
                                        return NULL;
                                }
 
                                refs++;
                                GList* lr = gda_server_operation_create_table_arg_get_fkey_refs (argument);
+                               j = 0;
 
                                while (lr) {
                                        gchar *field, *rfield;
@@ -3412,6 +3404,7 @@ gda_server_operation_prepare_create_table_v (GdaConnection *cnc, const gchar *ta
                                                g_object_unref (op);
                                                return NULL;
                                        }
+                                       j++;
                                        lr = g_list_next (lr);
                                }
 
@@ -3419,7 +3412,6 @@ gda_server_operation_prepare_create_table_v (GdaConnection *cnc, const gchar *ta
                                if (!gda_server_operation_set_value_at (op, fkey_ondelete, error,
                                                                   "/FKEY_S/%d/FKEY_ONDELETE", refs)){
                                        g_object_unref (op);
-                                       va_end (args);
                                        return NULL;
                                }
                                fkey_onupdate = gda_server_operation_create_table_arg_get_fkey_onupdate 
(argument);
@@ -3434,8 +3426,6 @@ gda_server_operation_prepare_create_table_v (GdaConnection *cnc, const gchar *ta
                        i++;
                }
 
-               va_end (args);
-
                g_object_set_data_full (G_OBJECT (op), "_gda_connection", g_object_ref (cnc), g_object_unref);
 
                return op;
diff --git a/libgda/gda-server-operation.h b/libgda/gda-server-operation.h
index d94e743..425b47d 100644
--- a/libgda/gda-server-operation.h
+++ b/libgda/gda-server-operation.h
@@ -292,9 +292,9 @@ GdaServerOperationCreateTableArgFKeyRefField*
         gda_server_operation_create_table_arg_fkey_ref_field_copy 
(GdaServerOperationCreateTableArgFKeyRefField *src);
 void    gda_server_operation_create_table_arg_fkey_ref_field_free 
(GdaServerOperationCreateTableArgFKeyRefField *ref);
 void    gda_server_operation_create_table_arg_fkey_ref_field_set_local_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref, const gchar *name);
-gchar*  gda_server_operation_create_table_arg_fkey_ref_field_get_local_field 
(GdaServerOperationCreateTableArg *ref);
+gchar*  gda_server_operation_create_table_arg_fkey_ref_field_get_local_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref);
 void    gda_server_operation_create_table_arg_fkey_ref_field_set_referenced_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref, const gchar *name);
-gchar*  gda_server_operation_create_table_arg_fkey_ref_field_get_referenced_field 
(GdaServerOperationCreateTableArg *ref);
+gchar*  gda_server_operation_create_table_arg_fkey_ref_field_get_referenced_field 
(GdaServerOperationCreateTableArgFKeyRefField *ref);
 
 
 GdaServerOperation *gda_server_operation_prepare_create_table          (GdaConnection *cnc, const gchar 
*table_name, GError **error, ...);
diff --git a/libgda/gda-value.c b/libgda/gda-value.c
index 44d34da..c1442f7 100644
--- a/libgda/gda-value.c
+++ b/libgda/gda-value.c
@@ -2134,13 +2134,13 @@ gda_value_copy (const GValue *value)
 }
 
 /**
- * gda_value_get_binary: (skip)
+ * gda_value_get_binary:
  * @value: a #GValue whose value we want to get.
  *
  * Returns: (transfer none): the value stored in @value.
  */
-const GdaBinary *
-gda_value_get_binary (const GValue *value)
+GdaBinary *
+gda_value_get_binary (GValue *value)
 {
        GdaBinary *val;
 
@@ -2154,14 +2154,14 @@ gda_value_get_binary (const GValue *value)
 
 
 /**
- * gda_value_set_binary: (skip)
+ * gda_value_set_binary:
  * @value: a #GValue that will store @val.
  * @binary: a #GdaBinary structure with the data and its size to be stored in @value.
  *
  * Stores @val into @value.
  */
 void
-gda_value_set_binary (GValue *value, const GdaBinary *binary)
+gda_value_set_binary (GValue *value, GdaBinary *binary)
 {
        g_return_if_fail (value);
 
diff --git a/libgda/gda-value.h b/libgda/gda-value.h
index cf074df..b74b208 100644
--- a/libgda/gda-value.h
+++ b/libgda/gda-value.h
@@ -141,8 +141,8 @@ typedef struct _GdaBinary GdaBinary;
 #define GDA_VALUE_HOLDS_BINARY(value)          G_VALUE_HOLDS(value, GDA_TYPE_BINARY)
 
 GValue*                           gda_value_new_binary (const guchar *val, glong size);
-const GdaBinary*                                                                       gda_value_get_binary 
(const GValue *value);
-void                              gda_value_set_binary (GValue *value, const GdaBinary *binary);
+GdaBinary*                        gda_value_get_binary (GValue *value);
+void                              gda_value_set_binary (GValue *value, GdaBinary *binary);
 void                              gda_value_take_binary (GValue *value, GdaBinary *binary);
 
 
diff --git a/libgda/libgda-6.0.deps b/libgda/libgda-6.0.deps
new file mode 100644
index 0000000..1899619
--- /dev/null
+++ b/libgda/libgda-6.0.deps
@@ -0,0 +1 @@
+libxml-2.0


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