Changeset: 43c17249aa69 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=43c17249aa69
Modified Files:
sql/storage/store.c
Branch: Nov2019
Log Message:
make sure we don't validate queries which update already dropped tables
diffs (48 lines):
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -4065,13 +4065,18 @@ validate_tables(sql_schema *s, sql_schem
if (cs_size(&s->tables))
for (n = s->tables.set->h; n; n = n->next) {
sql_table *t = n->data;
- sql_table *ot;
+ sql_table *ot = NULL;
if (!t->base.wtime && !t->base.rtime)
continue;
- ot = find_sql_table(os, t->base.name);
- if (ot && isKindOfTable(ot) && isKindOfTable(t)) {
+ o = list_find_base_id(os->tables.set, t->base.id);
+ if (o)
+ ot = o->data;
+ if (!ot && os->tables.dset &&
list_find_base_id(os->tables.dset, t->base.id) != NULL) {
+ /* dropped table */
+ return 0;
+ } else if (ot && isKindOfTable(ot) && isKindOfTable(t)
&& !isDeclaredTable(ot) && !isDeclaredTable(t)) {
if ((t->base.wtime && (t->base.wtime <
ot->base.rtime || t->base.wtime < ot->base.wtime)) ||
(t->base.rtime && (t->base.rtime <
ot->base.wtime)))
return 0;
@@ -4288,7 +4293,8 @@ reset_table(sql_trans *tr, sql_table *ft
ft->access = pft->access;
if (pft->p) {
ft->p = find_sql_table(ft->s, pft->p->base.name);
- assert(isMergeTable(ft->p) || isReplicaTable(ft->p));
+ //the parent (merge or replica table) maybe created
later!
+ //assert(isMergeTable(ft->p) || isReplicaTable(ft->p));
} else
ft->p = NULL;
@@ -4379,6 +4385,12 @@ reset_trans(sql_trans *tr, sql_trans *pt
#ifdef STORE_DEBUG
fprintf(stderr,"#reset trans %d\n", tr->wtime);
#endif
+
+ for (node *n = tr->schemas.set->h; n; n = n->next) { /* Set table
members */
+ sql_schema *s = n->data;
+
+ set_members(&s->tables);
+ }
return res;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list