Changeset: 9238f56e75d2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9238f56e75d2 Modified Files: gdk/gdk_bbp.c gdk/gdk_hash.c sql/server/rel_optimizer.c sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 Branch: default Log Message:
Merge with Oct2020 branch. diffs (79 lines): diff --git a/gdk/gdk_hash.c b/gdk/gdk_hash.c --- a/gdk/gdk_hash.c +++ b/gdk/gdk_hash.c @@ -695,13 +695,15 @@ BAThashsync(void *arg) c = hash_##TYPE(h, v + o - b->hseqbase); \ hget = HASHget(h, c); \ h->nheads += hget == hnil; \ - for (hb = hget; \ - hb != hnil; \ - hb = HASHgetlink(h, hb)) { \ - if (EQ##TYPE(v[o - b->hseqbase], v[hb])) \ - break; \ + if (!hascand) { \ + for (hb = hget; \ + hb != hnil; \ + hb = HASHgetlink(h, hb)) { \ + if (EQ##TYPE(v[o - b->hseqbase], v[hb])) \ + break; \ + } \ + h->nunique += hb == hnil; \ } \ - h->nunique += hb == hnil; \ HASHputlink(h, p, hget); \ HASHput(h, c, p); \ o = canditer_next(ci); \ @@ -938,13 +940,15 @@ BAThash_impl(BAT *restrict b, struct can c = hash_any(h, v); hget = HASHget(h, c); h->nheads += hget == hnil; - for (hb = hget; - hb != hnil; - hb = HASHgetlink(h, hb)) { - if (ATOMcmp(h->type, v, BUNtail(bi, hb)) == 0) - break; + if (!hascand) { + for (hb = hget; + hb != hnil; + hb = HASHgetlink(h, hb)) { + if (ATOMcmp(h->type, v, BUNtail(bi, hb)) == 0) + break; + } + h->nunique += hb == hnil; } - h->nunique += hb == hnil; HASHputlink(h, p, hget); HASHput(h, c, p); o = canditer_next(ci); diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -643,7 +643,6 @@ order_join_expressions(mvc *sql, list *d node *n = NULL; int i, *keys, cnt = list_length(dje); void **data; - int debug = mvc_debug_on(sql, 16); if (cnt == 0) return res; @@ -661,9 +660,9 @@ order_join_expressions(mvc *sql, list *d sql_rel *r = find_rel(rels, e->r); if (l && is_select(l->op) && l->exps) - keys[i] += list_length(l->exps)*10 + exps_count(l->exps)*debug; + keys[i] += list_length(l->exps)*10 + exps_count(l->exps); if (r && is_select(r->op) && r->exps) - keys[i] += list_length(r->exps)*10 + exps_count(r->exps)*debug; + keys[i] += list_length(r->exps)*10 + exps_count(r->exps); } data[i] = n->data; } @@ -918,6 +917,8 @@ order_joins(visitor *v, list *rels, list while(list_length(exps) && fnd) { fnd = 0; /* find the first expression which could be added */ + if (list_length(sdje) > 1) + sdje = order_join_expressions(v->sql, sdje, rels); for(djn = sdje->h; djn && !fnd && rels->h; djn = (!fnd)?djn->next:NULL) { node *ln, *rn, *en; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list