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

Reply via email to