Changeset: 842ad6f94b77 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/842ad6f94b77
Modified Files:
        sql/storage/store.c
Branch: Sep2022
Log Message:

make sure we maintain local temp idx/keys in the right schema.


diffs (101 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -796,7 +796,7 @@ load_table(sql_trans *tr, sql_schema *s,
 
                if (!k || ol_add(t->keys, &k->base) ||
                    os_add(s->keys, tr, k->base.name, dup_base(&k->base)) ||
-                       os_add(tr->cat->objects, tr, k->base.name, 
dup_base(&k->base))) {
+                       (isGlobal(t) && os_add(tr->cat->objects, tr, 
k->base.name, dup_base(&k->base)))) {
                        table_destroy(store, t);
                        return NULL;
                }
@@ -2919,9 +2919,8 @@ key_dup(sql_trans *tr, sql_key *k, sql_t
                list_append(nk->columns, kc_dup(tr, okc, t));
        }
 
-       if (isGlobal(t) &&
-                       ((res = os_add(t->s->keys, tr, nk->base.name, 
dup_base(&nk->base))) ||
-                        (res = os_add(tr->cat->objects, tr, nk->base.name, 
dup_base(&nk->base))))) {
+       if ((res = os_add(t->s->keys, tr, nk->base.name, dup_base(&nk->base))) 
||
+               (isGlobal(t) && (res = os_add(tr->cat->objects, tr, 
nk->base.name, dup_base(&nk->base))))) {
                return res;
        }
        *kres = nk;
@@ -3377,7 +3376,7 @@ sql_trans_copy_idx( sql_trans *tr, sql_t
        if ((res = ol_add(t->idxs, &ni->base)))
                return res;
 
-       if (isGlobal(t) && (res = os_add(t->s->idxs, tr, ni->base.name, 
dup_base(&ni->base))))
+       if ((res = os_add(t->s->idxs, tr, ni->base.name, dup_base(&ni->base))))
                return res;
        if ((res = store_reset_sql_functions(tr, t->base.id))) /* reset sql 
functions depending on the table */
                return res;
@@ -3448,7 +3447,7 @@ sql_trans_copy_trigger( sql_trans *tr, s
        if ((res = ol_add(t->triggers, &nt->base)))
                return res;
 
-       if (isGlobal(t) && (res = os_add(t->s->triggers, tr, nt->base.name, 
dup_base(&nt->base))))
+       if ((res = os_add(t->s->triggers, tr, nt->base.name, 
dup_base(&nt->base))))
                return res;
        if ((res = store_reset_sql_functions(tr, t->base.id))) /* reset sql 
functions depending on the table */
                return res;
@@ -4229,9 +4228,8 @@ sys_drop_idx(sql_trans *tr, sql_idx * i,
        }
 
        /* remove idx from schema and table */
-       if (isGlobal(i->t))
-               if ((res = os_del(i->t->s->idxs, tr, i->base.name, 
dup_base(&i->base))))
-                       return res;
+       if ((res = os_del(i->t->s->idxs, tr, i->base.name, dup_base(&i->base))))
+               return res;
        if (!isNew(i) && (res = sql_trans_add_dependency_change(tr, i->base.id, 
ddl)))
                return res;
        if ((res = sql_trans_drop_dependencies(tr, i->base.id)))
@@ -4279,12 +4277,10 @@ sys_drop_key(sql_trans *tr, sql_key *k, 
                        return res;
        }
        /* remove key from schema */
-       if (isGlobal(k->t)) {
-               if ((res = os_del(k->t->s->keys, tr, k->base.name, 
dup_base(&k->base))))
-                       return res;
-               if ((res = os_del(tr->cat->objects, tr, k->base.name, 
dup_base(&k->base))))
-                       return res;
-       }
+       if ((res = os_del(k->t->s->keys, tr, k->base.name, dup_base(&k->base))))
+               return res;
+       if (isGlobal(k->t) && (res = os_del(tr->cat->objects, tr, k->base.name, 
dup_base(&k->base))))
+               return res;
        if (k->t->pkey == (sql_ukey*)k)
                k->t->pkey = NULL;
 
@@ -4411,9 +4407,8 @@ sys_drop_trigger(sql_trans *tr, sql_trig
                        return res;
        }
        /* remove trigger from schema */
-       if (isGlobal(i->t))
-               if ((res = os_del(i->t->s->triggers, tr, i->base.name, 
dup_base(&i->base))))
-                       return res;
+       if ((res = os_del(i->t->s->triggers, tr, i->base.name, 
dup_base(&i->base))))
+               return res;
        if (!isNew(i) && (res = sql_trans_add_dependency_change(tr, i->base.id, 
ddl)))
                return res;
        if ((res = sql_trans_drop_dependencies(tr, i->base.id)))
@@ -6347,7 +6342,7 @@ sql_trans_create_ukey(sql_key **kres, sq
        if ((res = ol_add(t->keys, &nk->base)))
                return res;
        if ((res = os_add(t->s->keys, tr, nk->base.name, dup_base(&nk->base))) 
||
-               (res = os_add(tr->cat->objects, tr, nk->base.name, 
dup_base(&nk->base))))
+               (isGlobal(t) && (res = os_add(tr->cat->objects, tr, 
nk->base.name, dup_base(&nk->base)))))
                return res;
 
        if ((res = store->table_api.table_insert(tr, syskey, &nk->base.id, 
&t->base.id, &nk->type, &nk->base.name, (nk->type == fkey) ? &((sql_fkey *) 
nk)->rkey : &neg, &action)))
@@ -6396,7 +6391,7 @@ sql_trans_create_fkey(sql_fkey **kres, s
        if ((res = ol_add(t->keys, &nk->base)))
                return res;
        if ((res = os_add(t->s->keys, tr, nk->base.name, dup_base(&nk->base))) 
||
-               (res = os_add(tr->cat->objects, tr, nk->base.name, 
dup_base(&nk->base))))
+               (isGlobal(t) && (res = os_add(tr->cat->objects, tr, 
nk->base.name, dup_base(&nk->base)))))
                return res;
 
        if ((res = store->table_api.table_insert(tr, syskey, &nk->base.id, 
&t->base.id, &nk->type, &nk->base.name, (nk->type == fkey) ? &((sql_fkey *) 
nk)->rkey : &neg, &action)))
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to