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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list