Changeset: 5833fa4e1372 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5833fa4e1372
Branch: Jul2021
Log Message:
merged
diffs (262 lines):
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1128,6 +1128,8 @@ BATappend_or_update(BAT *b, BAT *p, BAT
OIDXdestroy(b);
IMPSdestroy(b);
BATrmprop(b, GDK_UNIQUE_ESTIMATE);
+ /* load hash so that we can maintain it */
+ (void) BATcheckhash(b);
b->tsorted = b->trevsorted = false;
b->tnosorted = b->tnorevsorted = 0;
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2637,6 +2637,9 @@ hashjoin(BAT **r1p, BAT **r2p, BAT *l, B
hsh = r->thash;
}
assert(hsh != NULL || BATtdense(r));
+ if (hsh) {
+ TRC_DEBUG(ALGO, "hash for " ALGOBATFMT ": nbucket " BUNFMT ",
nunique " BUNFMT ", nheads " BUNFMT "\n", ALGOBATPAR(r), hsh->nbucket,
hsh->nunique, hsh->nheads);
+ }
ri = bat_iterator(r);
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -318,7 +318,6 @@ column_constraint_type(mvc *sql, const c
(void) sql_error(sql, 02, SQLSTATE(42000) "CONSTRAINT
%s: transaction conflict detected", (kt == pkey) ? "PRIMARY KEY" : "UNIQUE");
return res;
}
- k->base.new = 1;
mvc_create_kc(sql, k, cs);
if (!mvc_create_ukey_done(sql, k)) {
@@ -382,7 +381,6 @@ column_constraint_type(mvc *sql, const c
(void) sql_error(sql, 02, SQLSTATE(42000) "CONSTRAINT
FOREIGN KEY: transaction conflict detected");
return res;
}
- fk->k.base.new = 1;
mvc_create_fkc(sql, fk, cs);
res = SQL_OK;
} break;
@@ -581,7 +579,6 @@ table_foreign_key(mvc *sql, char *name,
sql_error(sql, 02, SQLSTATE(42000) "CONSTRAINT FOREIGN
KEY: transaction conflict detected");
return SQL_ERR;
}
- fk->k.base.new = 1;
for (fnms = rk->columns->h; nms && fnms; nms = nms->next, fnms
= fnms->next) {
char *nm = nms->data.sval;
@@ -634,7 +631,6 @@ table_constraint_type(mvc *sql, char *na
(void) sql_error(sql, 02, SQLSTATE(42000) "CONSTRAINT
%s: transaction conflict detected", (kt == pkey) ? "PRIMARY KEY" : "UNIQUE");
return SQL_ERR;
}
- k->base.new = 1;
for (; nms; nms = nms->next) {
char *nm = nms->data.sval;
sql_column *c = mvc_bind_column(sql, t, nm);
@@ -728,7 +724,6 @@ create_column(sql_query *query, symbol *
cs = mvc_create_column(sql, t, cname, ctype);
if (!cs || column_options(query, opt_list, ss, t, cs,
isDeclared) == SQL_ERR)
return SQL_ERR;
- cs->base.new = 1;
}
return res;
}
@@ -1945,7 +1940,6 @@ rel_create_index(mvc *sql, char *iname,
/* add index here */
i = mvc_create_idx(sql, nt, iname, itype);
- i->base.new = 1;
for (n = column_list->h; n; n = n->next) {
sql_column *c = mvc_bind_column(sql, nt, n->data.sval);
diff --git a/sql/server/sql_qc.c b/sql/server/sql_qc.c
--- a/sql/server/sql_qc.c
+++ b/sql/server/sql_qc.c
@@ -159,6 +159,7 @@ qc_insert(qc *cache, sql_allocator *sa,
.res = res,
};
base_init(sa, &f->base, 0, TR_NEW, NULL);
+ f->base.new = 1;
f->base.id = n->id;
f->base.name = f->imp = name;
n->f = f;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1392,6 +1392,7 @@ create_sql_table_with_id(sql_allocator *
commit_action) && commit_action>=0);
assert(id);
base_init(sa, &t->base, id, TR_NEW, name);
+ t->base.new = 1;
t->type = type;
t->system = system;
t->persistence = (temp_t)persistence;
@@ -1577,6 +1578,7 @@ bootstrap_create_schema(sql_trans *tr, c
} else {
base_init(tr->sa, &s->base, id, TR_NEW, name);
}
+ s->base.new = 1;
s->auth_id = auth_id;
s->owner = owner;
s->system = TRUE;
@@ -2987,7 +2989,7 @@ sql_trans_copy_idx( sql_trans *tr, sql_t
t = dup;
sql_idx *ni = SA_ZNEW(tr->sa, sql_idx);
base_init(tr->sa, &ni->base, i->base.id?i->base.id:next_oid(tr->store),
TR_NEW, i->base.name);
-
+ ni->base.new = 1;
ni->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
ni->t = t;
ni->type = i->type;
@@ -3043,7 +3045,7 @@ sql_trans_copy_trigger( sql_trans *tr, s
char *strnil = (char*)ATOMnilptr(TYPE_str);
base_init(tr->sa, &nt->base,
tri->base.id?tri->base.id:next_oid(tr->store), TR_NEW, tri->base.name);
-
+ nt->base.new = 1;
nt->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
nt->t = t;
nt->time = tri->time;
@@ -3199,6 +3201,7 @@ sql_trans_copy_column( sql_trans *tr, sq
t = dup;
sql_column *col = SA_ZNEW(tr->sa, sql_column);
base_init(tr->sa, &col->base,
c->base.id?c->base.id:next_oid(tr->store), TR_NEW, c->base.name);
+ col->base.new = 1;
dup_sql_type(tr, t->s, &(c->type), &(col->type));
col->def = NULL;
if (c->def)
@@ -4213,6 +4216,7 @@ sql_trans_create_type(sql_trans *tr, sql
t = SA_ZNEW(tr->sa, sql_type);
systype = find_sql_table(tr, find_sql_schema(tr, "sys"), "types");
base_init(tr->sa, &t->base, next_oid(tr->store), TR_NEW, sqlname);
+ t->base.new = 1;
t->impl = SA_STRDUP(tr->sa, impl);
t->digits = digits;
t->scale = scale;
@@ -4248,6 +4252,7 @@ create_sql_func(sqlstore *store, sql_all
sql_func *t = SA_ZNEW(sa, sql_func);
base_init(sa, &t->base, next_oid(store), TR_NEW, func);
+ t->base.new = 1;
assert(impl && mod);
t->imp = (impl)?SA_STRDUP(sa, impl):NULL;
t->mod = (mod)?SA_STRDUP(sa, mod):NULL;
@@ -4293,6 +4298,7 @@ sql_trans_create_func(sql_trans *tr, sql
bit se;
base_init(tr->sa, &t->base, next_oid(tr->store), TR_NEW, func);
+ t->base.new = 1;
assert(impl && mod);
t->imp = (impl)?SA_STRDUP(tr->sa, impl):NULL;
t->mod = (mod)?SA_STRDUP(tr->sa, mod):NULL;
@@ -4456,6 +4462,7 @@ sql_trans_create_schema(sql_trans *tr, c
sql_table *sysschema = find_sql_table(tr, find_sql_schema(tr, "sys"),
"schemas");
base_init(tr->sa, &s->base, next_oid(tr->store), TR_NEW, name);
+ s->base.new = 1;
s->auth_id = auth_id;
s->owner = owner;
s->system = FALSE;
@@ -4580,6 +4587,7 @@ sql_trans_add_table(sql_trans *tr, sql_t
p->member = pt->base.id;
base_init(tr->sa, &p->base, next_oid(store), TR_NEW, pt->base.name);
+ p->base.new = 1;
list_append(mt->members, p);
if ((res = store->table_api.table_insert(tr, sysobj, &p->base.id,
&p->base.name, &mt->base.id, &pt->base.id)))
return res;
@@ -4652,6 +4660,7 @@ sql_trans_add_range_partition(sql_trans
if (!update) {
p = SA_ZNEW(tr->sa, sql_part);
base_init(tr->sa, &p->base, next_oid(store), TR_NEW,
pt->base.name);
+ p->base.new = 1;
assert(isMergeTable(mt) || isReplicaTable(mt));
p->t = mt;
assert(pt);
@@ -4745,6 +4754,7 @@ sql_trans_add_value_partition(sql_trans
if (!update) {
p = SA_ZNEW(tr->sa, sql_part);
base_init(tr->sa, &p->base, next_oid(store), TR_NEW,
pt->base.name);
+ p->base.new = 1;
assert(isMergeTable(mt) || isReplicaTable(mt));
p->t = mt;
assert(pt);
@@ -5019,7 +5029,7 @@ create_sql_ukey(sqlstore *store, sql_all
assert(name);
base_init(sa, &nk->base, next_oid(store), TR_NEW, name);
-
+ nk->base.new = 1;
nk->type = kt;
nk->columns = SA_LIST(sa, (fdestroy) NULL);
nk->idx = NULL;
@@ -5042,7 +5052,7 @@ create_sql_fkey(sqlstore *store, sql_all
assert(name);
base_init(sa, &nk->base, next_oid(store), TR_NEW, name);
-
+ nk->base.new = 1;
nk->type = kt;
nk->columns = SA_LIST(sa, (fdestroy) NULL);
nk->t = t;
@@ -5093,7 +5103,6 @@ create_sql_idx(sqlstore *store, sql_allo
base_init(sa, &ni->base, next_oid(store), TR_NEW, name);
ni->base.new = 1;
-
ni->columns = SA_LIST(sa, (fdestroy) NULL);
ni->t = t;
ni->type = it;
@@ -5109,6 +5118,7 @@ create_sql_column_with_id(sql_allocator
sql_column *col = SA_ZNEW(sa, sql_column);
base_init(sa, &col->base, id, TR_NEW, name);
+ col->base.new = 1;
col->type = *tpe;
col->def = NULL;
col->null = 1;
@@ -5594,6 +5604,7 @@ sql_trans_create_ukey(sql_trans *tr, sql
assert(name);
base_init(tr->sa, &nk->base, next_oid(tr->store), TR_NEW, name);
+ nk->base.new = 1;
nk->type = kt;
nk->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
nk->t = t;
@@ -5638,6 +5649,7 @@ sql_trans_create_fkey(sql_trans *tr, sql
assert(name);
base_init(tr->sa, &nk->base, next_oid(tr->store), TR_NEW, name);
+ nk->base.new = 1;
nk->type = kt;
nk->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
nk->t = t;
@@ -5878,6 +5890,7 @@ sql_trans_create_idx(sql_trans *tr, sql_
assert(name);
base_init(tr->sa, &ni->base, next_oid(tr->store), TR_NEW, name);
+ ni->base.new = 1;
ni->type = it;
ni->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
ni->t = t;
@@ -5994,6 +6007,7 @@ sql_trans_create_trigger(sql_trans *tr,
t = dup;
sql_trigger *nt = SA_ZNEW(tr->sa, sql_trigger);
base_init(tr->sa, &nt->base, next_oid(tr->store), TR_NEW, name);
+ nt->base.new = 1;
nt->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
nt->t = t;
nt->time = time;
@@ -6068,6 +6082,7 @@ create_sql_sequence_with_id(sql_allocato
assert(name);
base_init(sa, &seq->base, id, TR_NEW, name);
+ seq->base.new = 1;
seq->start = start;
seq->minvalue = min;
seq->maxvalue = max;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list