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]