[libgda] GdaMetaStore: remove private class' member
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] GdaMetaStore: remove private class' member
- Date: Tue, 23 Apr 2019 15:16:59 +0000 (UTC)
commit de84b72769dd59882bcb82c9d54fcfc0c9df47ba
Author: Daniel Espinosa <esodan gmail com>
Date: Tue Apr 23 09:43:20 2019 -0500
GdaMetaStore: remove private class' member
libgda/gda-meta-store.c | 322 +++++++++++++++++++++---------------------------
libgda/gda-meta-store.h | 3 -
2 files changed, 142 insertions(+), 183 deletions(-)
---
diff --git a/libgda/gda-meta-store.c b/libgda/gda-meta-store.c
index 9e2d1d1a8..43e07cfc3 100644
--- a/libgda/gda-meta-store.c
+++ b/libgda/gda-meta-store.c
@@ -71,6 +71,7 @@
// This is a copy of the macro located at gda-value.h
#define l_g_value_unset(val) G_STMT_START{ if (G_IS_VALUE (val)) g_value_unset (val); }G_STMT_END
+
/* change general information */
struct _GdaMetaStoreChange {
GdaMetaStoreChangeType c_type;
@@ -606,19 +607,6 @@ typedef struct {
GdaSet *params;
} TableConditionInfo;
-struct _GdaMetaStoreClassPrivate {
- GdaSqlParser *parser;;
- GdaStatement **prep_stmts; /* Simple prepared statements, of size STMT_LAST, general usage */
-
- /* Internal database's schema information */
- GSList *db_objects; /* list of DbObject structures */
- GHashTable *db_objects_hash; /* key = table name, value = a DbObject structure */
- GHashTable *table_cond_info_hash; /* key = string composed of the column names of
- * the parameters separated by a period,
- * value = a TableConditionInfo structure */
- GHashTable *provider_specifics; /* key = a ProviderSpecificKey , value = a ProviderSpecificValue */
-};
-
typedef struct {
gchar *prov;
gchar *path;
@@ -654,13 +642,24 @@ typedef struct {
GHashTable *extract_stmt_hash; /* key = a SQL string, value = a #GdaStatement */
GRecMutex mutex;
+ /* Internal */
+ GdaSqlParser *parser;;
+ GdaStatement **prep_stmts; /* Simple prepared statements, of size STMT_LAST, general usage */
+
+ /* Internal database's schema information */
+ GSList *db_objects; /* list of DbObject structures */
+ GHashTable *db_objects_hash; /* key = table name, value = a DbObject structure */
+ GHashTable *table_cond_info_hash; /* key = string composed of the column names of
+ * the parameters separated by a period,
+ * value = a TableConditionInfo structure */
+ GHashTable *provider_specifics; /* key = a ProviderSpecificKey , value = a ProviderSpecificValue */
} GdaMetaStorePrivate;
G_DEFINE_TYPE_WITH_PRIVATE (GdaMetaStore, gda_meta_store, G_TYPE_OBJECT)
static void db_object_free (DbObject *dbobj);
-static void create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store);
+static void create_db_objects (GdaMetaStorePrivate *priv, GdaMetaStore *store);
/* signals */
@@ -822,36 +821,61 @@ gda_meta_store_class_init (GdaMetaStoreClass *klass)
object_class->constructor = gda_meta_store_constructor;
object_class->dispose = gda_meta_store_dispose;
object_class->finalize = gda_meta_store_finalize;
+}
+
+
+static void
+gda_meta_store_init (GdaMetaStore *store)
+{
+ GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
+ priv->cnc = NULL;
+ priv->ident_style = GDA_SQL_IDENTIFIERS_LOWER_CASE;
+ priv->reserved_keyword_func = NULL;
+ priv->schema_ok = FALSE;
+
+ priv->init_error = NULL;
+ priv->version = 0;
+
+ priv->catalog = NULL;
+ priv->schema = NULL;
+
+ priv->p_db_objects = NULL;
+ priv->p_db_objects_hash = g_hash_table_new (g_str_hash, g_str_equal);
+
+ priv->override_mode = FALSE;
+
+ priv->max_extract_stmt = 10;
+ priv->current_extract_stmt = 0;
+ priv->extract_stmt_hash = NULL;
+
+ /* Class private data */
+ priv->prep_stmts = g_new0 (GdaStatement *, STMT_LAST);
+ priv->parser = gda_sql_parser_new ();
+ priv->provider_specifics = g_hash_table_new (ProviderSpecific_hash, ProviderSpecific_equal);
+ priv->db_objects_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ create_db_objects (priv, NULL);
+ priv->table_cond_info_hash = g_hash_table_new (g_str_hash, g_str_equal);
- /* Class private data */
- klass->cpriv = g_new0 (GdaMetaStoreClassPrivate, 1);
- klass->cpriv->prep_stmts = g_new0 (GdaStatement *, STMT_LAST);
- klass->cpriv->parser = gda_sql_parser_new ();
- klass->cpriv->provider_specifics = g_hash_table_new (ProviderSpecific_hash, ProviderSpecific_equal);
- klass->cpriv->db_objects_hash = g_hash_table_new (g_str_hash, g_str_equal);
- create_db_objects (klass, NULL);
- klass->cpriv->table_cond_info_hash = g_hash_table_new (g_str_hash, g_str_equal);
-
- klass->cpriv->prep_stmts[STMT_SET_VERSION] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_SET_VERSION] =
+ compute_prepared_stmt (priv->parser,
"INSERT INTO _attributes (att_name, att_value) VALUES
('_schema_version', ##version::string)");
- klass->cpriv->prep_stmts[STMT_UPD_VERSION] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_UPD_VERSION] =
+ compute_prepared_stmt (priv->parser,
"UPDATE _attributes SET att_value = ##version::string WHERE att_name =
'_schema_version'");
- klass->cpriv->prep_stmts[STMT_GET_VERSION] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_GET_VERSION] =
+ compute_prepared_stmt (priv->parser,
"SELECT att_value FROM _attributes WHERE att_name='_schema_version'");
- klass->cpriv->prep_stmts[STMT_DEL_ATT_VALUE] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_DEL_ATT_VALUE] =
+ compute_prepared_stmt (priv->parser,
"DELETE FROM _attributes WHERE att_name = ##name::string");
- klass->cpriv->prep_stmts[STMT_SET_ATT_VALUE] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_SET_ATT_VALUE] =
+ compute_prepared_stmt (priv->parser,
"INSERT INTO _attributes VALUES (##name::string,
##value::string::null)");
- klass->cpriv->prep_stmts[STMT_ADD_DECLARE_FK] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_ADD_DECLARE_FK] =
+ compute_prepared_stmt (priv->parser,
"INSERT INTO __declared_fk (constraint_name, table_catalog,
table_schema, table_name, column_name, ref_table_catalog, ref_table_schema, ref_table_name, ref_column_name)
VALUES (##fkname::string, ##tcal::string, ##tschema::string, ##tname::string, ##colname::string,
##ref_tcal::string, ##ref_tschema::string, ##ref_tname::string, ##ref_colname::string)");
- klass->cpriv->prep_stmts[STMT_DEL_DECLARE_FK] =
- compute_prepared_stmt (klass->cpriv->parser,
+ priv->prep_stmts[STMT_DEL_DECLARE_FK] =
+ compute_prepared_stmt (priv->parser,
"DELETE FROM __declared_fk WHERE constraint_name = ##fkname::string
AND table_catalog = ##tcal::string AND table_schema = ##tschema::string AND table_name = ##tname::string AND
ref_table_catalog = ##ref_tcal::string AND ref_table_schema = ##ref_tschema::string AND ref_table_name =
##ref_tname::string");
/*#define GDA_DEBUG_GRAPH*/
@@ -860,7 +884,7 @@ gda_meta_store_class_init (GdaMetaStoreClass *klass)
GString *string;
GSList *list;
string = g_string_new ("digraph G {\nrankdir = RL;\nnode [shape = box];\n");
- for (list = klass->cpriv->db_objects; list; list = list->next) {
+ for (list = priv->db_objects; list; list = list->next) {
DbObject *dbo = (DbObject*) list->data;
switch (dbo->obj_type) {
case GDA_SERVER_OPERATION_CREATE_TABLE:
@@ -894,33 +918,6 @@ gda_meta_store_class_init (GdaMetaStoreClass *klass)
g_string_free (string, TRUE);
#endif
-}
-
-
-static void
-gda_meta_store_init (GdaMetaStore *store)
-{
- GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
- priv->cnc = NULL;
- priv->ident_style = GDA_SQL_IDENTIFIERS_LOWER_CASE;
- priv->reserved_keyword_func = NULL;
- priv->schema_ok = FALSE;
-
- priv->init_error = NULL;
- priv->version = 0;
-
- priv->catalog = NULL;
- priv->schema = NULL;
-
- priv->p_db_objects = NULL;
- priv->p_db_objects_hash = g_hash_table_new (g_str_hash, g_str_equal);
-
- priv->override_mode = FALSE;
-
- priv->max_extract_stmt = 10;
- priv->current_extract_stmt = 0;
- priv->extract_stmt_hash = NULL;
-
g_rec_mutex_init (& (priv->mutex));
}
@@ -978,14 +975,14 @@ gda_meta_store_constructor (GType type,
GdaMetaStoreClass *klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
GSList *list;
if (!priv->schema) {
- /* uses all the klass->cpriv->db_objects AS IS in priv->p_db_objects */
- priv->p_db_objects = g_slist_copy (klass->cpriv->db_objects);
+ /* uses all the priv->db_objects AS IS in priv->p_db_objects */
+ priv->p_db_objects = g_slist_copy (priv->db_objects);
for (list = priv->p_db_objects; list; list = list->next)
g_hash_table_insert (priv->p_db_objects_hash, DB_OBJECT
(list->data)->obj_name,
list->data);
}
else
- create_db_objects (klass, store);
+ create_db_objects (priv, store);
}
MUTEX_UNLOCK();
@@ -1273,7 +1270,6 @@ static gboolean
initialize_cnc_struct (GdaMetaStore *store, GError **error)
{
gboolean schema_present;
- GdaMetaStoreClass *klass;
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
g_return_val_if_fail (GDA_IS_CONNECTION (priv->cnc), FALSE);
g_return_val_if_fail (gda_connection_is_opened (priv->cnc), FALSE);
@@ -1286,7 +1282,6 @@ initialize_cnc_struct (GdaMetaStore *store, GError **error)
g_clear_error (error);
/* assume schema not present => create it */
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
GSList *list;
gboolean allok = TRUE;
GdaServerProvider *prov;
@@ -1294,7 +1289,7 @@ initialize_cnc_struct (GdaMetaStore *store, GError **error)
return FALSE;
prov = gda_connection_get_provider (priv->cnc);
- for (list = klass->cpriv->db_objects; list; list = list->next) {
+ for (list = priv->db_objects; list; list = list->next) {
DbObject *dbo = DB_OBJECT (list->data);
if (dbo->create_op) {
if (!gda_server_provider_perform_operation (prov, priv->cnc, dbo->create_op, error)) {
@@ -1324,14 +1319,14 @@ initialize_cnc_struct (GdaMetaStore *store, GError **error)
/* set version info to CURRENT_SCHEMA_VERSION */
GdaSet *params;
- if (! gda_statement_get_parameters (klass->cpriv->prep_stmts[STMT_SET_VERSION], ¶ms, NULL)) {
+ if (! gda_statement_get_parameters (priv->prep_stmts[STMT_SET_VERSION], ¶ms, NULL)) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_INCORRECT_SCHEMA_ERROR,
"%s", _ ("Could not set the internal schema's version. No prepared statement's
parameters were found"));
return FALSE;
}
g_assert (gda_set_set_holder_value (params, NULL, "version", CURRENT_SCHEMA_VERSION));
if (gda_connection_statement_execute_non_select (priv->cnc,
- klass->cpriv->prep_stmts[STMT_SET_VERSION],
+ priv->prep_stmts[STMT_SET_VERSION],
params, NULL, NULL) == -1) {
g_object_unref (params);
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_INCORRECT_SCHEMA_ERROR,
@@ -1350,20 +1345,17 @@ static GdaServerOperation *create_server_operation_for_table (GHashTable *specif
static GdaServerOperation *create_server_operation_for_view (GHashTable *specific_hash,
GdaServerProvider *prov, GdaConnection *cnc,
DbObject *dbobj, GError **error);
-static gboolean prepare_dbo_server_operation (GdaMetaStoreClass *klass, GdaMetaStore *store,
GdaServerProvider *prov,
+static gboolean prepare_dbo_server_operation (GdaMetaStorePrivate *priv, GdaMetaStore *store,
GdaServerProvider *prov,
DbObject *dbo, GError **error);
static gboolean
prepare_server_operations (GdaMetaStore *store, GError **error)
{
GSList *objects;
- GdaMetaStoreClass *klass;
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
-
- for (objects = klass->cpriv->db_objects; objects; objects = objects->next) {
+ for (objects = priv->db_objects; objects; objects = objects->next) {
DbObject *dbo = DB_OBJECT (objects->data);
- if (! prepare_dbo_server_operation (klass, store, gda_connection_get_provider (priv->cnc),
+ if (! prepare_dbo_server_operation (priv, store, gda_connection_get_provider (priv->cnc),
dbo, error))
return FALSE;
}
@@ -1372,24 +1364,23 @@ prepare_server_operations (GdaMetaStore *store, GError **error)
}
static gboolean
-prepare_dbo_server_operation (GdaMetaStoreClass *klass, GdaMetaStore *store, GdaServerProvider *prov,
+prepare_dbo_server_operation (GdaMetaStorePrivate *priv, GdaMetaStore *store, GdaServerProvider *prov,
DbObject *dbo, GError **error)
{
if (dbo->create_op) {
g_object_unref (dbo->create_op);
dbo->create_op = NULL;
}
- GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
switch (dbo->obj_type) {
case GDA_SERVER_OPERATION_CREATE_TABLE:
- dbo->create_op = create_server_operation_for_table (klass->cpriv->provider_specifics,
+ dbo->create_op = create_server_operation_for_table (priv->provider_specifics,
prov, priv->cnc, dbo, error);
if (!dbo->create_op)
return FALSE;
break;
case GDA_SERVER_OPERATION_CREATE_VIEW:
- dbo->create_op = create_server_operation_for_view (klass->cpriv->provider_specifics,
+ dbo->create_op = create_server_operation_for_view (priv->provider_specifics,
prov, priv->cnc, dbo, error);
if (!dbo->create_op)
return FALSE;
@@ -1514,19 +1505,19 @@ column_name_to_index (TableInfo *tinfo, const gchar *column_name)
return -1;
}
-static DbObject *create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr node, GError
**error);
-static DbObject *create_view_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr node, GError
**error);
+static DbObject *create_table_object (GdaMetaStorePrivate *priv, GdaMetaStore *store, xmlNodePtr node,
GError **error);
+static DbObject *create_view_object (GdaMetaStorePrivate *priv, GdaMetaStore *store, xmlNodePtr node, GError
**error);
static GSList *reorder_db_objects (GSList *objects, GHashTable *hash);
static gboolean complement_db_objects (GSList *objects, GHashTable *hash, GError **error);
/*
- * Creates all DbObject structures and place them into klass->cpriv->db_objects or priv->p_db_objects
+ * Creates all DbObject structures and place them into priv->db_objects or priv->p_db_objects
*
- * If @store is %NULL, then all the DB objects created are attached to klass->cpriv->db_objects, otherwise
+ * If @store is %NULL, then all the DB objects created are attached to priv->db_objects, otherwise
* they are placed in priv->p_db_objects
*/
static void
-create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
+create_db_objects (GdaMetaStorePrivate *priv, GdaMetaStore *store)
{
xmlNodePtr node;
GError *lerror = NULL;
@@ -1537,7 +1528,6 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
xmlDocPtr doc = NULL;
gssize size;
gchar *schema;
- GdaMetaStorePrivate *priv;
/* load information schema's structure XML file */
ostream = g_memory_output_stream_new_resizable ();
@@ -1572,10 +1562,9 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
/* walk through the xmlDoc */
if (store) {
- priv = gda_meta_store_get_instance_private (store);
priv->p_db_objects = NULL;
} else
- klass->cpriv->db_objects = NULL;
+ priv->db_objects = NULL;
for (node = node->children; node; node = node->next) {
/* <specifics> tag to allow for provider specific transformations */
if (!strcmp ((gchar *) node->name, "specifics")) {
@@ -1609,7 +1598,7 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
key->path = (gchar *) context;
key->expr = (gchar *) xmlGetProp (rnode, BAD_CAST "expr");
val->repl = (gchar *) xmlGetProp (rnode, BAD_CAST
"replace_with");
- g_hash_table_insert (klass->cpriv->provider_specifics, key,
val);
+ g_hash_table_insert (priv->provider_specifics, key, val);
/*g_print ("RULE: %s, %s, %s => %s\n", key->prov,
key->path, key->expr, val->repl);*/
}
@@ -1622,7 +1611,7 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
/* <table> tag for table creation */
else if (!strcmp ((gchar *) node->name, "table")) {
DbObject *dbo;
- dbo = create_table_object (klass, store, node, error);
+ dbo = create_table_object (priv, store, node, error);
if (!dbo)
g_error ("Information schema creation error: %s",
lerror && lerror->message ? lerror->message : "No detail");
@@ -1630,7 +1619,7 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
/* <view> tag for view creation */
else if (!strcmp ((gchar *) node->name, "view")) {
DbObject *dbo;
- dbo = create_view_object (klass, store, node, error);
+ dbo = create_view_object (priv, store, node, error);
if (!dbo)
g_error ("Information schema creation error: %s",
lerror && lerror->message ? lerror->message : "No detail");
@@ -1639,22 +1628,21 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
xmlFreeDoc (doc);
if (store) {
- priv = gda_meta_store_get_instance_private (store);
priv->p_db_objects = reorder_db_objects (priv->p_db_objects, priv->p_db_objects_hash);
if (!complement_db_objects (priv->p_db_objects, priv->p_db_objects_hash, error))
g_error ("Information schema structure error: %s",
lerror && lerror->message ? lerror->message : "No detail");
}
else {
- klass->cpriv->db_objects = reorder_db_objects (klass->cpriv->db_objects,
klass->cpriv->db_objects_hash);
- if (!complement_db_objects (klass->cpriv->db_objects, klass->cpriv->db_objects_hash, error))
+ priv->db_objects = reorder_db_objects (priv->db_objects, priv->db_objects_hash);
+ if (!complement_db_objects (priv->db_objects, priv->db_objects_hash, error))
g_error ("Information schema structure error: %s",
lerror && lerror->message ? lerror->message : "No detail");
}
/* make sure that for each Table DbObject, every TableFKey in @fk_list references a primary key of
the referenced table */
GSList *list;
- for (list = klass->cpriv->db_objects; list; list = list->next) {
+ for (list = priv->db_objects; list; list = list->next) {
DbObject *dbo;
dbo = DB_OBJECT (list->data);
@@ -1716,15 +1704,14 @@ create_db_objects (GdaMetaStoreClass *klass, GdaMetaStore *store)
}
}
-static void compute_view_dependencies (GdaMetaStoreClass *klass, GdaMetaStore *store,
+static void compute_view_dependencies (GdaMetaStorePrivate *priv, GdaMetaStore *store,
DbObject *view_dbobj, GdaSqlStatement *sqlst);
static DbObject *
-create_view_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr node, GError **error)
+create_view_object (GdaMetaStorePrivate *priv, GdaMetaStore *store, xmlNodePtr node, GError **error)
{
DbObject *dbobj = NULL;
xmlChar *view_name;
gchar *complete_obj_name = NULL;
- GdaMetaStorePrivate *priv;
view_name = xmlGetProp (node, BAD_CAST "name");
if (!view_name) {
@@ -1735,7 +1722,6 @@ create_view_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr no
/* determine object's complete name */
if (store) {
- priv = gda_meta_store_get_instance_private (store);
if (priv->schema) {
complete_obj_name = g_strdup_printf ("%s.%s", priv->schema, (gchar *) view_name);
}
@@ -1744,22 +1730,20 @@ create_view_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr no
/* DbObject structure */
if (store) {
- priv = gda_meta_store_get_instance_private (store);
dbobj = g_hash_table_lookup (priv->p_db_objects_hash, view_name);
} else
- dbobj = g_hash_table_lookup (klass->cpriv->db_objects_hash, view_name);
+ dbobj = g_hash_table_lookup (priv->db_objects_hash, view_name);
if (!dbobj) {
dbobj = g_new0 (DbObject, 1);
dbobj->store = store;
dbobj->obj_name = g_strdup ((gchar *) view_name);
if (store) {
- priv = gda_meta_store_get_instance_private (store);
priv->p_db_objects = g_slist_prepend (priv->p_db_objects, dbobj);
g_hash_table_insert (priv->p_db_objects_hash, dbobj->obj_name, dbobj);
}
else {
- klass->cpriv->db_objects = g_slist_prepend (klass->cpriv->db_objects, dbobj);
- g_hash_table_insert (klass->cpriv->db_objects_hash, dbobj->obj_name, dbobj);
+ priv->db_objects = g_slist_prepend (priv->db_objects, dbobj);
+ g_hash_table_insert (priv->db_objects_hash, dbobj->obj_name, dbobj);
}
}
xmlFree (view_name);
@@ -1781,7 +1765,7 @@ create_view_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr no
/* use a parser to analyze the view dependencies */
GdaStatement *stmt;
const gchar *remain;
- stmt = gda_sql_parser_parse_string (klass->cpriv->parser, (gchar *) def, &remain, error);
+ stmt = gda_sql_parser_parse_string (priv->parser, (gchar *) def, &remain, error);
if (!stmt) {
xmlFree (def);
goto onerror;
@@ -1801,7 +1785,7 @@ create_view_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr no
(gda_statement_get_statement_type (stmt) == GDA_SQL_STATEMENT_COMPOUND)) {
GdaSqlStatement *sqlst;
g_object_get (G_OBJECT (stmt), "structure", &sqlst, NULL);
- compute_view_dependencies (klass, store, dbobj, sqlst);
+ compute_view_dependencies (priv, store, dbobj, sqlst);
gda_sql_statement_free (sqlst);
g_object_unref (stmt);
@@ -1833,12 +1817,11 @@ onerror:
static GdaSqlExpr *make_expr_EQUAL (GdaSqlAnyPart *parent, xmlChar *cname, xmlChar *type, GType ptype,
gboolean nullok, gint index);
static GdaSqlExpr *make_expr_AND (GdaSqlAnyPart *parent, GdaSqlExpr *current);
static DbObject *
-create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr node, GError **error)
+create_table_object (GdaMetaStorePrivate *priv, GdaMetaStore *store, xmlNodePtr node, GError **error)
{
DbObject *dbobj;
xmlChar *table_name;
gchar *complete_obj_name;
- GdaMetaStorePrivate *priv;
table_name = xmlGetProp (node, BAD_CAST "name");
if (!table_name) {
@@ -1864,7 +1847,7 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
priv = gda_meta_store_get_instance_private (store);
dbobj = g_hash_table_lookup (priv->p_db_objects_hash, table_name);
} else
- dbobj = g_hash_table_lookup (klass->cpriv->db_objects_hash, table_name);
+ dbobj = g_hash_table_lookup (priv->db_objects_hash, table_name);
if (!dbobj) {
dbobj = g_new0 (DbObject, 1);
dbobj->store = store;
@@ -1874,8 +1857,8 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
g_hash_table_insert (priv->p_db_objects_hash, dbobj->obj_name, dbobj);
}
else {
- klass->cpriv->db_objects = g_slist_prepend (klass->cpriv->db_objects, dbobj);
- g_hash_table_insert (klass->cpriv->db_objects_hash, dbobj->obj_name, dbobj);
+ priv->db_objects = g_slist_prepend (priv->db_objects, dbobj);
+ g_hash_table_insert (priv->db_objects_hash, dbobj->obj_name, dbobj);
}
}
xmlFree (table_name);
@@ -1885,7 +1868,7 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
/* current_all */
gchar *sql;
sql = g_strdup_printf ("SELECT * FROM %s", complete_obj_name);
- TABLE_INFO (dbobj)->current_all = compute_prepared_stmt (klass->cpriv->parser, sql);
+ TABLE_INFO (dbobj)->current_all = compute_prepared_stmt (priv->parser, sql);
g_free (sql);
if (!TABLE_INFO (dbobj)->current_all) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_INTERNAL_ERROR,
@@ -1896,7 +1879,7 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
/* delete all */
sql = g_strdup_printf ("DELETE FROM %s", complete_obj_name);
- TABLE_INFO (dbobj)->delete_all = compute_prepared_stmt (klass->cpriv->parser, sql);
+ TABLE_INFO (dbobj)->delete_all = compute_prepared_stmt (priv->parser, sql);
g_free (sql);
if (!TABLE_INFO (dbobj)->delete_all) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_INTERNAL_ERROR,
@@ -2132,7 +2115,7 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
priv = gda_meta_store_get_instance_private (store);
ref_obj = g_hash_table_lookup (priv->p_db_objects_hash, ref_table);
} else
- ref_obj = g_hash_table_lookup (klass->cpriv->db_objects_hash, ref_table);
+ ref_obj = g_hash_table_lookup (priv->db_objects_hash, ref_table);
if (!ref_obj) {
ref_obj = g_new0 (DbObject, 1);
ref_obj->store = store;
@@ -2145,8 +2128,8 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
ref_obj);
}
else {
- klass->cpriv->db_objects = g_slist_prepend (klass->cpriv->db_objects,
ref_obj);
- g_hash_table_insert (klass->cpriv->db_objects_hash,
ref_obj->obj_name, ref_obj);
+ priv->db_objects = g_slist_prepend (priv->db_objects, ref_obj);
+ g_hash_table_insert (priv->db_objects_hash, ref_obj->obj_name,
ref_obj);
}
}
xmlFree (ref_table);
@@ -2258,7 +2241,7 @@ create_table_object (GdaMetaStoreClass *klass, GdaMetaStore *store, xmlNodePtr n
priv = gda_meta_store_get_instance_private (store);
g_hash_table_insert (priv->p_db_objects_hash, dbobj->obj_name, dbobj);
} else
- g_hash_table_insert (klass->cpriv->db_objects_hash, dbobj->obj_name, dbobj);
+ g_hash_table_insert (priv->db_objects_hash, dbobj->obj_name, dbobj);
g_free (complete_obj_name);
return dbobj;
@@ -2315,10 +2298,9 @@ make_expr_EQUAL (GdaSqlAnyPart *parent, xmlChar *cname, G_GNUC_UNUSED xmlChar *t
static void
-compute_view_dependencies (GdaMetaStoreClass *klass, GdaMetaStore *store,
+compute_view_dependencies (GdaMetaStorePrivate *priv, GdaMetaStore *store,
DbObject *view_dbobj, GdaSqlStatement *sqlst)
{
- GdaMetaStorePrivate *priv;
if (sqlst->stmt_type == GDA_SQL_STATEMENT_SELECT) {
GdaSqlStatementSelect *selst;
selst = (GdaSqlStatementSelect*) (sqlst->contents);
@@ -2333,7 +2315,7 @@ compute_view_dependencies (GdaMetaStoreClass *klass, GdaMetaStore *store,
priv = gda_meta_store_get_instance_private (store);
ref_obj = g_hash_table_lookup (priv->p_db_objects_hash, t->table_name);
} else
- ref_obj = g_hash_table_lookup (klass->cpriv->db_objects_hash, t->table_name);
+ ref_obj = g_hash_table_lookup (priv->db_objects_hash, t->table_name);
if (!ref_obj) {
ref_obj = g_new0 (DbObject, 1);
@@ -2347,8 +2329,8 @@ compute_view_dependencies (GdaMetaStoreClass *klass, GdaMetaStore *store,
ref_obj);
}
else {
- klass->cpriv->db_objects = g_slist_prepend (klass->cpriv->db_objects,
ref_obj);
- g_hash_table_insert (klass->cpriv->db_objects_hash,
ref_obj->obj_name, ref_obj);
+ priv->db_objects = g_slist_prepend (priv->db_objects, ref_obj);
+ g_hash_table_insert (priv->db_objects_hash, ref_obj->obj_name,
ref_obj);
}
}
view_dbobj->depend_list = g_slist_append (view_dbobj->depend_list, ref_obj);
@@ -2359,7 +2341,7 @@ compute_view_dependencies (GdaMetaStoreClass *klass, GdaMetaStore *store,
GSList *list;
cst = (GdaSqlStatementCompound*) (sqlst->contents);
for (list = cst->stmt_list; list; list = list->next)
- compute_view_dependencies (klass, store, view_dbobj, (GdaSqlStatement*) list->data);
+ compute_view_dependencies (priv, store, view_dbobj, (GdaSqlStatement*) list->data);
}
else
g_assert_not_reached ();
@@ -2569,17 +2551,16 @@ update_schema_version (GdaMetaStore *store, G_GNUC_UNUSED const gchar *version,
{
GdaSet *params;
GdaMetaStoreClass *klass;
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
- if (! gda_statement_get_parameters (klass->cpriv->prep_stmts[STMT_UPD_VERSION], ¶ms, NULL)) {
+ if (! gda_statement_get_parameters (priv->prep_stmts[STMT_UPD_VERSION], ¶ms, NULL)) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_INCORRECT_SCHEMA_ERROR,
"%s", _ ("Could not update the internal schema's version. No prepared statement's
parameters were found"));
return FALSE;
}
g_assert (gda_set_set_holder_value (params, NULL, "version", CURRENT_SCHEMA_VERSION));
if (gda_connection_statement_execute_non_select (priv->cnc,
- klass->cpriv->prep_stmts[STMT_UPD_VERSION],
+ priv->prep_stmts[STMT_UPD_VERSION],
params, NULL, NULL) == -1) {
g_object_unref (params);
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_INCORRECT_SCHEMA_ERROR,
@@ -2624,12 +2605,10 @@ static gboolean
create_a_dbobj (GdaMetaStore *store, const gchar *obj_name, GError **error)
{
DbObject *dbobj;
- GdaMetaStoreClass *klass;
GdaServerProvider *prov;
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- dbobj = g_hash_table_lookup (klass->cpriv->db_objects_hash, obj_name);
+ dbobj = g_hash_table_lookup (priv->db_objects_hash, obj_name);
if (!dbobj) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_SCHEMA_OBJECT_NOT_FOUND_ERROR,
_("Schema description does not contain the object '%s', check installation"),
@@ -2637,7 +2616,7 @@ create_a_dbobj (GdaMetaStore *store, const gchar *obj_name, GError **error)
return FALSE;
}
prov = gda_connection_get_provider (priv->cnc);
- if (! prepare_dbo_server_operation (klass, store, prov, dbobj, error))
+ if (! prepare_dbo_server_operation (priv, store, prov, dbobj, error))
return FALSE;
g_assert (dbobj->create_op);
@@ -2656,13 +2635,11 @@ static gboolean
add_a_column (GdaMetaStore *store, const gchar *table_name, const gchar *column_name, GError **error)
{
DbObject *dbobj;
- GdaMetaStoreClass *klass;
GdaServerProvider *prov;
gboolean retval = FALSE;
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- dbobj = g_hash_table_lookup (klass->cpriv->db_objects_hash, table_name);
+ dbobj = g_hash_table_lookup (priv->db_objects_hash, table_name);
if (!dbobj) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_SCHEMA_OBJECT_NOT_FOUND_ERROR,
_("Schema description does not contain the object '%s', check installation"),
@@ -2687,7 +2664,7 @@ add_a_column (GdaMetaStore *store, const gchar *table_name, const gchar *column_
if (! gda_server_operation_set_value_at (op, tcol->column_name,
error, "/COLUMN_DEF_P/COLUMN_NAME"))
goto out;
- repl = provider_specific_match (klass->cpriv->provider_specifics, prov,
+ repl = provider_specific_match (priv->provider_specifics, prov,
tcol->column_type ? tcol->column_type : "string",
"/FIELDS_A/@COLUMN_TYPE");
if (! gda_server_operation_set_value_at (op, repl ? repl : "string", error,
@@ -2814,7 +2791,7 @@ handle_schema_version (GdaMetaStore *store, gboolean *schema_present, GError **e
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
model = gda_connection_statement_execute_select_fullv (priv->cnc,
- klass->cpriv->prep_stmts[STMT_GET_VERSION],
+ priv->prep_stmts[STMT_GET_VERSION],
NULL, GDA_STATEMENT_MODEL_RANDOM_ACCESS, NULL,
0, G_TYPE_STRING, -1);
if (schema_present)
@@ -2985,11 +2962,9 @@ gda_meta_store_extract (GdaMetaStore *store, const gchar *select_sql, GError **e
if (stmt)
g_object_ref (stmt);
else {
- GdaMetaStoreClass *klass;
const gchar *remain;
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- stmt = gda_sql_parser_parse_string (klass->cpriv->parser, select_sql, &remain, error);
+ stmt = gda_sql_parser_parse_string (priv->parser, select_sql, &remain, error);
if (!stmt) {
g_rec_mutex_unlock (& (priv->mutex));
return NULL;
@@ -3111,11 +3086,9 @@ gda_meta_store_extract_v (GdaMetaStore *store, const gchar *select_sql, GHashTab
if (stmt)
g_object_ref (stmt);
else {
- GdaMetaStoreClass *klass;
const gchar *remain;
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- stmt = gda_sql_parser_parse_string (klass->cpriv->parser, select_sql, &remain, error);
+ stmt = gda_sql_parser_parse_string (priv->parser, select_sql, &remain, error);
if (!stmt) {
g_rec_mutex_unlock (& (priv->mutex));
return NULL;
@@ -3802,21 +3775,21 @@ prepare_tables_infos (GdaMetaStore *store, TableInfo **out_table_infos, TableCon
gchar *key;
key = g_strdup_printf ("%s.%s", table_name, condition);
*out_with_key = TRUE;
- *out_cond_infos = g_hash_table_lookup (klass->cpriv->table_cond_info_hash, key);
+ *out_cond_infos = g_hash_table_lookup (priv->table_cond_info_hash, key);
if (! *out_cond_infos) {
*out_cond_infos = create_custom_set (store, table_name, condition, error);
if (! *out_cond_infos) {
g_free (key);
return FALSE;
}
- g_hash_table_insert (klass->cpriv->table_cond_info_hash, key, *out_cond_infos);
+ g_hash_table_insert (priv->table_cond_info_hash, key, *out_cond_infos);
}
else
g_free (key);
}
/* fetch or create *out_table_infos */
- DbObject *dbobj = g_hash_table_lookup (klass->cpriv->db_objects_hash, table_name);
+ DbObject *dbobj = g_hash_table_lookup (priv->db_objects_hash, table_name);
if (!dbobj) {
g_set_error (error, GDA_META_STORE_ERROR, GDA_META_STORE_SCHEMA_OBJECT_NOT_FOUND_ERROR,
_("Unknown database object '%s'"), table_name);
@@ -3850,16 +3823,16 @@ prepare_tables_infos (GdaMetaStore *store, TableInfo **out_table_infos, TableCon
static TableConditionInfo *
create_custom_set (GdaMetaStore *store, const gchar *table_name, const gchar *condition, GError **error)
{
- GdaMetaStoreClass *klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
gchar *sql;
TableConditionInfo *set;
+ GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
g_assert (condition);
set = g_new0 (TableConditionInfo, 1);
/* SELECT */
sql = g_strdup_printf ("SELECT * FROM %s WHERE %s", table_name, condition);
- set->select = compute_prepared_stmt (klass->cpriv->parser, sql);
+ set->select = compute_prepared_stmt (priv->parser, sql);
g_free (sql);
if (!set->select ||
(gda_statement_get_statement_type (set->select) != GDA_SQL_STATEMENT_SELECT)) {
@@ -3874,7 +3847,7 @@ create_custom_set (GdaMetaStore *store, const gchar *table_name, const gchar *co
/* DELETE */
sql = g_strdup_printf ("DELETE FROM %s WHERE %s", table_name, condition);
- set->delete = compute_prepared_stmt (klass->cpriv->parser, sql);
+ set->delete = compute_prepared_stmt (priv->parser, sql);
g_free (sql);
if (!set->delete||
(gda_statement_get_statement_type (set->delete) != GDA_SQL_STATEMENT_DELETE)) {
@@ -4081,15 +4054,13 @@ GSList *
gda_meta_store_schema_get_all_tables (GdaMetaStore *store)
{
GSList *list, *ret;
- GdaMetaStoreClass *klass;
g_return_val_if_fail (GDA_IS_META_STORE (store), NULL);
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
g_rec_mutex_lock (& (priv->mutex));
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- for (ret = NULL, list = klass->cpriv->db_objects; list; list = list->next) {
+ for (ret = NULL, list = priv->db_objects; list; list = list->next) {
DbObject *dbobj = DB_OBJECT (list->data);
if (dbobj->obj_type == GDA_SERVER_OPERATION_CREATE_TABLE)
ret = g_slist_prepend (ret, dbobj->obj_name);
@@ -4221,10 +4192,8 @@ gda_meta_store_schema_get_structure (GdaMetaStore *store, GError **error)
/* complement the meta struct with some info about dependencies */
GSList *list, *all_db_obj_list;
- GdaMetaStoreClass *klass;
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- all_db_obj_list = g_slist_copy (klass->cpriv->db_objects);
+ all_db_obj_list = g_slist_copy (priv->db_objects);
if (real_priv->p_db_objects)
all_db_obj_list = g_slist_concat (all_db_obj_list,
g_slist_copy (real_priv->p_db_objects));
@@ -4350,7 +4319,6 @@ gboolean
gda_meta_store_set_attribute_value (GdaMetaStore *store, const gchar *att_name,
const gchar *att_value, GError **error)
{
- GdaMetaStoreClass *klass;
static GMutex set_mutex;
static GdaSet *set = NULL;
gboolean started_transaction = FALSE;
@@ -4367,10 +4335,9 @@ gda_meta_store_set_attribute_value (GdaMetaStore *store, const gchar *att_name,
g_rec_mutex_lock (& (priv->mutex));
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
g_mutex_lock (&set_mutex);
if (!set) {
- if (!gda_statement_get_parameters (klass->cpriv->prep_stmts [STMT_SET_ATT_VALUE], &set,
error)) {
+ if (!gda_statement_get_parameters (priv->prep_stmts [STMT_SET_ATT_VALUE], &set, error)) {
g_mutex_unlock (&set_mutex);
g_rec_mutex_unlock (& (priv->mutex));
return FALSE;
@@ -4396,7 +4363,7 @@ gda_meta_store_set_attribute_value (GdaMetaStore *store, const gchar *att_name,
/* delete existing attribute */
if (gda_connection_statement_execute_non_select (priv->cnc,
- klass->cpriv->prep_stmts [STMT_DEL_ATT_VALUE], set,
+ priv->prep_stmts [STMT_DEL_ATT_VALUE], set,
NULL, error) == -1)
goto onerror;
@@ -4406,7 +4373,7 @@ gda_meta_store_set_attribute_value (GdaMetaStore *store, const gchar *att_name,
goto onerror;
if (gda_connection_statement_execute_non_select (priv->cnc,
- klass->cpriv->prep_stmts
[STMT_SET_ATT_VALUE], set,
+ priv->prep_stmts [STMT_SET_ATT_VALUE], set,
NULL, error) == -1)
goto onerror;
}
@@ -4487,7 +4454,6 @@ gda_meta_store_schema_add_custom_object (GdaMetaStore *store, const gchar *xml_d
{
xmlDocPtr doc;
xmlNodePtr node;
- GdaMetaStoreClass *klass;
DbObject *dbo = NULL;
GValue *value;
GdaMetaStore *pstore = NULL;
@@ -4516,9 +4482,8 @@ gda_meta_store_schema_add_custom_object (GdaMetaStore *store, const gchar *xml_d
g_rec_mutex_lock (& (priv->mutex));
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
- /* check that object name does not start with '_' */
+ /* check that object name does not start with '_' */
xmlChar *prop;
prop = xmlGetProp (node, BAD_CAST "name");
if (!prop) {
@@ -4538,9 +4503,9 @@ gda_meta_store_schema_add_custom_object (GdaMetaStore *store, const gchar *xml_d
/* create DbObject structure from XML description, stored in @store's custom db objects */
if (!strcmp ((gchar *) node->name, "table"))
- dbo = create_table_object (klass, store, node, error);
+ dbo = create_table_object (priv, store, node, error);
else if (!strcmp ((gchar *) node->name, "view"))
- dbo = create_view_object (klass, store, node, error);
+ dbo = create_view_object (priv, store, node, error);
if (!dbo)
goto onerror;
@@ -4638,7 +4603,7 @@ gda_meta_store_schema_add_custom_object (GdaMetaStore *store, const gchar *xml_d
/* prepare the create operation */
GdaServerProvider *prov;
prov = gda_connection_get_provider (priv->cnc);
- if (! prepare_dbo_server_operation (klass, store, prov, dbo, error))
+ if (! prepare_dbo_server_operation (priv, store, prov, dbo, error))
goto onerror;
/* actually create the object in database */
@@ -4723,7 +4688,6 @@ _gda_meta_store_validate_context (GdaMetaStore *store, GdaMetaContext *context,
g_return_val_if_fail (GDA_IS_META_STORE (store), NULL);
g_return_val_if_fail (context != NULL, NULL);
- GdaMetaStoreClass *klass;
gint i;
GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
@@ -4738,10 +4702,8 @@ _gda_meta_store_validate_context (GdaMetaStore *store, GdaMetaContext *context,
return NULL;
}
- klass = GDA_META_STORE_CLASS (G_OBJECT_GET_CLASS (store));
-
/* handle quoted SQL identifiers */
- DbObject *dbobj = g_hash_table_lookup (klass->cpriv->db_objects_hash, context->table_name);
+ DbObject *dbobj = g_hash_table_lookup (priv->db_objects_hash, context->table_name);
if (dbobj && (dbobj->obj_type == GDA_SERVER_OPERATION_CREATE_TABLE)) {
GdaMetaContext *lcontext;
TableInfo *tinfo;
@@ -5081,13 +5043,11 @@ gda_meta_store_declare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruct,
{
gboolean retval = FALSE;
GdaSet *params = NULL;
- GdaMetaStoreClass *klass;
GdaMetaTable *mtable = NULL, *ref_mtable = NULL;
GdaMetaDbObject *dbo = NULL, *ref_dbo = NULL;
GdaMetaStruct *u_mstruct = NULL;
g_return_val_if_fail (GDA_IS_META_STORE (store), FALSE);
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
g_return_val_if_fail (!mstruct || GDA_IS_META_STRUCT (mstruct), FALSE);
g_return_val_if_fail (fk_name, FALSE);
g_return_val_if_fail (!catalog || (catalog && schema), FALSE);
@@ -5098,6 +5058,8 @@ gda_meta_store_declare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruct,
g_return_val_if_fail (colnames, FALSE);
g_return_val_if_fail (ref_colnames, FALSE);
+ GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
+
if (!mstruct)
u_mstruct = (GdaMetaStruct*) g_object_new (GDA_TYPE_META_STRUCT, "meta-store", store,
"features", GDA_META_STRUCT_FEATURE_NONE, NULL);
@@ -5163,7 +5125,7 @@ gda_meta_store_declare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruct,
ref_mtable = GDA_META_TABLE (ref_dbo);
/* set statement's variables */
- if (! gda_statement_get_parameters (klass->cpriv->prep_stmts[STMT_ADD_DECLARE_FK],
+ if (! gda_statement_get_parameters (priv->prep_stmts[STMT_ADD_DECLARE_FK],
¶ms, error))
goto out;
if (! gda_set_set_holder_value (params, error, "tcal", dbo->obj_catalog))
@@ -5191,7 +5153,7 @@ gda_meta_store_declare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruct,
/* remove existing declared FK, if any */
if (gda_connection_statement_execute_non_select (store_cnc,
- klass->cpriv->prep_stmts[STMT_DEL_DECLARE_FK],
+ priv->prep_stmts[STMT_DEL_DECLARE_FK],
params,
NULL, error) == -1) {
if (intrans)
@@ -5242,7 +5204,7 @@ gda_meta_store_declare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruct,
goto out;
if (gda_connection_statement_execute_non_select (store_cnc,
-
klass->cpriv->prep_stmts[STMT_ADD_DECLARE_FK],
+ priv->prep_stmts[STMT_ADD_DECLARE_FK],
params,
NULL, error) == -1) {
if (intrans)
@@ -5304,12 +5266,10 @@ gda_meta_store_undeclare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruc
{
gboolean retval = FALSE;
GdaSet *params = NULL;
- GdaMetaStoreClass *klass;
GdaMetaDbObject *dbo = NULL, *ref_dbo = NULL;
GdaMetaStruct *u_mstruct = NULL;
g_return_val_if_fail (GDA_IS_META_STORE (store), FALSE);
- klass = (GdaMetaStoreClass *) G_OBJECT_GET_CLASS (store);
g_return_val_if_fail (!mstruct || GDA_IS_META_STRUCT (mstruct), FALSE);
g_return_val_if_fail (fk_name, FALSE);
g_return_val_if_fail (!catalog || (catalog && schema), FALSE);
@@ -5317,6 +5277,8 @@ gda_meta_store_undeclare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruc
g_return_val_if_fail (table, FALSE);
g_return_val_if_fail (ref_table, FALSE);
+ GdaMetaStorePrivate *priv = gda_meta_store_get_instance_private (store);
+
if (!mstruct)
u_mstruct = (GdaMetaStruct*) g_object_new (GDA_TYPE_META_STRUCT, "meta-store", store,
"features", GDA_META_STRUCT_FEATURE_NONE, NULL);
@@ -5380,7 +5342,7 @@ gda_meta_store_undeclare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruc
goto out;
/* set statement's variables */
- if (! gda_statement_get_parameters (klass->cpriv->prep_stmts[STMT_DEL_DECLARE_FK],
+ if (! gda_statement_get_parameters (priv->prep_stmts[STMT_DEL_DECLARE_FK],
¶ms, error))
goto out;
if (! gda_set_set_holder_value (params, error, "tcal", dbo->obj_catalog))
@@ -5408,7 +5370,7 @@ gda_meta_store_undeclare_foreign_key (GdaMetaStore *store, GdaMetaStruct *mstruc
/* remove existing declared FK, if any */
if (gda_connection_statement_execute_non_select (store_cnc,
- klass->cpriv->prep_stmts[STMT_DEL_DECLARE_FK],
+ priv->prep_stmts[STMT_DEL_DECLARE_FK],
params,
NULL, error) == -1) {
if (intrans)
diff --git a/libgda/gda-meta-store.h b/libgda/gda-meta-store.h
index 1f72612c3..0fba7f789 100644
--- a/libgda/gda-meta-store.h
+++ b/libgda/gda-meta-store.h
@@ -115,13 +115,10 @@ typedef struct {
GHashTable *columns;/* Added since 5.2 */
} GdaMetaContext;
-typedef struct _GdaMetaStoreClassPrivate GdaMetaStoreClassPrivate;
-
/* struct for the object's class */
struct _GdaMetaStoreClass
{
GObjectClass parent_class;
- GdaMetaStoreClassPrivate *cpriv;
/* signals the changes */
void (*meta_reset) (GdaMetaStore *store);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]