Changeset: 135bf8aad953 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=135bf8aad953
Modified Files:
monetdb5/optimizer/opt_commonTerms.c
monetdb5/optimizer/opt_pipes.c
sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
sql/test/BugTracker-2019/Tests/str_to_time.Bug-6791.stable.out
sql/test/mapi/Tests/sql_int128.stable.out.int128
sql/test/mergetables/Tests/mergequery.stable.out
sql/test/miscellaneous/Tests/simple_plans.stable.out
sql/test/remote/Tests/partition_elim.stable.out
Branch: noce
Log Message:
renabled commontTerms, ie excapted the algebra.project(b, const) as thats also
the input
to the replaces (for case/coalesce). These inputs should stay unique.
diffs (truncated from 1647 to 300 lines):
diff --git a/monetdb5/optimizer/opt_commonTerms.c
b/monetdb5/optimizer/opt_commonTerms.c
--- a/monetdb5/optimizer/opt_commonTerms.c
+++ b/monetdb5/optimizer/opt_commonTerms.c
@@ -19,6 +19,14 @@
*/
static int
+isProjectConst(InstrPtr p)
+{
+ if (getModuleId(p)== algebraRef && getFunctionId(p)== projectRef)
+ return TRUE;
+ return FALSE;
+}
+
+static int
hashInstruction(MalBlkPtr mb, InstrPtr p)
{
int i;
@@ -153,6 +161,7 @@ OPTcommonTermsImplementation(Client cntx
!hasCommonResults(p, q) &&
!isUnsafeFunction(q) &&
!isUpdateInstruction(q) &&
+ !isProjectConst(q) && /* disable
project(x,val), as its used for the result of case statements */
isLinearFlow(q)
) {
if (safetyBarrier(p, q) ){
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -75,7 +75,7 @@ static struct PIPELINES {
"optimizer.deadcode();"
"optimizer.aliases();"
"optimizer.constants();"
- //"optimizer.commonTerms();"
+ "optimizer.commonTerms();"
"optimizer.projectionpath();"
"optimizer.deadcode();"
"optimizer.reorder();"
diff --git
a/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
b/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
--- a/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
+++ b/sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
@@ -92,7 +92,7 @@ end user.main;
% 121 # length
function user.main():void;
X_1:void := querylog.define("explain select count(*) from tmp where i =
201602221;":str, "default_pipe":str, 14:int);
-barrier X_80:bit := language.dataflow();
+barrier X_82:bit := language.dataflow();
X_12:bat[:int] := bat.new(nil:int);
X_13:bat[:int] := batcalc.int(0:int, X_12:bat[:int], 9:int, 0:int);
C_19:bat[:oid] := algebra.thetaselect(X_13:bat[:int], 201602221:int,
"==":str);
@@ -100,7 +100,7 @@ barrier X_80:bit := language.dataflow();
C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "tmp":str);
C_21:bat[:oid] := algebra.projection(C_19:bat[:oid], C_5:bat[:oid]);
X_23:lng := aggr.count(C_21:bat[:oid]);
-exit X_80:bit;
+exit X_82:bit;
sql.resultSet(".%1":str, "%1":str, "bigint":str, 64:int, 0:int, 7:int,
X_23:lng);
end user.main;
#inline actions= 0 time=0 usec
diff --git a/sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
b/sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
--- a/sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
+++ b/sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
@@ -43,7 +43,7 @@ stdout of test 'side-effect.Bug-6397` in
% 161 # length
function user.main():void;
X_1:void := querylog.define("explain select count(*) from
my_generate_series(1,5) as t1,\nmy_generate_series(1,100) as t2;":str,
"default_pipe":str, 27:int);
-barrier X_93:bit := language.dataflow();
+barrier X_95:bit := language.dataflow();
X_31:bat[:str] := bat.pack(".%5":str);
X_32:bat[:str] := bat.pack("%5":str);
X_33:bat[:str] := bat.pack("bigint":str);
@@ -61,7 +61,7 @@ barrier X_93:bit := language.dataflow();
X_27:bat[:lng] := batcalc.*(X_25:bat[:lng], X_26:bat[:lng], nil:BAT,
nil:BAT);
language.pass(X_20:bat[:lng]);
language.pass(X_21:bat[:lng]);
-exit X_93:bit;
+exit X_95:bit;
sql.resultSet(X_31:bat[:str], X_32:bat[:str], X_33:bat[:str],
X_34:bat[:int], X_35:bat[:int], X_27:bat[:lng]);
end user.main;
#inline actions= 0 time=1 usec
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,7 +34,7 @@ stdout of test 'duplicates-not-eliminate
% 1023 # length
function user.main():void;
X_1: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\" >= \\'20
02-04-07 10:00:00\\' and t
-barrier X_1208:bit := language.dataflow();
+barrier X_1210:bit := language.dataflow();
X_43:bat[:str] := bat.new(nil:str);
X_56:bat[:timestamp] := algebra.project(X_43:bat[:str], nil:timestamp);
X_45:bat[:timestamp] := bat.new(nil:timestamp);
@@ -58,8 +58,7 @@ barrier X_1208:bit := language.dataflow(
X_90:bat[:bit] := batcalc.or(X_88:bat[:bit], X_89:bat[:bit]);
C_92:bat[:oid] := algebra.thetaselect(X_90:bat[:bit], C_75:bat[:oid],
true:bit, "==":str);
C_101:bat[:oid] := algebra.thetaselect(X_97:bat[:bit], C_92:bat[:oid],
true:bit, "==":str);
- X_104:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_107:bat[:timestamp] := algebra.projection(C_101:bat[:oid],
X_104:bat[:timestamp]);
+ X_107:bat[:timestamp] := algebra.projection(C_101:bat[:oid],
X_61:bat[:timestamp]);
X_108:bat[:timestamp] := bat.replace(X_87:bat[:timestamp],
C_101:bat[:oid], X_107:bat[:timestamp], true:bit);
X_123:bat[:bit] := batcalc.between(X_45: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_110:bat[:bit] := batcalc.not(X_97:bat[:bit]);
@@ -67,8 +66,7 @@ barrier X_1208:bit := language.dataflow(
X_115:bat[:bit] := batcalc.or(X_110:bat[:bit], X_113:bat[:bit]);
C_118:bat[:oid] := algebra.thetaselect(X_115:bat[:bit], C_92:bat[:oid],
true:bit, "==":str);
C_125:bat[:oid] := algebra.thetaselect(X_123:bat[:bit], C_118:bat[:oid],
true:bit, "==":str);
- X_128:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_129:bat[:timestamp] := algebra.projection(C_125:bat[:oid],
X_128:bat[:timestamp]);
+ X_129:bat[:timestamp] := algebra.projection(C_125:bat[:oid],
X_85:bat[:timestamp]);
X_130:bat[:timestamp] := bat.replace(X_108:bat[:timestamp],
C_125:bat[:oid], X_129:bat[:timestamp], true:bit);
X_140:bat[:bit] := batcalc.between(X_45: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_131:bat[:bit] := batcalc.not(X_123:bat[:bit]);
@@ -76,8 +74,7 @@ barrier X_1208:bit := language.dataflow(
X_133:bat[:bit] := batcalc.or(X_131:bat[:bit], X_132:bat[:bit]);
C_135:bat[:oid] := algebra.thetaselect(X_133:bat[:bit], C_118:bat[:oid],
true:bit, "==":str);
C_144:bat[:oid] := algebra.thetaselect(X_140:bat[:bit], C_135:bat[:oid],
true:bit, "==":str);
- X_147:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_150:bat[:timestamp] := algebra.projection(C_144:bat[:oid],
X_147:bat[:timestamp]);
+ X_150:bat[:timestamp] := algebra.projection(C_144:bat[:oid],
X_61:bat[:timestamp]);
X_151:bat[:timestamp] := bat.replace(X_130:bat[:timestamp],
C_144:bat[:oid], X_150:bat[:timestamp], true:bit);
X_165:bat[:bit] := batcalc.between(X_45: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_152:bat[:bit] := batcalc.not(X_140:bat[:bit]);
@@ -85,8 +82,7 @@ barrier X_1208:bit := language.dataflow(
X_157:bat[:bit] := batcalc.or(X_152:bat[:bit], X_155:bat[:bit]);
C_160:bat[:oid] := algebra.thetaselect(X_157:bat[:bit], C_135:bat[:oid],
true:bit, "==":str);
C_167:bat[:oid] := algebra.thetaselect(X_165:bat[:bit], C_160:bat[:oid],
true:bit, "==":str);
- X_170:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_171:bat[:timestamp] := algebra.projection(C_167:bat[:oid],
X_170:bat[:timestamp]);
+ X_171:bat[:timestamp] := algebra.projection(C_167:bat[:oid],
X_85:bat[:timestamp]);
X_172:bat[:timestamp] := bat.replace(X_151:bat[:timestamp],
C_167:bat[:oid], X_171:bat[:timestamp], true:bit);
X_183:bat[:bit] := batcalc.between(X_45: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_173:bat[:bit] := batcalc.not(X_165:bat[:bit]);
@@ -94,8 +90,7 @@ barrier X_1208:bit := language.dataflow(
X_175:bat[:bit] := batcalc.or(X_173:bat[:bit], X_174:bat[:bit]);
C_178:bat[:oid] := algebra.thetaselect(X_175:bat[:bit], C_160:bat[:oid],
true:bit, "==":str);
C_187:bat[:oid] := algebra.thetaselect(X_183:bat[:bit], C_178:bat[:oid],
true:bit, "==":str);
- X_190:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_193:bat[:timestamp] := algebra.projection(C_187:bat[:oid],
X_190:bat[:timestamp]);
+ X_193:bat[:timestamp] := algebra.projection(C_187:bat[:oid],
X_61:bat[:timestamp]);
X_194:bat[:timestamp] := bat.replace(X_172:bat[:timestamp],
C_187:bat[:oid], X_193:bat[:timestamp], true:bit);
X_208:bat[:bit] := batcalc.between(X_45: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_195:bat[:bit] := batcalc.not(X_183:bat[:bit]);
@@ -103,8 +98,7 @@ barrier X_1208:bit := language.dataflow(
X_200:bat[:bit] := batcalc.or(X_195:bat[:bit], X_198:bat[:bit]);
C_203:bat[:oid] := algebra.thetaselect(X_200:bat[:bit], C_178:bat[:oid],
true:bit, "==":str);
C_211:bat[:oid] := algebra.thetaselect(X_208:bat[:bit], C_203:bat[:oid],
true:bit, "==":str);
- X_214:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_215:bat[:timestamp] := algebra.projection(C_211:bat[:oid],
X_214:bat[:timestamp]);
+ X_215:bat[:timestamp] := algebra.projection(C_211:bat[:oid],
X_85:bat[:timestamp]);
X_216:bat[:timestamp] := bat.replace(X_194:bat[:timestamp],
C_211:bat[:oid], X_215:bat[:timestamp], true:bit);
X_226:bat[:bit] := batcalc.between(X_45: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_217:bat[:bit] := batcalc.not(X_208:bat[:bit]);
@@ -112,8 +106,7 @@ barrier X_1208:bit := language.dataflow(
X_219:bat[:bit] := batcalc.or(X_217:bat[:bit], X_218:bat[:bit]);
C_221:bat[:oid] := algebra.thetaselect(X_219:bat[:bit], C_203:bat[:oid],
true:bit, "==":str);
C_230:bat[:oid] := algebra.thetaselect(X_226:bat[:bit], C_221:bat[:oid],
true:bit, "==":str);
- X_233:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_236:bat[:timestamp] := algebra.projection(C_230:bat[:oid],
X_233:bat[:timestamp]);
+ X_236:bat[:timestamp] := algebra.projection(C_230:bat[:oid],
X_61:bat[:timestamp]);
X_237:bat[:timestamp] := bat.replace(X_216:bat[:timestamp],
C_230:bat[:oid], X_236:bat[:timestamp], true:bit);
X_252:bat[:bit] := batcalc.between(X_45: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_238:bat[:bit] := batcalc.not(X_226:bat[:bit]);
@@ -121,8 +114,7 @@ barrier X_1208:bit := language.dataflow(
X_243:bat[:bit] := batcalc.or(X_238:bat[:bit], X_241:bat[:bit]);
C_247:bat[:oid] := algebra.thetaselect(X_243:bat[:bit], C_221:bat[:oid],
true:bit, "==":str);
C_254:bat[:oid] := algebra.thetaselect(X_252:bat[:bit], C_247:bat[:oid],
true:bit, "==":str);
- X_257:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_258:bat[:timestamp] := algebra.projection(C_254:bat[:oid],
X_257:bat[:timestamp]);
+ X_258:bat[:timestamp] := algebra.projection(C_254:bat[:oid],
X_85:bat[:timestamp]);
X_259:bat[:timestamp] := bat.replace(X_237:bat[:timestamp],
C_254:bat[:oid], X_258:bat[:timestamp], true:bit);
X_269:bat[:bit] := batcalc.between(X_45: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_260:bat[:bit] := batcalc.not(X_252:bat[:bit]);
@@ -130,8 +122,7 @@ barrier X_1208:bit := language.dataflow(
X_262:bat[:bit] := batcalc.or(X_260:bat[:bit], X_261:bat[:bit]);
C_264:bat[:oid] := algebra.thetaselect(X_262:bat[:bit], C_247:bat[:oid],
true:bit, "==":str);
C_273:bat[:oid] := algebra.thetaselect(X_269:bat[:bit], C_264:bat[:oid],
true:bit, "==":str);
- X_276:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_279:bat[:timestamp] := algebra.projection(C_273:bat[:oid],
X_276:bat[:timestamp]);
+ X_279:bat[:timestamp] := algebra.projection(C_273:bat[:oid],
X_61:bat[:timestamp]);
X_280:bat[:timestamp] := bat.replace(X_259:bat[:timestamp],
C_273:bat[:oid], X_279:bat[:timestamp], true:bit);
X_295:bat[:bit] := batcalc.between(X_45: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_282:bat[:bit] := batcalc.not(X_269:bat[:bit]);
@@ -139,8 +130,7 @@ barrier X_1208:bit := language.dataflow(
X_287:bat[:bit] := batcalc.or(X_282:bat[:bit], X_285:bat[:bit]);
C_290:bat[:oid] := algebra.thetaselect(X_287:bat[:bit], C_264:bat[:oid],
true:bit, "==":str);
C_297:bat[:oid] := algebra.thetaselect(X_295:bat[:bit], C_290:bat[:oid],
true:bit, "==":str);
- X_300:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_301:bat[:timestamp] := algebra.projection(C_297:bat[:oid],
X_300:bat[:timestamp]);
+ X_301:bat[:timestamp] := algebra.projection(C_297:bat[:oid],
X_85:bat[:timestamp]);
X_302:bat[:timestamp] := bat.replace(X_280:bat[:timestamp],
C_297:bat[:oid], X_301:bat[:timestamp], true:bit);
X_312:bat[:bit] := batcalc.between(X_45: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_303:bat[:bit] := batcalc.not(X_295:bat[:bit]);
@@ -148,8 +138,7 @@ barrier X_1208:bit := language.dataflow(
X_305:bat[:bit] := batcalc.or(X_303:bat[:bit], X_304:bat[:bit]);
C_307:bat[:oid] := algebra.thetaselect(X_305:bat[:bit], C_290:bat[:oid],
true:bit, "==":str);
C_316:bat[:oid] := algebra.thetaselect(X_312:bat[:bit], C_307:bat[:oid],
true:bit, "==":str);
- X_319:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_322:bat[:timestamp] := algebra.projection(C_316:bat[:oid],
X_319:bat[:timestamp]);
+ X_322:bat[:timestamp] := algebra.projection(C_316:bat[:oid],
X_61:bat[:timestamp]);
X_323:bat[:timestamp] := bat.replace(X_302:bat[:timestamp],
C_316:bat[:oid], X_322:bat[:timestamp], true:bit);
X_337:bat[:bit] := batcalc.between(X_45: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_324:bat[:bit] := batcalc.not(X_312:bat[:bit]);
@@ -157,8 +146,7 @@ barrier X_1208:bit := language.dataflow(
X_329:bat[:bit] := batcalc.or(X_324:bat[:bit], X_327:bat[:bit]);
C_332:bat[:oid] := algebra.thetaselect(X_329:bat[:bit], C_307:bat[:oid],
true:bit, "==":str);
C_339:bat[:oid] := algebra.thetaselect(X_337:bat[:bit], C_332:bat[:oid],
true:bit, "==":str);
- X_342:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_343:bat[:timestamp] := algebra.projection(C_339:bat[:oid],
X_342:bat[:timestamp]);
+ X_343:bat[:timestamp] := algebra.projection(C_339:bat[:oid],
X_85:bat[:timestamp]);
X_344:bat[:timestamp] := bat.replace(X_323:bat[:timestamp],
C_339:bat[:oid], X_343:bat[:timestamp], true:bit);
X_355:bat[:bit] := batcalc.between(X_45: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_345:bat[:bit] := batcalc.not(X_337:bat[:bit]);
@@ -166,8 +154,7 @@ barrier X_1208:bit := language.dataflow(
X_347:bat[:bit] := batcalc.or(X_345:bat[:bit], X_346:bat[:bit]);
C_350:bat[:oid] := algebra.thetaselect(X_347:bat[:bit], C_332:bat[:oid],
true:bit, "==":str);
C_359:bat[:oid] := algebra.thetaselect(X_355:bat[:bit], C_350:bat[:oid],
true:bit, "==":str);
- X_362:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_365:bat[:timestamp] := algebra.projection(C_359:bat[:oid],
X_362:bat[:timestamp]);
+ X_365:bat[:timestamp] := algebra.projection(C_359:bat[:oid],
X_61:bat[:timestamp]);
X_366:bat[:timestamp] := bat.replace(X_344:bat[:timestamp],
C_359:bat[:oid], X_365:bat[:timestamp], true:bit);
X_380:bat[:bit] := batcalc.between(X_45: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_367:bat[:bit] := batcalc.not(X_355:bat[:bit]);
@@ -175,8 +162,7 @@ barrier X_1208:bit := language.dataflow(
X_372:bat[:bit] := batcalc.or(X_367:bat[:bit], X_370:bat[:bit]);
C_375:bat[:oid] := algebra.thetaselect(X_372:bat[:bit], C_350:bat[:oid],
true:bit, "==":str);
C_383:bat[:oid] := algebra.thetaselect(X_380:bat[:bit], C_375:bat[:oid],
true:bit, "==":str);
- X_386:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_387:bat[:timestamp] := algebra.projection(C_383:bat[:oid],
X_386:bat[:timestamp]);
+ X_387:bat[:timestamp] := algebra.projection(C_383:bat[:oid],
X_85:bat[:timestamp]);
X_388:bat[:timestamp] := bat.replace(X_366:bat[:timestamp],
C_383:bat[:oid], X_387:bat[:timestamp], true:bit);
X_398:bat[:bit] := batcalc.between(X_45: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_389:bat[:bit] := batcalc.not(X_380:bat[:bit]);
@@ -184,8 +170,7 @@ barrier X_1208:bit := language.dataflow(
X_391:bat[:bit] := batcalc.or(X_389:bat[:bit], X_390:bat[:bit]);
C_393:bat[:oid] := algebra.thetaselect(X_391:bat[:bit], C_375:bat[:oid],
true:bit, "==":str);
C_402:bat[:oid] := algebra.thetaselect(X_398:bat[:bit], C_393:bat[:oid],
true:bit, "==":str);
- X_405:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_408:bat[:timestamp] := algebra.projection(C_402:bat[:oid],
X_405:bat[:timestamp]);
+ X_408:bat[:timestamp] := algebra.projection(C_402:bat[:oid],
X_61:bat[:timestamp]);
X_409:bat[:timestamp] := bat.replace(X_388:bat[:timestamp],
C_402:bat[:oid], X_408:bat[:timestamp], true:bit);
X_424:bat[:bit] := batcalc.between(X_45: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_410:bat[:bit] := batcalc.not(X_398:bat[:bit]);
@@ -193,8 +178,7 @@ barrier X_1208:bit := language.dataflow(
X_415:bat[:bit] := batcalc.or(X_410:bat[:bit], X_413:bat[:bit]);
C_419:bat[:oid] := algebra.thetaselect(X_415:bat[:bit], C_393:bat[:oid],
true:bit, "==":str);
C_426:bat[:oid] := algebra.thetaselect(X_424:bat[:bit], C_419:bat[:oid],
true:bit, "==":str);
- X_429:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_430:bat[:timestamp] := algebra.projection(C_426:bat[:oid],
X_429:bat[:timestamp]);
+ X_430:bat[:timestamp] := algebra.projection(C_426:bat[:oid],
X_85:bat[:timestamp]);
X_431:bat[:timestamp] := bat.replace(X_409:bat[:timestamp],
C_426:bat[:oid], X_430:bat[:timestamp], true:bit);
X_441:bat[:bit] := batcalc.between(X_45: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_432:bat[:bit] := batcalc.not(X_424:bat[:bit]);
@@ -202,8 +186,7 @@ barrier X_1208:bit := language.dataflow(
X_434:bat[:bit] := batcalc.or(X_432:bat[:bit], X_433:bat[:bit]);
C_436:bat[:oid] := algebra.thetaselect(X_434:bat[:bit], C_419:bat[:oid],
true:bit, "==":str);
C_445:bat[:oid] := algebra.thetaselect(X_441:bat[:bit], C_436:bat[:oid],
true:bit, "==":str);
- X_448:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_451:bat[:timestamp] := algebra.projection(C_445:bat[:oid],
X_448:bat[:timestamp]);
+ X_451:bat[:timestamp] := algebra.projection(C_445:bat[:oid],
X_61:bat[:timestamp]);
X_452:bat[:timestamp] := bat.replace(X_431:bat[:timestamp],
C_445:bat[:oid], X_451:bat[:timestamp], true:bit);
X_467:bat[:bit] := batcalc.between(X_45: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_454:bat[:bit] := batcalc.not(X_441:bat[:bit]);
@@ -211,8 +194,7 @@ barrier X_1208:bit := language.dataflow(
X_459:bat[:bit] := batcalc.or(X_454:bat[:bit], X_457:bat[:bit]);
C_462:bat[:oid] := algebra.thetaselect(X_459:bat[:bit], C_436:bat[:oid],
true:bit, "==":str);
C_469:bat[:oid] := algebra.thetaselect(X_467:bat[:bit], C_462:bat[:oid],
true:bit, "==":str);
- X_472:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_473:bat[:timestamp] := algebra.projection(C_469:bat[:oid],
X_472:bat[:timestamp]);
+ X_473:bat[:timestamp] := algebra.projection(C_469:bat[:oid],
X_85:bat[:timestamp]);
X_474:bat[:timestamp] := bat.replace(X_452:bat[:timestamp],
C_469:bat[:oid], X_473:bat[:timestamp], true:bit);
X_484:bat[:bit] := batcalc.between(X_45: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_475:bat[:bit] := batcalc.not(X_467:bat[:bit]);
@@ -220,8 +202,7 @@ barrier X_1208:bit := language.dataflow(
X_477:bat[:bit] := batcalc.or(X_475:bat[:bit], X_476:bat[:bit]);
C_479:bat[:oid] := algebra.thetaselect(X_477:bat[:bit], C_462:bat[:oid],
true:bit, "==":str);
C_488:bat[:oid] := algebra.thetaselect(X_484:bat[:bit], C_479:bat[:oid],
true:bit, "==":str);
- X_491:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_494:bat[:timestamp] := algebra.projection(C_488:bat[:oid],
X_491:bat[:timestamp]);
+ X_494:bat[:timestamp] := algebra.projection(C_488:bat[:oid],
X_61:bat[:timestamp]);
X_495:bat[:timestamp] := bat.replace(X_474:bat[:timestamp],
C_488:bat[:oid], X_494:bat[:timestamp], true:bit);
X_509:bat[:bit] := batcalc.between(X_45: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_496:bat[:bit] := batcalc.not(X_484:bat[:bit]);
@@ -229,8 +210,7 @@ barrier X_1208:bit := language.dataflow(
X_501:bat[:bit] := batcalc.or(X_496:bat[:bit], X_499:bat[:bit]);
C_504:bat[:oid] := algebra.thetaselect(X_501:bat[:bit], C_479:bat[:oid],
true:bit, "==":str);
C_511:bat[:oid] := algebra.thetaselect(X_509:bat[:bit], C_504:bat[:oid],
true:bit, "==":str);
- X_514:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -25200000:lng);
- X_515:bat[:timestamp] := algebra.projection(C_511:bat[:oid],
X_514:bat[:timestamp]);
+ X_515:bat[:timestamp] := algebra.projection(C_511:bat[:oid],
X_85:bat[:timestamp]);
X_516:bat[:timestamp] := bat.replace(X_495:bat[:timestamp],
C_511:bat[:oid], X_515:bat[:timestamp], true:bit);
X_527:bat[:bit] := batcalc.between(X_45: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_517:bat[:bit] := batcalc.not(X_509:bat[:bit]);
@@ -238,8 +218,7 @@ barrier X_1208:bit := language.dataflow(
X_519:bat[:bit] := batcalc.or(X_517:bat[:bit], X_518:bat[:bit]);
C_522:bat[:oid] := algebra.thetaselect(X_519:bat[:bit], C_504:bat[:oid],
true:bit, "==":str);
C_531:bat[:oid] := algebra.thetaselect(X_527:bat[:bit], C_522:bat[:oid],
true:bit, "==":str);
- X_534:bat[:timestamp] :=
batmtime.timestamp_add_msec_interval(X_45:bat[:timestamp], -28800000:lng);
- X_537:bat[:timestamp] := algebra.projection(C_531:bat[:oid],
X_534:bat[:timestamp]);
+ X_537:bat[:timestamp] := algebra.projection(C_531:bat[:oid],
X_61:bat[:timestamp]);
X_538:bat[:timestamp] := bat.replace(X_516:bat[:timestamp],
C_531:bat[:oid], X_537:bat[:timestamp], true:bit);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list