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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list