From d52a8841af9eb1755720d2f44e1d5f3aab79aaa2 Mon Sep 17 00:00:00 2001
From: Pavlo Solntsev
Date: Mon, 3 Sep 2018 00:07:08 -0500
Subject: [PATCH] DDL: Check for GError parameter was added
---
libgda/gda-ddl-column.c | 10 +++++++++-
libgda/gda-ddl-creator.c | 19 +++++++++++++++++--
libgda/gda-ddl-fkey.c | 33 +++++++++++++++++++++++----------
libgda/gda-ddl-fkey.h | 3 ++-
libgda/gda-ddl-table.c | 10 ++++++++++
libgda/gda-ddl-view.c | 7 +++++++
6 files changed, 68 insertions(+), 14 deletions(-)
diff --git a/libgda/gda-ddl-column.c b/libgda/gda-ddl-column.c
index b8c1bc70b..ac3057e67 100644
--- a/libgda/gda-ddl-column.c
+++ b/libgda/gda-ddl-column.c
@@ -336,6 +336,7 @@ gda_ddl_column_parse_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable,FALSE);
g_return_val_if_fail (node,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
/*TODO: Appropriate error should be set an returned.
* It should be added to the header file first
@@ -448,6 +449,7 @@ gda_ddl_column_write_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable,FALSE);
g_return_val_if_fail (rootnode,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlColumn *self = GDA_DDL_COLUMN (buildable);
@@ -548,7 +550,8 @@ _gda_ddl_column_set_type (GdaDdlColumn *self,
{
g_return_if_fail (self);
g_return_if_fail (type);
- // g_return_if_fail (!*error);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
+
GdaDdlColumnPrivate *priv = gda_ddl_column_get_instance_private (self);
GType ttype = gda_g_type_from_string (type);
if (ttype != G_TYPE_INVALID){
@@ -997,6 +1000,7 @@ gda_ddl_column_prepare_create (GdaDdlColumn *self,
{
g_return_val_if_fail(self,FALSE);
g_return_val_if_fail(op,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlColumnPrivate *priv = gda_ddl_column_get_instance_private (self);
@@ -1082,6 +1086,10 @@ gda_ddl_column_prepare_add (GdaDdlColumn *self,
GdaServerOperation *op,
GError **error)
{
+ g_return_val_if_fail (self,FALSE);
+ g_return_val_if_fail (op,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
+
GdaDdlColumnPrivate *priv = gda_ddl_column_get_instance_private (self);
if(!gda_server_operation_set_value_at(op,priv->mp_name,error,
diff --git a/libgda/gda-ddl-creator.c b/libgda/gda-ddl-creator.c
index a3815c7e4..040574e83 100644
--- a/libgda/gda-ddl-creator.c
+++ b/libgda/gda-ddl-creator.c
@@ -176,6 +176,7 @@ _gda_ddl_creator_validate_doc (xmlDocPtr doc,
GError **error)
{
g_return_val_if_fail (doc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
xmlValidCtxtPtr ctx = NULL;
@@ -227,6 +228,7 @@ _gda_ddl_creator_parse_doc (GdaDdlCreator *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (doc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
xmlChar *schema_name = NULL;
xmlNodePtr node = NULL;
@@ -359,6 +361,7 @@ gda_ddl_creator_parse_file_from_path (GdaDdlCreator *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (xmlfile,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
g_return_val_if_fail (_gda_ddl_creator_dtd,FALSE);
xmlDocPtr doc = NULL;
@@ -413,6 +416,7 @@ gda_ddl_creator_validate_file_from_path (const gchar *xmlfile,
{
g_return_val_if_fail (xmlfile,FALSE);
g_return_val_if_fail (_gda_ddl_creator_dtd,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
xmlDocPtr doc = NULL;
@@ -523,6 +527,9 @@ gda_ddl_creator_get_view (GdaDdlCreator *self,
const gchar *schema,
const gchar *name)
{
+ g_return_val_if_fail (self,NULL);
+ g_return_val_if_fail (name,NULL);
+
GdaDdlCreatorPrivate *priv = gda_ddl_creator_get_instance_private (self);
GList *it = NULL;
@@ -534,7 +541,7 @@ gda_ddl_creator_get_view (GdaDdlCreator *self,
if (!gda_ddl_base_compare (iobj,GDA_DDL_BASE(it)))
{
gda_ddl_base_free (iobj);
- return GDA_DDL_VIEW(it);
+ return GDA_DDL_VIEW(it);
}
gda_ddl_base_free (iobj);
@@ -558,6 +565,7 @@ gda_ddl_creator_parse_cnc (GdaDdlCreator *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (cnc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
if (!gda_connection_is_opened (cnc))
return FALSE;
@@ -630,6 +638,7 @@ gda_ddl_creator_append_table (GdaDdlCreator *self,
const GdaDdlTable *table)
{
g_return_if_fail (self);
+ g_return_if_fail (table);
GdaDdlCreatorPrivate *priv = gda_ddl_creator_get_instance_private (self);
@@ -650,6 +659,7 @@ gda_ddl_creator_append_view (GdaDdlCreator *self,
const GdaDdlView *view)
{
g_return_if_fail (self);
+ g_return_if_fail (view);
GdaDdlCreatorPrivate *priv = gda_ddl_creator_get_instance_private (self);
@@ -689,6 +699,7 @@ gda_ddl_creator_perform_operation (GdaDdlCreator *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (cnc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
if (!gda_connection_is_opened (cnc))
{
@@ -731,7 +742,8 @@ gda_ddl_creator_perform_operation (GdaDdlCreator *self,
g_value_set_string (schema ,gda_ddl_base_get_schema (it->data));
g_value_set_string (name ,gda_ddl_base_get_name (it->data));
- mobj = gda_meta_struct_complement (mstruct,GDA_META_DB_TABLE,catalog,schema,name,error);
+ /* We need to ignore error in the following call */
+ mobj = gda_meta_struct_complement (mstruct,GDA_META_DB_TABLE,catalog,schema,name,NULL);
if (mobj)
{
@@ -791,6 +803,7 @@ gda_ddl_creator_write_to_file (GdaDdlCreator *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (file,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
gchar *filepath = g_file_get_path (file);
gboolean res = gda_ddl_creator_write_to_path (self,filepath,error);
@@ -817,6 +830,7 @@ gda_ddl_creator_write_to_path (GdaDdlCreator *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (path,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlCreatorPrivate *priv = gda_ddl_creator_get_instance_private (self);
@@ -873,6 +887,7 @@ gda_ddl_creator_parse_file (GdaDdlCreator *self,
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (xmlfile,FALSE);
g_return_val_if_fail (_gda_ddl_creator_dtd,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GFileInputStream *istream = NULL;
xmlDocPtr doc = NULL;
diff --git a/libgda/gda-ddl-fkey.c b/libgda/gda-ddl-fkey.c
index d1732afe8..f8f597896 100644
--- a/libgda/gda-ddl-fkey.c
+++ b/libgda/gda-ddl-fkey.c
@@ -102,21 +102,23 @@ gda_ddl_fkey_new (void)
/**
* gda_ddl_fkey_new_from_meta:
* @metafkey: a #GdaMetaTableForeignKey instance
- *
- * Create a new instance from the corresponding meta object. If @metafkey is %NULL,
+ *
+ * Create a new instance from the corresponding meta object. If @metafkey is %NULL,
* this function is identical to gda_ddl_fkey_new()
*
*/
GdaDdlFkey*
gda_ddl_fkey_new_from_meta (GdaMetaTableForeignKey *metafkey)
{
+ g_return_val_if_fail (metafkey,NULL);
+
if (!metafkey)
return gda_ddl_fkey_new();
GdaMetaDbObject *refobject = GDA_META_DB_OBJECT (metafkey->meta_table);
GdaDdlFkey *fkey = gda_ddl_fkey_new ();
-
+
gda_ddl_fkey_set_ref_table (fkey,refobject->obj_full_name);
for (gint i = 0; i < metafkey->cols_nb; i++)
@@ -143,7 +145,7 @@ gda_ddl_fkey_new_from_meta (GdaMetaTableForeignKey *metafkey)
default:
break;
}
-
+
policy = GDA_META_TABLE_FOREIGN_KEY_ON_DELETE_POLICY(metafkey);
switch (policy)
{
@@ -235,7 +237,8 @@ gda_ddl_fkey_parse_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable,FALSE);
g_return_val_if_fail (node, FALSE);
-
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
+
/*
*
*
@@ -336,6 +339,7 @@ gda_ddl_fkey_write_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable, FALSE);
g_return_val_if_fail (rootnode,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlFkey *self = GDA_DDL_FKEY (buildable);
GdaDdlFkeyPrivate *priv = gda_ddl_fkey_get_instance_private (self);
@@ -345,7 +349,7 @@ gda_ddl_fkey_write_node (GdaDdlBuildable *buildable,
xmlNewProp (node,BAD_CAST gdaddlfkeynodes[GDA_DDL_FKEY_REFTABLE],
BAD_CAST priv->mp_ref_table);
-
+
xmlNewProp (node,BAD_CAST gdaddlfkeynodes[GDA_DDL_FKEY_ONUPDATE],
BAD_CAST priv->m_onupdate);
@@ -382,7 +386,7 @@ gda_ddl_fkey_buildable_interface_init (GdaDdlBuildableInterface *iface)
* @self: An object #GdaDdlFkey
*
* Return: ON DELETE action as a string. If the action is not set then the string corresponding to
- * NO_ACTION is returned.
+ * NO_ACTION is returned.
*
* Since: 6.0
*/
@@ -399,16 +403,19 @@ gda_ddl_fkey_get_ondelete (GdaDdlFkey *self)
/**
* gda_ddl_fkey_get_ondelete_id:
* @self: a #GdaDdlFkey object
- *
+ *
* The default value is %NO_ACTION
*
- * Return: ON DELETE action as a #GdaDdlFkeyReferenceAction.
+ * Return: ON DELETE action as a #GdaDdlFkeyReferenceAction. If %NULL is passed as argument then
+ * a special value %GDA_DDL_FKEY_ERROR is returned.
*
* Since: 6.0
*/
GdaDdlFkeyReferenceAction
gda_ddl_fkey_get_ondelete_id (GdaDdlFkey *self)
{
+ g_return_val_if_fail (self,GDA_DDL_FKEY_ERROR);
+
GdaDdlFkeyPrivate *priv = gda_ddl_fkey_get_instance_private (self);
return priv->m_ondelete;
@@ -483,6 +490,8 @@ gda_ddl_fkey_get_onupdate (GdaDdlFkey *self)
GdaDdlFkeyReferenceAction
gda_ddl_fkey_get_onupdate_id (GdaDdlFkey *self)
{
+ g_return_val_if_fail (self,GDA_DDL_FKEY_ERROR);
+
GdaDdlFkeyPrivate *priv = gda_ddl_fkey_get_instance_private (self);
return priv->m_onupdate;
@@ -597,7 +606,7 @@ gda_ddl_fkey_set_field (GdaDdlFkey *self,
* @op: a #GdaServerOperation to populate
* @error: error container
*
- * Prepare @op object for execution by populating with information stored in @self.
+ * Prepare @op object for execution by populating with information stored in @self.
*
* Returns: %TRUE if no error or %FALSE otherwise.
*
@@ -608,6 +617,10 @@ gda_ddl_fkey_prepare_create (GdaDdlFkey *self,
GdaServerOperation *op,
GError **error)
{
+ g_return_val_if_fail (self,FALSE);
+ g_return_val_if_fail (op,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
+
GdaDdlFkeyPrivate *priv = gda_ddl_fkey_get_instance_private (self);
if (!gda_server_operation_set_value_at(op,
diff --git a/libgda/gda-ddl-fkey.h b/libgda/gda-ddl-fkey.h
index 2c7678e8f..e3f3b30f5 100644
--- a/libgda/gda-ddl-fkey.h
+++ b/libgda/gda-ddl-fkey.h
@@ -54,7 +54,8 @@ typedef enum {
GDA_DDL_FKEY_SET_NULL,
GDA_DDL_FKEY_RESTRICT,
GDA_DDL_FKEY_SET_DEFAULT,
- GDA_DDL_FKEY_CASCADE
+ GDA_DDL_FKEY_CASCADE,
+ GDA_DDL_FKEY_ERROR
} GdaDdlFkeyReferenceAction;
diff --git a/libgda/gda-ddl-table.c b/libgda/gda-ddl-table.c
index 31c05dfa2..d0f0f9382 100644
--- a/libgda/gda-ddl-table.c
+++ b/libgda/gda-ddl-table.c
@@ -212,6 +212,7 @@ gda_ddl_table_parse_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable,FALSE);
g_return_val_if_fail (node, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlTable *self = GDA_DDL_TABLE (buildable);
@@ -277,6 +278,7 @@ gda_ddl_table_write_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable,FALSE);
g_return_val_if_fail (rootnode,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlTable *self = GDA_DDL_TABLE (buildable);
GdaDdlTablePrivate *priv = gda_ddl_table_get_instance_private (self);
@@ -477,6 +479,10 @@ gda_ddl_table_prepare_create (GdaDdlTable *self,
GdaServerOperation *op,
GError **error)
{
+ g_return_val_if_fail (self,FALSE);
+ g_return_val_if_fail (op,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
+
GdaDdlTablePrivate *priv = gda_ddl_table_get_instance_private (self);
if (!gda_server_operation_set_value_at(op,
@@ -554,6 +560,7 @@ gda_ddl_table_update (GdaDdlTable *self,
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (obj,FALSE);
g_return_val_if_fail (cnc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
if (!gda_connection_is_opened(cnc))
return FALSE;
@@ -645,6 +652,7 @@ gda_ddl_table_create (GdaDdlTable *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (cnc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
if (!gda_connection_is_opened(cnc))
return FALSE;
@@ -745,6 +753,7 @@ gda_ddl_table_append_column (GdaDdlTable *self,
GdaDdlColumn *column)
{
g_return_if_fail (self);
+ g_return_if_fail (column);
GdaDdlTablePrivate *priv = gda_ddl_table_get_instance_private (self);
@@ -765,6 +774,7 @@ gda_ddl_table_append_fkey (GdaDdlTable *self,
GdaDdlFkey *fkey)
{
g_return_if_fail (self);
+ g_return_if_fail (fkey);
GdaDdlTablePrivate *priv = gda_ddl_table_get_instance_private (self);
diff --git a/libgda/gda-ddl-view.c b/libgda/gda-ddl-view.c
index 9790e93f6..13421c128 100644
--- a/libgda/gda-ddl-view.c
+++ b/libgda/gda-ddl-view.c
@@ -216,6 +216,8 @@ gda_ddl_view_parse_node (GdaDdlBuildable *buildable,
xmlNodePtr node,
GError **error)
{
+ g_return_val_if_fail (buildable,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlView *self = GDA_DDL_VIEW (buildable);
g_return_val_if_fail (node, FALSE);
@@ -277,6 +279,7 @@ gda_ddl_view_write_node (GdaDdlBuildable *buildable,
{
g_return_val_if_fail (buildable,FALSE);
g_return_val_if_fail (rootnode,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlView *self = GDA_DDL_VIEW (buildable);
GdaDdlViewPrivate *priv = gda_ddl_view_get_instance_private (self);
@@ -468,6 +471,7 @@ gda_ddl_view_create (GdaDdlView *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (cnc,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
g_return_val_if_fail (gda_connection_is_opened(cnc),FALSE);
gda_lockable_lock((GdaLockable*)cnc);
@@ -518,6 +522,7 @@ gda_ddl_view_prepare_create (GdaDdlView *self,
{
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (op,FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL,FALSE);
GdaDdlViewPrivate *priv = gda_ddl_view_get_instance_private (self);
@@ -565,6 +570,8 @@ gda_ddl_view_prepare_create (GdaDdlView *self,
GdaDdlView*
gda_ddl_view_new_from_meta (GdaMetaView *view)
{
+ g_return_val_if_fail (view,NULL);
+
if (!view)
return gda_ddl_view_new();
--
GitLab