Changeset: a6f4d2ee4a53 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a6f4d2ee4a53
Modified Files:
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/common/sql_list.c
        sql/include/sql_catalog.h
        sql/server/rel_distribute.c
        sql/server/rel_optimizer.c
        sql/server/rel_propagate.c
        sql/server/sql_mvc.c
        sql/server/sql_partition.c
        sql/server/sql_privileges.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_catalog.c
        sql/storage/store.c
        sql/storage/store_dependency.c
Branch: nospare
Log Message:

adapted interface of find_sql_table* functions, all will need the transaction.


diffs (truncated from 1826 to 300 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2852,7 +2852,7 @@ SQLupgrades(Client c, mvc *m)
        m->errstr[0] = '\0';
        sqlstore *store = m->session->tr->store;
        if (f && sql_privilege(m, ROLE_PUBLIC, f->func->base.id, PRIV_EXECUTE) 
!= PRIV_EXECUTE) {
-               sql_table *privs = find_sql_table(s, "privileges");
+               sql_table *privs = find_sql_table(m->session->tr, s, 
"privileges");
                int pub = ROLE_PUBLIC, p = PRIV_EXECUTE, zero = 0;
 
                store->table_api.table_insert(m->session->tr, privs, 
&f->func->base.id, &pub, &p, &zero, &zero);
diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -45,7 +45,7 @@ monet5_drop_user(ptr _mvc, str user)
                return FALSE;
        }
        sys = find_sql_schema(m->session->tr, "sys");
-       users = find_sql_table(sys, "db_user_info");
+       users = find_sql_table(m->session->tr, sys, "db_user_info");
        users_name = find_sql_column(users, "name");
 
        sqlstore *store = m->session->tr->store;
@@ -176,8 +176,8 @@ monet5_create_user(ptr _mvc, str user, s
                return ret;
 
        user_id = store_next_oid(m->session->tr->store);
-       db_user_info = find_sql_table(s, "db_user_info");
-       auths = find_sql_table(s, "auths");
+       db_user_info = find_sql_table(m->session->tr, s, "db_user_info");
+       auths = find_sql_table(m->session->tr, s, "auths");
        store->table_api.table_insert(m->session->tr, db_user_info, user, 
fullname, &schema_id, schema_path);
        store->table_api.table_insert(m->session->tr, auths, &user_id, user, 
&grantorid);
        return NULL;
@@ -316,7 +316,7 @@ monet5_schema_has_user(ptr _mvc, sql_sch
        mvc *m = (mvc *) _mvc;
        oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
-       sql_table *users = find_sql_table(sys, "db_user_info");
+       sql_table *users = find_sql_table(m->session->tr, sys, "db_user_info");
        sql_column *users_schema = find_sql_column(users, "default_schema");
        sqlid schema_id = s->base.id;
 
@@ -407,7 +407,7 @@ monet5_alter_user(ptr _mvc, str user, st
        sqlstore *store = m->session->tr->store;
        if (schema_id) {
                sql_schema *sys = find_sql_schema(m->session->tr, "sys");
-               sql_table *info = find_sql_table(sys, "db_user_info");
+               sql_table *info = find_sql_table(m->session->tr, sys, 
"db_user_info");
                sql_column *users_name = find_sql_column(info, "name");
                sql_column *users_schema = find_sql_column(info, 
"default_schema");
 
@@ -420,7 +420,7 @@ monet5_alter_user(ptr _mvc, str user, st
 
        if (schema_path) {
                sql_schema *sys = find_sql_schema(m->session->tr, "sys");
-               sql_table *info = find_sql_table(sys, "db_user_info");
+               sql_table *info = find_sql_table(m->session->tr, sys, 
"db_user_info");
                sql_column *users_name = find_sql_column(info, "name");
                sql_column *sp = find_sql_column(info, "schema_path");
 
@@ -447,9 +447,9 @@ monet5_rename_user(ptr _mvc, str olduser
        str err;
        oid rid;
        sql_schema *sys = find_sql_schema(m->session->tr, "sys");
-       sql_table *info = find_sql_table(sys, "db_user_info");
+       sql_table *info = find_sql_table(m->session->tr, sys, "db_user_info");
        sql_column *users_name = find_sql_column(info, "name");
-       sql_table *auths = find_sql_table(sys, "auths");
+       sql_table *auths = find_sql_table(m->session->tr, sys, "auths");
        sql_column *auths_name = find_sql_column(auths, "name");
 
        if ((err = AUTHchangeUsername(c, olduser, newuser)) !=MAL_SUCCEED) {
@@ -485,10 +485,10 @@ monet5_schema_user_dependencies(ptr _tra
        sql_trans *tr = (sql_trans *) _trans;
        sql_schema *s = find_sql_schema(tr, "sys");
 
-       sql_table *auths = find_sql_table(s, "auths");
+       sql_table *auths = find_sql_table(tr, s, "auths");
        sql_column *auth_name = find_sql_column(auths, "name");
 
-       sql_table *users = find_sql_table(s, "db_user_info");
+       sql_table *users = find_sql_table(tr, s, "db_user_info");
        sql_column *users_name = find_sql_column(users, "name");
        sql_column *users_sch = find_sql_column(users, "default_schema");
 
@@ -536,7 +536,7 @@ monet5_user_get_def_schema(mvc *m, int u
        str schema = NULL;
 
        sys = find_sql_schema(m->session->tr, "sys");
-       auths = find_sql_table(sys, "auths");
+       auths = find_sql_table(m->session->tr, sys, "auths");
        auths_id = find_sql_column(auths, "id");
        auths_name = find_sql_column(auths, "name");
        sqlstore *store = m->session->tr->store;
@@ -545,7 +545,7 @@ monet5_user_get_def_schema(mvc *m, int u
                return NULL;
        username = store->table_api.column_find_value(m->session->tr, 
auths_name, rid);
 
-       user_info = find_sql_table(sys, "db_user_info");
+       user_info = find_sql_table(m->session->tr, sys, "db_user_info");
        users_name = find_sql_column(user_info, "name");
        users_schema = find_sql_column(user_info, "default_schema");
        rid = store->table_api.column_find_row(m->session->tr, users_name, 
username, NULL);
@@ -557,7 +557,7 @@ monet5_user_get_def_schema(mvc *m, int u
        schema_id = *(sqlid *) p;
        _DELETE(p);
 
-       schemas = find_sql_table(sys, "schemas");
+       schemas = find_sql_table(m->session->tr, sys, "schemas");
        schemas_name = find_sql_column(schemas, "name");
        schemas_id = find_sql_column(schemas, "id");
 
@@ -598,7 +598,7 @@ monet5_user_set_def_schema(mvc *m, oid u
        }
 
        sys = find_sql_schema(m->session->tr, "sys");
-       user_info = find_sql_table(sys, "db_user_info");
+       user_info = find_sql_table(m->session->tr, sys, "db_user_info");
        users_name = find_sql_column(user_info, "name");
        users_schema = find_sql_column(user_info, "default_schema");
        users_schema_path = find_sql_column(user_info, "schema_path");
@@ -620,10 +620,10 @@ monet5_user_set_def_schema(mvc *m, oid u
        assert(p);
        schema_path = (str) p;
 
-       schemas = find_sql_table(sys, "schemas");
+       schemas = find_sql_table(m->session->tr, sys, "schemas");
        schemas_name = find_sql_column(schemas, "name");
        schemas_id = find_sql_column(schemas, "id");
-       auths = find_sql_table(sys, "auths");
+       auths = find_sql_table(m->session->tr, sys, "auths");
        auths_name = find_sql_column(auths, "name");
 
        rid = store->table_api.column_find_row(m->session->tr, schemas_id, 
&schema_id, NULL);
diff --git a/sql/common/sql_list.c b/sql/common/sql_list.c
--- a/sql/common/sql_list.c
+++ b/sql/common/sql_list.c
@@ -776,6 +776,8 @@ list_update_data(list *l, node *n, void 
                n->data = data;
                int nkey = l->ht->key(data);
                hash_add(l->ht, nkey, data);
+       } else {
+               n->data = data;
        }
        MT_lock_unset(&l->ht_lock);
 }
diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -747,8 +747,8 @@ extern sql_column *find_sql_column(sql_t
 
 extern sql_part *find_sql_part_id(sql_table *t, sqlid id);
 
-extern sql_table *find_sql_table(sql_schema *s, const char *tname);
-extern sql_table *find_sql_table_id(sql_schema *s, sqlid id);
+extern sql_table *find_sql_table(sql_trans *tr, sql_schema *s, const char 
*tname);
+extern sql_table *find_sql_table_id(sql_trans *tr, sql_schema *s, sqlid id);
 extern node *find_sql_table_node(sql_schema *s, sqlid id);
 extern sql_table *sql_trans_find_table(sql_trans *tr, sqlid id);
 
diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c
--- a/sql/server/rel_distribute.c
+++ b/sql/server/rel_distribute.c
@@ -81,7 +81,7 @@ static sql_rel *
 rewrite_replica( mvc *sql, sql_rel *rel, sql_table *t, sql_part *pd, int 
remote_prop)
 {
        node *n, *m;
-       sql_table *p = find_sql_table_id(t->s, pd->base.id);
+       sql_table *p = find_sql_table_id(sql->session->tr, t->s, pd->base.id);
        sql_rel *r = rel_basetable(sql, p, t->base.name);
 
        for (n = rel->exps->h, m = r->exps->h; n && m; n = n->next, m = 
m->next) {
@@ -197,7 +197,7 @@ replica(mvc *sql, sql_rel *rel, char *ur
                                /* replace by the replica which matches the uri 
*/
                                for (n = t->members->h; n; n = n->next) {
                                        sql_part *p = n->data;
-                                       sql_table *pt = find_sql_table_id(t->s, 
p->base.id);
+                                       sql_table *pt = 
find_sql_table_id(sql->session->tr, t->s, p->base.id);
 
                                        if (isRemote(pt) && strcmp(uri, 
pt->query) == 0) {
                                                rel = rewrite_replica(sql, rel, 
t, p, 0);
@@ -210,7 +210,7 @@ replica(mvc *sql, sql_rel *rel, char *ur
                                        sql_part *p;
                                        for (n = t->members->h; n; n = n->next) 
{
                                                sql_part *p = n->data;
-                                               sql_table *pt = 
find_sql_table_id(t->s, p->base.id);
+                                               sql_table *pt = 
find_sql_table_id(sql->session->tr, t->s, p->base.id);
 
                                                if (!isRemote(pt)) {
                                                        fnd = 1;
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -8888,7 +8888,7 @@ rel_merge_table_rewrite(visitor *v, sql_
 
                                        for (node *nt = t->members->h; nt; nt = 
nt->next) {
                                                sql_part *pd = nt->data;
-                                               sql_table *pt = 
find_sql_table_id(t->s, pd->base.id);
+                                               sql_table *pt = 
find_sql_table_id(v->sql->session->tr, t->s, pd->base.id);
                                                sql_rel *prel = 
rel_basetable(v->sql, pt, tname), *bt = NULL;
                                                int skip = 0;
                                                list *exps = NULL;
diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c
--- a/sql/server/rel_propagate.c
+++ b/sql/server/rel_propagate.c
@@ -594,7 +594,7 @@ rel_generate_subdeletes(mvc *sql, sql_re
 
        for (node *n = t->members->h; n; n = n->next) {
                sql_part *pt = (sql_part *) n->data;
-               sql_table *sub = find_sql_table_id(t->s, pt->base.id);
+               sql_table *sub = find_sql_table_id(sql->session->tr, t->s, 
pt->base.id);
                sql_rel *s1, *dup = NULL;
 
                if (!update_allowed(sql, sub, sub->base.name, 
is_delete(rel->op) ? "DELETE": "TRUNCATE",
@@ -628,7 +628,7 @@ rel_generate_subupdates(mvc *sql, sql_re
 
        for (node *n = t->members->h; n; n = n->next) {
                sql_part *pt = (sql_part *) n->data;
-               sql_table *sub = find_sql_table_id(t->s, pt->base.id);
+               sql_table *sub = find_sql_table_id(sql->session->tr, t->s, 
pt->base.id);
                sql_rel *s1, *dup = NULL;
                list *uexps = exps_copy(sql, rel->exps), *checked_updates = 
new_exp_list(sql->sa);
 
@@ -696,7 +696,7 @@ rel_generate_subinserts(sql_query *query
 
        for (node *n = t->members->h; n; n = n->next) {
                sql_part *pt = (sql_part *) n->data;
-               sql_table *sub = find_sql_table_id(t->s, pt->base.id);
+               sql_table *sub = find_sql_table_id(sql->session->tr, t->s, 
pt->base.id);
                sql_rel *s1 = NULL, *dup = NULL;
                sql_exp *le = NULL;
 
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -295,8 +295,8 @@ mvc_init(sql_allocator *pa, int debug, s
                        int pub = ROLE_PUBLIC;
                        int p = PRIV_SELECT;
                        int zero = 0;
-                       sql_table *privs = find_sql_table(s, "privileges");
-                       sql_table *deps = find_sql_table(s, "dependencies");
+                       sql_table *privs = find_sql_table(m->session->tr, s, 
"privileges");
+                       sql_table *deps = find_sql_table(m->session->tr, s, 
"dependencies");
                        store->table_api.table_insert(m->session->tr, privs, 
&t->base.id, &pub, &p, &zero, &zero);
                        assert(tview[9].name == NULL);
                        tview[9].oldid = tid;
@@ -329,8 +329,8 @@ mvc_init(sql_allocator *pa, int debug, s
                        int pub = ROLE_PUBLIC;
                        int p = PRIV_SELECT;
                        int zero = 0;
-                       sql_table *privs = find_sql_table(s, "privileges");
-                       sql_table *deps = find_sql_table(s, "dependencies");
+                       sql_table *privs = find_sql_table(m->session->tr, s, 
"privileges");
+                       sql_table *deps = find_sql_table(m->session->tr, s, 
"dependencies");
                        store->table_api.table_insert(m->session->tr, privs, 
&t->base.id, &pub, &p, &zero, &zero);
                        assert(cview[10].name == NULL);
                        cview[10].oldid = cid;
@@ -923,7 +923,7 @@ mvc_bind_schema(mvc *m, const char *snam
 sql_table *
 mvc_bind_table(mvc *m, sql_schema *s, const char *tname)
 {
-       sql_table *t = find_sql_table(s, tname);
+       sql_table *t = find_sql_table(m->session->tr, s, tname);
 
        (void) m;
        if (!t)
diff --git a/sql/server/sql_partition.c b/sql/server/sql_partition.c
--- a/sql/server/sql_partition.c
+++ b/sql/server/sql_partition.c
@@ -326,7 +326,7 @@ initialize_sql_parts(mvc *sql, sql_table
 
                for (node *n = mt->members->h; n; n = n->next) {
                        sql_part *next = (sql_part*) n->data, *p = 
SA_ZNEW(tr->sa, sql_part);
-                       sql_table *pt = find_sql_table_id(mt->s, next->base.id);
+                       sql_table *pt = find_sql_table_id(tr, mt->s, 
next->base.id);
 
                        base_init(tr->sa, &p->base, pt->base.id, TR_NEW, 
pt->base.name);
                        p->t = mt;
diff --git a/sql/server/sql_privileges.c b/sql/server/sql_privileges.c
--- a/sql/server/sql_privileges.c
+++ b/sql/server/sql_privileges.c
@@ -52,7 +52,7 @@ static void
 sql_insert_priv(mvc *sql, sqlid auth_id, sqlid obj_id, int privilege, sqlid 
grantor, int grantable)
 {
        sql_schema *ss = mvc_bind_schema(sql, "sys");
-       sql_table *pt = find_sql_table(ss, "privileges");
+       sql_table *pt = find_sql_table(sql->session->tr, ss, "privileges");
        sqlstore *store = sql->session->tr->store;
 
        store->table_api.table_insert(sql->session->tr, pt, &obj_id, &auth_id, 
&privilege, &grantor, &grantable);
@@ -219,7 +219,7 @@ static void
 sql_delete_priv(mvc *sql, sqlid auth_id, sqlid obj_id, int privilege, sqlid 
grantor, int grantable)
 {
        sql_schema *ss = mvc_bind_schema(sql, "sys");
-       sql_table *privs = find_sql_table(ss, "privileges");
+       sql_table *privs = find_sql_table(sql->session->tr, ss, "privileges");
        sql_column *priv_obj = find_sql_column(privs, "obj_id");
        sql_column *priv_auth = find_sql_column(privs, "auth_id");
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to