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

Reply via email to