Changeset: ac2b9356a5e8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ac2b9356a5e8 Modified Files: gdk/gdk_calc.c sql/server/rel_optimizer.c sql/server/rel_rewriter.c sql/server/rel_rewriter.h sql/server/rel_select.c sql/server/rel_unnest.c sql/storage/store.c sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.stable.out sql/test/Tests/hot_snapshot_compression.py sql/test/miscellaneous/Tests/simple_plans.stable.out sql/test/miscellaneous/Tests/values.stable.err sql/test/miscellaneous/Tests/values.stable.out sql/test/subquery/Tests/subquery6.stable.err sql/test/subquery/Tests/subquery6.stable.out sql/test/testdb/Tests/dump-nogeom.stable.out testing/process.py Branch: default Log Message:
Merge with Jun2020 branch. diffs (truncated from 752 to 300 lines): diff --git a/gdk/gdk_calc.c b/gdk/gdk_calc.c --- a/gdk/gdk_calc.c +++ b/gdk/gdk_calc.c @@ -102,7 +102,7 @@ checkbats(BAT *b1, BAT *b2, const char * j = x2 * incr2; \ TYPE1 v1 = ((const TYPE1 *) lft)[i]; \ TYPE2 v2 = ((const TYPE2 *) rgt)[j]; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(v1) || is_##TYPE2##_nil(v2)) { \ nils++; \ ((TYPE3 *) dst)[k] = TYPE3##_nil; \ @@ -118,7 +118,7 @@ checkbats(BAT *b1, BAT *b2, const char * j = x2 * incr2; \ TYPE1 v1 = ((const TYPE1 *) lft)[i]; \ TYPE2 v2 = ((const TYPE2 *) rgt)[j]; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(v1) || is_##TYPE2##_nil(v2)) { \ nils++; \ ((TYPE3 *) dst)[k] = TYPE3##_nil; \ @@ -141,7 +141,7 @@ checkbats(BAT *b1, BAT *b2, const char * j = x2 * incr2; \ TYPE1 v1 = ((const TYPE1 *) lft)[i]; \ TYPE2 v2 = ((const TYPE2 *) rgt)[j]; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(v1) || is_##TYPE2##_nil(v2)) { \ ((TYPE3 *) dst)[k] = FUNC(is_##TYPE1##_nil(v1), is_##TYPE2##_nil(v2)); \ } else { \ @@ -156,7 +156,7 @@ checkbats(BAT *b1, BAT *b2, const char * j = x2 * incr2; \ TYPE1 v1 = ((const TYPE1 *) lft)[i]; \ TYPE2 v2 = ((const TYPE2 *) rgt)[j]; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(v1) || is_##TYPE2##_nil(v2)) { \ ((TYPE3 *) dst)[k] = FUNC(is_##TYPE1##_nil(v1), is_##TYPE2##_nil(v2)); \ } else { \ @@ -201,7 +201,7 @@ checkbats(BAT *b1, BAT *b2, const char * j = x2 * incr2; \ TYPE1 v1 = ((const TYPE1 *) lft)[i]; \ TYPE2 v2 = ((const TYPE2 *) rgt)[j]; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(v1) || is_##TYPE2##_nil(v2)) { \ nils++; \ ((TYPE3 *) dst)[k] = TYPE3##_nil; \ @@ -228,7 +228,7 @@ checkbats(BAT *b1, BAT *b2, const char * j = x2 * incr2; \ TYPE1 v1 = ((const TYPE1 *) lft)[i]; \ TYPE2 v2 = ((const TYPE2 *) rgt)[j]; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(v1) || is_##TYPE2##_nil(v2)) { \ nils++; \ ((TYPE3 *) dst)[k] = TYPE3##_nil; \ @@ -1847,7 +1847,7 @@ add_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -1864,7 +1864,7 @@ add_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -1899,7 +1899,7 @@ add_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -1918,7 +1918,7 @@ add_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -3865,7 +3865,7 @@ sub_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -3882,7 +3882,7 @@ sub_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -3917,7 +3917,7 @@ sub_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -3936,7 +3936,7 @@ sub_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -5734,7 +5734,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -5752,7 +5752,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -5788,7 +5788,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -5808,7 +5808,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -5849,7 +5849,7 @@ mul_##TYPE1##_##TYPE2##_hge(const TYPE1 oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = hge_nil; \ nils++; \ @@ -5866,7 +5866,7 @@ mul_##TYPE1##_##TYPE2##_hge(const TYPE1 oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = hge_nil; \ nils++; \ @@ -5902,7 +5902,7 @@ mul_##TYPE1##_##TYPE2##_lng(const TYPE1 oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = lng_nil; \ nils++; \ @@ -5919,7 +5919,7 @@ mul_##TYPE1##_##TYPE2##_lng(const TYPE1 oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = lng_nil; \ nils++; \ @@ -5955,7 +5955,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -5976,7 +5976,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -7790,7 +7790,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -7815,7 +7815,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -7857,7 +7857,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -7888,7 +7888,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -9753,7 +9753,7 @@ mod_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -9772,7 +9772,7 @@ mod_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -9808,7 +9808,7 @@ mod_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next_dense(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ @@ -9828,7 +9828,7 @@ mod_##TYPE1##_##TYPE2##_##TYPE3(const TY oid x2 = canditer_next(ci2) - candoff2; \ BUN i = x1 * incr1; \ BUN j = x2 * incr2; \ - if ((rv != NULL && !rv[i]) || \ + if ((rv != NULL && !rv[k]) || \ is_##TYPE1##_nil(lft[i]) || is_##TYPE2##_nil(rgt[j])) { \ dst[k] = TYPE3##_nil; \ nils++; \ 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 @@ -2847,7 +2847,7 @@ exp_case_fixup( mvc *sql, sql_rel *rel, sql_subfunc *f = e->f; /* first fixup arguments */ - if (f->func->s || strcmp(f->func->base.name, "ifthenelse")) { + if (f->func->s || !is_ifthenelse_func(f)) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list