Changeset: 5517ce066927 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5517ce066927
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_dump.c
sql/server/rel_optimizer.c
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
Branch: default
Log Message:
make sure we use semantics for X is NULL optimizations as well
diffs (truncated from 509 to 300 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -956,7 +956,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
if (is_atom(re->type) && re->l &&
atom_null((atom*)re->l) &&
is_atom(re2->type) && re2->l &&
atom_null((atom*)re2->l)) {
- s = sql_unop_(be, NULL,
"isnull", l);
+ assert(0); // old hack is gone
...
} else {
assert(lf && rf && a);
s = stmt_binop(be,
@@ -984,7 +984,20 @@ exp_bin(backend *be, sql_exp *e, stmt *l
compare_func((comp_type)e->flag, is_anti(e)),
tail_type(l),
tail_type(l), F_FUNC);
assert(f);
- s = stmt_binop(be, l, r, f);
+ if (is_semantics(e)) {
+ if (exp_is_null(sql, e->l) &&
exp_is_null(sql, e->r)) {
+ s = stmt_bool(be,
!is_anti(e));
+ } else {
+ list *args =
sa_list(sql->sa);
+ /* add nil semantics
bit */
+ list_append(args, l);
+ list_append(args, r);
+ list_append(args,
stmt_bool(be, 1));
+ s = stmt_Nop(be,
stmt_list(be, args), f);
+ }
+ } else {
+ s = stmt_binop(be, l, r, f);
+ }
} else {
/* this can still be a join (as
relational algebra and single value subquery results still means joins */
s = stmt_uselect(be, l, r,
(comp_type)e->flag, sel, is_anti(e), is_semantics(e));
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -1299,6 +1299,8 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
ne->flag |= CMP_BETWEEN;
if (is_anti(exp))
set_anti(ne);
+ if (is_semantics(exp))
+ set_semantics(ne);
return ne;
}
}
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
@@ -7366,9 +7366,11 @@ rel_simplify_predicates(mvc *sql, sql_re
l = args->h->data;
if (exp_subtype(l)) {
r = exp_atom(sql->sa,
atom_general(sql->sa, exp_subtype(l), NULL));
- e =
exp_compare2(sql->sa, l, r, r, 3);
+ e =
exp_compare(sql->sa, l, r, cmp_equal);
if (e && !flag)
set_anti(e);
+ if (e)
+
set_semantics(e);
}
} else if (!f->func->s &&
!strcmp(f->func->base.name, "not")) {
if (is_atom(r->type) && r->l) {
/* direct literal */
diff --git
a/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
b/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
---
a/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
+++
b/sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
@@ -34,250 +34,199 @@ stdout of test 'duplicates-not-eliminate
% 1023 # length
function user.s4_0():void;
X_142:void := querylog.define("explain select sys.timestamp_to_str(case
when task0.\"sys_created_on\" >= \\'1999-10-31 09:00:00\\' and
task0.\"sys_created_on\" < \\'2000-04-02 10:00:00\\' then
task0.\"sys_created_on\" + interval \\'-28800\\' second when
task0.\"sys_created_on\" >= \\'2000-04-02 10:00:00\\' and
task0.\"sys_created_on\" < \\'2000-10-29 09:00:00\\' then
task0.\"sys_created_on\" + interval \\'-25200\\' second when
task0.\"sys_created_on\" >= \\'2000-10-29 09:00:00\\' and
task0.\"sys_created_on\" < \\'2001-04-01 10:00:00\\' then
task0.\"sys_created_on\" + interval \\'-28800\\' second when
task0.\"sys_created_on\" >= \\'2001-04-01 10:00:00\\' and
task0.\"sys_created_on\" < \\'2001-10-28 09:00:00\\' then
task0.\"sys_created_on\" + interval \\'-25200\\' second when
task0.\"sys_created_on\" >= \\'2001-10-28 09:00:00\\' and
task0.\"sys_created_on\" < \\'2002-04-07 10:00:00\\' then
task0.\"sys_created_on\" + interval \\'-28800\\' second when
task0.\"sys_created_on\" >= \\'
2002-04-07 10:00:00\\' and
-barrier X_1766:bit := language.dataflow();
- X_1608:bat[:str] := bat.pack("sys.":str);
- X_1609:bat[:str] := bat.pack("yearref":str);
- X_1610:bat[:str] := bat.pack("clob":str);
- X_1611:bat[:int] := bat.pack(0:int);
- X_188:bat[:timestamp] := bat.new(nil:timestamp);
- X_200:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "1999-10-31
09:00:00.000000":timestamp, "2000-04-02 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_203:bat[:bit] := batcalc.isnil(X_200:bat[:bit]);
- X_217:bat[:bit] := batcalc.ifthenelse(X_203:bat[:bit], false:bit,
X_200:bat[:bit]);
- X_1454:bat[:timestamp] := mal.manifold("mtime":str,
"timestamp_add_msec_interval":str, X_188:bat[:timestamp], -28800000:lng);
- X_229:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2000-04-02
10:00:00.000000":timestamp, "2000-10-29 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_230:bat[:bit] := batcalc.isnil(X_229:bat[:bit]);
- X_245:bat[:bit] := batcalc.ifthenelse(X_230:bat[:bit], false:bit,
X_229:bat[:bit]);
- X_1458:bat[:timestamp] := mal.manifold("mtime":str,
"timestamp_add_msec_interval":str, X_188:bat[:timestamp], -25200000:lng);
- X_256:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2000-10-29
09:00:00.000000":timestamp, "2001-04-01 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_257:bat[:bit] := batcalc.isnil(X_256:bat[:bit]);
- X_271:bat[:bit] := batcalc.ifthenelse(X_257:bat[:bit], false:bit,
X_256:bat[:bit]);
- X_283:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2001-04-01
10:00:00.000000":timestamp, "2001-10-28 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_286:bat[:bit] := batcalc.isnil(X_283:bat[:bit]);
- X_300:bat[:bit] := batcalc.ifthenelse(X_286:bat[:bit], false:bit,
X_283:bat[:bit]);
- X_310:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2001-10-28
09:00:00.000000":timestamp, "2002-04-07 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_311:bat[:bit] := batcalc.isnil(X_310:bat[:bit]);
- X_327:bat[:bit] := batcalc.ifthenelse(X_311:bat[:bit], false:bit,
X_310:bat[:bit]);
- X_340:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2002-04-07
10:00:00.000000":timestamp, "2002-10-27 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_341:bat[:bit] := batcalc.isnil(X_340:bat[:bit]);
- X_353:bat[:bit] := batcalc.ifthenelse(X_341:bat[:bit], false:bit,
X_340:bat[:bit]);
- X_364:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2002-10-27
09:00:00.000000":timestamp, "2003-04-06 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_367:bat[:bit] := batcalc.isnil(X_364:bat[:bit]);
- X_382:bat[:bit] := batcalc.ifthenelse(X_367:bat[:bit], false:bit,
X_364:bat[:bit]);
- X_393:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2003-04-06
10:00:00.000000":timestamp, "2003-10-26 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_394:bat[:bit] := batcalc.isnil(X_393:bat[:bit]);
- X_410:bat[:bit] := batcalc.ifthenelse(X_394:bat[:bit], false:bit,
X_393:bat[:bit]);
- X_421:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2003-10-26
09:00:00.000000":timestamp, "2004-04-04 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_422:bat[:bit] := batcalc.isnil(X_421:bat[:bit]);
- X_435:bat[:bit] := batcalc.ifthenelse(X_422:bat[:bit], false:bit,
X_421:bat[:bit]);
- X_448:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2004-04-04
10:00:00.000000":timestamp, "2004-10-31 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_451:bat[:bit] := batcalc.isnil(X_448:bat[:bit]);
- X_464:bat[:bit] := batcalc.ifthenelse(X_451:bat[:bit], false:bit,
X_448:bat[:bit]);
- X_474:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2004-10-31
09:00:00.000000":timestamp, "2005-04-03 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_475:bat[:bit] := batcalc.isnil(X_474:bat[:bit]);
- X_492:bat[:bit] := batcalc.ifthenelse(X_475:bat[:bit], false:bit,
X_474:bat[:bit]);
- X_504:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2005-04-03
10:00:00.000000":timestamp, "2005-10-30 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_505:bat[:bit] := batcalc.isnil(X_504:bat[:bit]);
- X_518:bat[:bit] := batcalc.ifthenelse(X_505:bat[:bit], false:bit,
X_504:bat[:bit]);
- X_529:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2005-10-30
09:00:00.000000":timestamp, "2006-04-02 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_532:bat[:bit] := batcalc.isnil(X_529:bat[:bit]);
- X_547:bat[:bit] := batcalc.ifthenelse(X_532:bat[:bit], false:bit,
X_529:bat[:bit]);
- X_558:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2006-04-02
10:00:00.000000":timestamp, "2006-10-29 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_559:bat[:bit] := batcalc.isnil(X_558:bat[:bit]);
- X_574:bat[:bit] := batcalc.ifthenelse(X_559:bat[:bit], false:bit,
X_558:bat[:bit]);
- X_586:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2006-10-29
09:00:00.000000":timestamp, "2007-03-11 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_587:bat[:bit] := batcalc.isnil(X_586:bat[:bit]);
- X_600:bat[:bit] := batcalc.ifthenelse(X_587:bat[:bit], false:bit,
X_586:bat[:bit]);
- X_612:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2007-03-11
10:00:00.000000":timestamp, "2007-11-04 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_615:bat[:bit] := batcalc.isnil(X_612:bat[:bit]);
- X_629:bat[:bit] := batcalc.ifthenelse(X_615:bat[:bit], false:bit,
X_612:bat[:bit]);
- X_639:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2007-11-04
09:00:00.000000":timestamp, "2008-03-09 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_640:bat[:bit] := batcalc.isnil(X_639:bat[:bit]);
- X_657:bat[:bit] := batcalc.ifthenelse(X_640:bat[:bit], false:bit,
X_639:bat[:bit]);
- X_669:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2008-03-09
10:00:00.000000":timestamp, "2008-11-02 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_670:bat[:bit] := batcalc.isnil(X_669:bat[:bit]);
- X_682:bat[:bit] := batcalc.ifthenelse(X_670:bat[:bit], false:bit,
X_669:bat[:bit]);
- X_694:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2008-11-02
09:00:00.000000":timestamp, "2009-03-08 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_697:bat[:bit] := batcalc.isnil(X_694:bat[:bit]);
- X_711:bat[:bit] := batcalc.ifthenelse(X_697:bat[:bit], false:bit,
X_694:bat[:bit]);
- X_723:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2009-03-08
10:00:00.000000":timestamp, "2009-11-01 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_724:bat[:bit] := batcalc.isnil(X_723:bat[:bit]);
- X_739:bat[:bit] := batcalc.ifthenelse(X_724:bat[:bit], false:bit,
X_723:bat[:bit]);
- X_750:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2009-11-01
09:00:00.000000":timestamp, "2010-03-14 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_751:bat[:bit] := batcalc.isnil(X_750:bat[:bit]);
- X_765:bat[:bit] := batcalc.ifthenelse(X_751:bat[:bit], false:bit,
X_750:bat[:bit]);
- X_777:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2010-03-14
10:00:00.000000":timestamp, "2010-11-07 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_780:bat[:bit] := batcalc.isnil(X_777:bat[:bit]);
- X_794:bat[:bit] := batcalc.ifthenelse(X_780:bat[:bit], false:bit,
X_777:bat[:bit]);
- X_804:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2010-11-07
09:00:00.000000":timestamp, "2011-03-13 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_805:bat[:bit] := batcalc.isnil(X_804:bat[:bit]);
- X_821:bat[:bit] := batcalc.ifthenelse(X_805:bat[:bit], false:bit,
X_804:bat[:bit]);
- X_834:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2011-03-13
10:00:00.000000":timestamp, "2011-11-06 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_835:bat[:bit] := batcalc.isnil(X_834:bat[:bit]);
- X_847:bat[:bit] := batcalc.ifthenelse(X_835:bat[:bit], false:bit,
X_834:bat[:bit]);
- X_858:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2011-11-06
09:00:00.000000":timestamp, "2012-03-11 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_861:bat[:bit] := batcalc.isnil(X_858:bat[:bit]);
- X_876:bat[:bit] := batcalc.ifthenelse(X_861:bat[:bit], false:bit,
X_858:bat[:bit]);
- X_887:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2012-03-11
10:00:00.000000":timestamp, "2012-11-04 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_888:bat[:bit] := batcalc.isnil(X_887:bat[:bit]);
- X_904:bat[:bit] := batcalc.ifthenelse(X_888:bat[:bit], false:bit,
X_887:bat[:bit]);
- X_915:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2012-11-04
09:00:00.000000":timestamp, "2013-03-10 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_916:bat[:bit] := batcalc.isnil(X_915:bat[:bit]);
- X_929:bat[:bit] := batcalc.ifthenelse(X_916:bat[:bit], false:bit,
X_915:bat[:bit]);
- X_942:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2013-03-10
10:00:00.000000":timestamp, "2013-11-03 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_945:bat[:bit] := batcalc.isnil(X_942:bat[:bit]);
- X_958:bat[:bit] := batcalc.ifthenelse(X_945:bat[:bit], false:bit,
X_942:bat[:bit]);
- X_968:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2013-11-03
09:00:00.000000":timestamp, "2014-03-09 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_969:bat[:bit] := batcalc.isnil(X_968:bat[:bit]);
- X_986:bat[:bit] := batcalc.ifthenelse(X_969:bat[:bit], false:bit,
X_968:bat[:bit]);
- X_998:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2014-03-09
10:00:00.000000":timestamp, "2014-11-02 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_999:bat[:bit] := batcalc.isnil(X_998:bat[:bit]);
- X_1012:bat[:bit] := batcalc.ifthenelse(X_999:bat[:bit], false:bit,
X_998:bat[:bit]);
- X_1023:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2014-11-02
09:00:00.000000":timestamp, "2015-03-08 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1026:bat[:bit] := batcalc.isnil(X_1023:bat[:bit]);
- X_1041:bat[:bit] := batcalc.ifthenelse(X_1026:bat[:bit], false:bit,
X_1023:bat[:bit]);
- X_1052:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2015-03-08
10:00:00.000000":timestamp, "2015-11-01 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1053:bat[:bit] := batcalc.isnil(X_1052:bat[:bit]);
- X_1068:bat[:bit] := batcalc.ifthenelse(X_1053:bat[:bit], false:bit,
X_1052:bat[:bit]);
- X_1080:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2015-11-01
09:00:00.000000":timestamp, "2016-03-13 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1081:bat[:bit] := batcalc.isnil(X_1080:bat[:bit]);
- X_1094:bat[:bit] := batcalc.ifthenelse(X_1081:bat[:bit], false:bit,
X_1080:bat[:bit]);
- X_1106:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2016-03-13
10:00:00.000000":timestamp, "2016-11-06 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1109:bat[:bit] := batcalc.isnil(X_1106:bat[:bit]);
- X_1123:bat[:bit] := batcalc.ifthenelse(X_1109:bat[:bit], false:bit,
X_1106:bat[:bit]);
- X_1133:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2016-11-06
09:00:00.000000":timestamp, "2017-03-12 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1134:bat[:bit] := batcalc.isnil(X_1133:bat[:bit]);
- X_1151:bat[:bit] := batcalc.ifthenelse(X_1134:bat[:bit], false:bit,
X_1133:bat[:bit]);
- X_1163:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2017-03-12
10:00:00.000000":timestamp, "2017-11-05 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1164:bat[:bit] := batcalc.isnil(X_1163:bat[:bit]);
- X_1176:bat[:bit] := batcalc.ifthenelse(X_1164:bat[:bit], false:bit,
X_1163:bat[:bit]);
- X_1188:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2017-11-05
09:00:00.000000":timestamp, "2018-03-11 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1191:bat[:bit] := batcalc.isnil(X_1188:bat[:bit]);
- X_1205:bat[:bit] := batcalc.ifthenelse(X_1191:bat[:bit], false:bit,
X_1188:bat[:bit]);
- X_1217:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2018-03-11
10:00:00.000000":timestamp, "2018-11-04 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1218:bat[:bit] := batcalc.isnil(X_1217:bat[:bit]);
- X_1233:bat[:bit] := batcalc.ifthenelse(X_1218:bat[:bit], false:bit,
X_1217:bat[:bit]);
- X_1244:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2018-11-04
09:00:00.000000":timestamp, "2019-03-10 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1245:bat[:bit] := batcalc.isnil(X_1244:bat[:bit]);
- X_1259:bat[:bit] := batcalc.ifthenelse(X_1245:bat[:bit], false:bit,
X_1244:bat[:bit]);
- X_1271:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2019-03-10
10:00:00.000000":timestamp, "2019-11-03 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1274:bat[:bit] := batcalc.isnil(X_1271:bat[:bit]);
- X_1288:bat[:bit] := batcalc.ifthenelse(X_1274:bat[:bit], false:bit,
X_1271:bat[:bit]);
- X_1298:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2019-11-03
09:00:00.000000":timestamp, "2020-03-08 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1299:bat[:bit] := batcalc.isnil(X_1298:bat[:bit]);
- X_1315:bat[:bit] := batcalc.ifthenelse(X_1299:bat[:bit], false:bit,
X_1298:bat[:bit]);
- X_1328:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2020-03-08
10:00:00.000000":timestamp, "2020-11-01 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1329:bat[:bit] := batcalc.isnil(X_1328:bat[:bit]);
- X_1341:bat[:bit] := batcalc.ifthenelse(X_1329:bat[:bit], false:bit,
X_1328:bat[:bit]);
- X_1352:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2020-11-01
09:00:00.000000":timestamp, "2021-03-14 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1355:bat[:bit] := batcalc.isnil(X_1352:bat[:bit]);
- X_1370:bat[:bit] := batcalc.ifthenelse(X_1355:bat[:bit], false:bit,
X_1352:bat[:bit]);
- X_1381:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2021-03-14
10:00:00.000000":timestamp, "2021-11-07 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1382:bat[:bit] := batcalc.isnil(X_1381:bat[:bit]);
- X_1398:bat[:bit] := batcalc.ifthenelse(X_1382:bat[:bit], false:bit,
X_1381:bat[:bit]);
- X_1409:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2021-11-07
09:00:00.000000":timestamp, "2022-03-13 10:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1410:bat[:bit] := batcalc.isnil(X_1409:bat[:bit]);
- X_1423:bat[:bit] := batcalc.ifthenelse(X_1410:bat[:bit], false:bit,
X_1409:bat[:bit]);
- X_1436:bat[:bit] := batcalc.between(X_188:bat[:timestamp], "2022-03-13
10:00:00.000000":timestamp, "2022-11-06 09:00:00.000000":timestamp, false:bit,
true:bit, false:bit, false:bit, false:bit);
- X_1439:bat[:bit] := batcalc.isnil(X_1436:bat[:bit]);
- X_1452:bat[:bit] := batcalc.ifthenelse(X_1439:bat[:bit], false:bit,
X_1436:bat[:bit]);
- X_1553:bat[:timestamp] := batcalc.ifthenelse(X_1452:bat[:bit],
X_1458:bat[:timestamp], X_1454:bat[:timestamp]);
- X_1556:bat[:timestamp] := batcalc.ifthenelse(X_1423:bat[:bit],
X_1454:bat[:timestamp], X_1553:bat[:timestamp]);
- X_1557:bat[:timestamp] := batcalc.ifthenelse(X_1398:bat[:bit],
X_1458:bat[:timestamp], X_1556:bat[:timestamp]);
- X_1558:bat[:timestamp] := batcalc.ifthenelse(X_1370:bat[:bit],
X_1454:bat[:timestamp], X_1557:bat[:timestamp]);
- X_1559:bat[:timestamp] := batcalc.ifthenelse(X_1341:bat[:bit],
X_1458:bat[:timestamp], X_1558:bat[:timestamp]);
- X_1560:bat[:timestamp] := batcalc.ifthenelse(X_1315:bat[:bit],
X_1454:bat[:timestamp], X_1559:bat[:timestamp]);
- X_1561:bat[:timestamp] := batcalc.ifthenelse(X_1288:bat[:bit],
X_1458:bat[:timestamp], X_1560:bat[:timestamp]);
- X_1562:bat[:timestamp] := batcalc.ifthenelse(X_1259:bat[:bit],
X_1454:bat[:timestamp], X_1561:bat[:timestamp]);
- X_1563:bat[:timestamp] := batcalc.ifthenelse(X_1233:bat[:bit],
X_1458:bat[:timestamp], X_1562:bat[:timestamp]);
- X_1564:bat[:timestamp] := batcalc.ifthenelse(X_1205:bat[:bit],
X_1454:bat[:timestamp], X_1563:bat[:timestamp]);
- X_1565:bat[:timestamp] := batcalc.ifthenelse(X_1176:bat[:bit],
X_1458:bat[:timestamp], X_1564:bat[:timestamp]);
- X_1566:bat[:timestamp] := batcalc.ifthenelse(X_1151:bat[:bit],
X_1454:bat[:timestamp], X_1565:bat[:timestamp]);
- X_1567:bat[:timestamp] := batcalc.ifthenelse(X_1123:bat[:bit],
X_1458:bat[:timestamp], X_1566:bat[:timestamp]);
- X_1568:bat[:timestamp] := batcalc.ifthenelse(X_1094:bat[:bit],
X_1454:bat[:timestamp], X_1567:bat[:timestamp]);
- X_1569:bat[:timestamp] := batcalc.ifthenelse(X_1068:bat[:bit],
X_1458:bat[:timestamp], X_1568:bat[:timestamp]);
- X_1570:bat[:timestamp] := batcalc.ifthenelse(X_1041:bat[:bit],
X_1454:bat[:timestamp], X_1569:bat[:timestamp]);
- X_1571:bat[:timestamp] := batcalc.ifthenelse(X_1012:bat[:bit],
X_1458:bat[:timestamp], X_1570:bat[:timestamp]);
- X_1572:bat[:timestamp] := batcalc.ifthenelse(X_986:bat[:bit],
X_1454:bat[:timestamp], X_1571:bat[:timestamp]);
- X_1573:bat[:timestamp] := batcalc.ifthenelse(X_958:bat[:bit],
X_1458:bat[:timestamp], X_1572:bat[:timestamp]);
- X_1574:bat[:timestamp] := batcalc.ifthenelse(X_929:bat[:bit],
X_1454:bat[:timestamp], X_1573:bat[:timestamp]);
- X_1575:bat[:timestamp] := batcalc.ifthenelse(X_904:bat[:bit],
X_1458:bat[:timestamp], X_1574:bat[:timestamp]);
- X_1576:bat[:timestamp] := batcalc.ifthenelse(X_876:bat[:bit],
X_1454:bat[:timestamp], X_1575:bat[:timestamp]);
- X_1577:bat[:timestamp] := batcalc.ifthenelse(X_847:bat[:bit],
X_1458:bat[:timestamp], X_1576:bat[:timestamp]);
- X_1578:bat[:timestamp] := batcalc.ifthenelse(X_821:bat[:bit],
X_1454:bat[:timestamp], X_1577:bat[:timestamp]);
- X_1579:bat[:timestamp] := batcalc.ifthenelse(X_794:bat[:bit],
X_1458:bat[:timestamp], X_1578:bat[:timestamp]);
- X_1580:bat[:timestamp] := batcalc.ifthenelse(X_765:bat[:bit],
X_1454:bat[:timestamp], X_1579:bat[:timestamp]);
- X_1581:bat[:timestamp] := batcalc.ifthenelse(X_739:bat[:bit],
X_1458:bat[:timestamp], X_1580:bat[:timestamp]);
- X_1582:bat[:timestamp] := batcalc.ifthenelse(X_711:bat[:bit],
X_1454:bat[:timestamp], X_1581:bat[:timestamp]);
- X_1583:bat[:timestamp] := batcalc.ifthenelse(X_682:bat[:bit],
X_1458:bat[:timestamp], X_1582:bat[:timestamp]);
- X_1584:bat[:timestamp] := batcalc.ifthenelse(X_657:bat[:bit],
X_1454:bat[:timestamp], X_1583:bat[:timestamp]);
- X_1585:bat[:timestamp] := batcalc.ifthenelse(X_629:bat[:bit],
X_1458:bat[:timestamp], X_1584:bat[:timestamp]);
- X_1586:bat[:timestamp] := batcalc.ifthenelse(X_600:bat[:bit],
X_1454:bat[:timestamp], X_1585:bat[:timestamp]);
- X_1589:bat[:timestamp] := batcalc.ifthenelse(X_574:bat[:bit],
X_1458:bat[:timestamp], X_1586:bat[:timestamp]);
- X_1590:bat[:timestamp] := batcalc.ifthenelse(X_547:bat[:bit],
X_1454:bat[:timestamp], X_1589:bat[:timestamp]);
- X_1591:bat[:timestamp] := batcalc.ifthenelse(X_518:bat[:bit],
X_1458:bat[:timestamp], X_1590:bat[:timestamp]);
- X_1592:bat[:timestamp] := batcalc.ifthenelse(X_492:bat[:bit],
X_1454:bat[:timestamp], X_1591:bat[:timestamp]);
- X_1593:bat[:timestamp] := batcalc.ifthenelse(X_464:bat[:bit],
X_1458:bat[:timestamp], X_1592:bat[:timestamp]);
- X_1594:bat[:timestamp] := batcalc.ifthenelse(X_435:bat[:bit],
X_1454:bat[:timestamp], X_1593:bat[:timestamp]);
- X_1595:bat[:timestamp] := batcalc.ifthenelse(X_410:bat[:bit],
X_1458:bat[:timestamp], X_1594:bat[:timestamp]);
- X_1596:bat[:timestamp] := batcalc.ifthenelse(X_382:bat[:bit],
X_1454:bat[:timestamp], X_1595:bat[:timestamp]);
- X_1597:bat[:timestamp] := batcalc.ifthenelse(X_353:bat[:bit],
X_1458:bat[:timestamp], X_1596:bat[:timestamp]);
- X_1598:bat[:timestamp] := batcalc.ifthenelse(X_327:bat[:bit],
X_1454:bat[:timestamp], X_1597:bat[:timestamp]);
- X_1599:bat[:timestamp] := batcalc.ifthenelse(X_300:bat[:bit],
X_1458:bat[:timestamp], X_1598:bat[:timestamp]);
- X_1600:bat[:timestamp] := batcalc.ifthenelse(X_271:bat[:bit],
X_1454:bat[:timestamp], X_1599:bat[:timestamp]);
- X_1601:bat[:timestamp] := batcalc.ifthenelse(X_245:bat[:bit],
X_1458:bat[:timestamp], X_1600:bat[:timestamp]);
- X_1602:bat[:timestamp] := batcalc.ifthenelse(X_217:bat[:bit],
X_1454:bat[:timestamp], X_1601:bat[:timestamp]);
- X_1604:bat[:str] := mal.manifold("mtime":str, "timestamp_to_str":str,
X_1602:bat[:timestamp], "%Y":str);
- language.pass(X_200:bat[:bit]);
- language.pass(X_229:bat[:bit]);
- language.pass(X_256:bat[:bit]);
- language.pass(X_283:bat[:bit]);
- language.pass(X_310:bat[:bit]);
- language.pass(X_340:bat[:bit]);
- language.pass(X_364:bat[:bit]);
- language.pass(X_393:bat[:bit]);
- language.pass(X_421:bat[:bit]);
- language.pass(X_448:bat[:bit]);
- language.pass(X_474:bat[:bit]);
- language.pass(X_504:bat[:bit]);
- language.pass(X_529:bat[:bit]);
- language.pass(X_558:bat[:bit]);
- language.pass(X_586:bat[:bit]);
- language.pass(X_612:bat[:bit]);
- language.pass(X_639:bat[:bit]);
- language.pass(X_669:bat[:bit]);
- language.pass(X_694:bat[:bit]);
- language.pass(X_723:bat[:bit]);
- language.pass(X_750:bat[:bit]);
- language.pass(X_777:bat[:bit]);
- language.pass(X_804:bat[:bit]);
- language.pass(X_834:bat[:bit]);
- language.pass(X_858:bat[:bit]);
- language.pass(X_887:bat[:bit]);
- language.pass(X_915:bat[:bit]);
- language.pass(X_942:bat[:bit]);
- language.pass(X_968:bat[:bit]);
- language.pass(X_998:bat[:bit]);
- language.pass(X_1023:bat[:bit]);
- language.pass(X_1052:bat[:bit]);
- language.pass(X_1080:bat[:bit]);
- language.pass(X_1106:bat[:bit]);
- language.pass(X_1133:bat[:bit]);
- language.pass(X_1163:bat[:bit]);
- language.pass(X_1188:bat[:bit]);
- language.pass(X_1217:bat[:bit]);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list