Changeset: f492768d86d7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f492768d86d7
Modified Files:
clients/Tests/exports.stable.out
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
monetdb5/mal/Tests/tst013.stable.err
monetdb5/mal/Tests/tst903.stable.out
monetdb5/mal/Tests/tst904.stable.out
monetdb5/mal/Tests/tst907.stable.out
monetdb5/mal/mal.h
monetdb5/mal/mal_builder.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_function.c
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_instruction.h
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_session.c
monetdb5/mal/mal_type.c
monetdb5/mal/mal_type.h
monetdb5/modules/mal/Tests/inspect00.stable.out
monetdb5/modules/mal/Tests/inspect05.stable.out.int128
monetdb5/modules/mal/Tests/remote03.stable.err
monetdb5/modules/mal/Tests/remote03.stable.out
monetdb5/modules/mal/Tests/remote04.stable.out
monetdb5/optimizer/Tests/Mexample.stable.out
monetdb5/optimizer/Tests/dataflow.stable.out
monetdb5/optimizer/Tests/dataflow3.stable.out
monetdb5/optimizer/Tests/dataflow4.stable.out
monetdb5/optimizer/Tests/inline00.stable.out
monetdb5/optimizer/Tests/inline01.stable.out
monetdb5/optimizer/Tests/inline02.stable.out
monetdb5/optimizer/Tests/inline03.stable.out
monetdb5/optimizer/Tests/inline04.stable.out
monetdb5/optimizer/Tests/inline06.stable.out
monetdb5/optimizer/Tests/inline07.stable.out
monetdb5/optimizer/Tests/inline09.stable.out
monetdb5/optimizer/Tests/inline10.stable.out
monetdb5/optimizer/Tests/inline12.stable.out
monetdb5/optimizer/Tests/inlineCst.stable.out
monetdb5/optimizer/Tests/inlineFunction.stable.out
monetdb5/optimizer/Tests/inlineFunction1.stable.out
monetdb5/optimizer/Tests/inlineFunction2.stable.out
monetdb5/optimizer/Tests/inlineFunction3.stable.out
monetdb5/optimizer/Tests/inlineFunction4.stable.out
monetdb5/optimizer/Tests/manifold2.stable.out
monetdb5/optimizer/opt_factorize.c
monetdb5/optimizer/opt_macro.c
monetdb5/optimizer/opt_querylog.c
monetdb5/optimizer/opt_remoteQueries.c
sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_optimizer.c
sql/benchmarks/ssbm/Tests/01-explain.stable.out
sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/11-explain.stable.out
sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/12-explain.stable.out
sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/13-explain.stable.out
sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128
sql/benchmarks/tpch/Tests/01-explain.stable.out.int128
sql/benchmarks/tpch/Tests/02-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out.int128
sql/benchmarks/tpch/Tests/04-explain.stable.out
sql/benchmarks/tpch/Tests/05-explain.stable.out.int128
sql/benchmarks/tpch/Tests/06-explain.stable.out.int128
sql/benchmarks/tpch/Tests/07-explain.stable.out.int128
sql/benchmarks/tpch/Tests/08-explain.stable.out.int128
sql/benchmarks/tpch/Tests/09-explain.stable.out.int128
sql/benchmarks/tpch/Tests/10-explain.stable.out.int128
sql/benchmarks/tpch/Tests/11-explain.stable.out.int128
sql/benchmarks/tpch/Tests/12-explain.stable.out.int128
sql/benchmarks/tpch/Tests/13-explain.stable.out
sql/benchmarks/tpch/Tests/14-explain.stable.out.int128
sql/benchmarks/tpch/Tests/15-explain.stable.out.int128
sql/benchmarks/tpch/Tests/16-explain.stable.out
sql/benchmarks/tpch/Tests/17-explain.stable.out.int128
sql/benchmarks/tpch/Tests/18-explain.stable.out.int128
sql/benchmarks/tpch/Tests/19-explain.stable.out.int128
sql/benchmarks/tpch/Tests/20-explain.stable.out.int128
sql/benchmarks/tpch/Tests/21-explain.stable.out
sql/benchmarks/tpch/Tests/22-explain.stable.out.int128
sql/rel.txt
sql/server/rel_dump.c
sql/server/rel_optimizer.c
sql/server/rel_rel.c
sql/server/rel_rel.h
sql/server/rel_select.c
sql/server/rel_select.h
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128
sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
sql/test/datacell/Tests/All
sql/test/mapi/Tests/sql_int128.stable.out
sql/test/mergetables/Tests/mergequery.stable.out
sql/test/remote/Tests/partition_elim.stable.out
Branch: jit
Log Message:
Merge with default
diffs (truncated from 13512 to 300 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -2040,7 +2040,6 @@ int defConstant(MalBlkPtr mb, int type,
str defineRef;
void delArgument(InstrPtr p, int varid);
void delName(const char *nme, size_t len);
-void delVariable(MalBlkPtr mb, int varid);
str deleteRef;
void deleteSymbol(Module scope, Symbol prg);
str deltaRef;
@@ -2062,7 +2061,6 @@ str evalFile(Client c, str fname, int li
str evalRef;
str execRef;
void expandMacro(MalBlkPtr mb, InstrPtr p, MalBlkPtr mc);
-void expandMalBlk(MalBlkPtr mb, int lines);
str expandRef;
str exportOperationRef;
str export_tableRef;
@@ -2074,7 +2072,6 @@ str findRef;
Scenario findScenario(str nme);
Symbol findSymbol(Module nspace, str mod, str fcn);
Symbol findSymbolInModule(Module v, str fcn);
-int findTmpVariable(MalBlkPtr mb, int type);
int findVariable(MalBlkPtr mb, const char *name);
int findVariableLength(MalBlkPtr mb, str name, int len);
void finishNamespace(void);
@@ -2140,7 +2137,6 @@ malType getType(MalBlkPtr mb, str nme);
str getTypeIdentifier(malType tpe);
str getTypeName(malType tpe);
lng getUserTime(void);
-str getVarName(MalBlkPtr mb, int i);
lng getVolume(MalStkPtr stk, InstrPtr pci, int rd);
str grabRef;
str groupRef;
@@ -2206,7 +2202,6 @@ int isSideEffectFree(MalBlkPtr mb);
int isSlice(InstrPtr q);
int isSubJoin(InstrPtr q);
int isSubSelect(InstrPtr q);
-int isTmpName(const char *n);
int isTopn(InstrPtr q);
int isUnsafeFunction(InstrPtr q);
int isUnsafeInstruction(InstrPtr q);
@@ -2331,10 +2326,9 @@ str newRef;
InstrPtr newReturnStmt(MalBlkPtr mb);
InstrPtr newStmt(MalBlkPtr mb, const char *module, const char *name);
Symbol newSymbol(str nme, int kind);
-int newTmpSink(MalBlkPtr mb, malType type);
int newTmpVariable(MalBlkPtr mb, malType type);
int newTypeVariable(MalBlkPtr mb, malType type);
-int newVariable(MalBlkPtr mb, str name, malType type);
+int newVariable(MalBlkPtr mb, str name, int len, malType type);
str nextRef;
str notRef;
str not_ilikeRef;
@@ -2429,13 +2423,11 @@ str remoteRef;
void removeDataflow(MalBlkPtr mb);
void removeInstruction(MalBlkPtr mb, InstrPtr p);
void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt);
-void removeVariable(MalBlkPtr mb, int varid);
void renameVariable(MalBlkPtr mb, int i, str pattern, int newid);
str replaceRef;
str replicatorRef;
void resetMalBlk(MalBlkPtr mb, int stop);
void resetScenario(Client c);
-void resetVarName(MalBlkPtr mb, int i);
void resizeMalBlk(MalBlkPtr mb, int maxstmt, int maxvar);
int resolveType(int dsttype, int srctype);
str resultSetRef;
@@ -2551,7 +2543,6 @@ int timestamp_tostr(str *buf, int *len,
int timestamp_tz_fromstr(const char *buf, int *len, timestamp **ret);
int timestamp_tz_tostr(str *buf, int *len, const timestamp *val, const tzone
*timezone);
str transRef;
-void trimMalBlk(MalBlkPtr mb);
void trimMalVariables(MalBlkPtr mb, MalStkPtr stk);
void trimMalVariables_(MalBlkPtr mb, bit *used, MalStkPtr glb);
void typeChecker(stream *out, Module scope, MalBlkPtr mb, InstrPtr p, int
silent);
diff --git
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -63,16 +63,16 @@ Ready.
% clob # type
% 126 # length
function user.s8_1():void;
- X_24:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","default_pipe",12);
-barrier X_52 := language.dataflow();
- X_1 := sql.mvc();
- (X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-exit X_52;
- X_14 := sql.append(X_1,"sys","ttt","a",X_11);
- X_18 := sql.append(X_14,"sys","ttt","b",X_12);
- X_20 := sql.append(X_18,"sys","ttt","c",X_13);
- X_22 := aggr.count(X_13);
- sql.affectedRows(X_20,X_22);
+ X_38:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","default_pipe",12);
+barrier X_58 := language.dataflow();
+ X_0 := sql.mvc();
+ (X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
+exit X_58;
+ X_25 := sql.append(X_0,"sys","ttt","a",X_21);
+ X_30 := sql.append(X_25,"sys","ttt","b",X_22);
+ X_33 := sql.append(X_30,"sys","ttt","c",X_23);
+ X_35 := aggr.count(X_23);
+ sql.affectedRows(X_33,X_35);
end user.s8_1;
#inline actions= 0 time=1 usec
#candidates actions= 1 time=14 usec
@@ -124,16 +124,16 @@ end user.s8_1;
% clob # type
% 126 # length
function user.s24_1():void;
- X_24:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","user_1",12);
-barrier X_53 := language.dataflow();
- X_1 := sql.mvc();
- (X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-exit X_53;
- X_14 := sql.append(X_1,"sys","ttt","a",X_11);
- X_18 := sql.append(X_14,"sys","ttt","b",X_12);
- X_22 := aggr.count(X_13);
- X_20 := sql.append(X_18,"sys","ttt","c",X_13);
- sql.affectedRows(X_20,X_22);
+ X_38:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","user_1",12);
+barrier X_58 := language.dataflow();
+ X_0 := sql.mvc();
+ (X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
+exit X_58;
+ X_25 := sql.append(X_0,"sys","ttt","a",X_21);
+ X_30 := sql.append(X_25,"sys","ttt","b",X_22);
+ X_35 := aggr.count(X_23);
+ X_33 := sql.append(X_30,"sys","ttt","c",X_23);
+ sql.affectedRows(X_33,X_35);
end user.s24_1;
#inline actions= 0 time=1 usec
#candidates actions= 1 time=14 usec
diff --git a/monetdb5/mal/Tests/tst013.stable.err
b/monetdb5/mal/Tests/tst013.stable.err
--- a/monetdb5/mal/Tests/tst013.stable.err
+++ b/monetdb5/mal/Tests/tst013.stable.err
@@ -46,7 +46,7 @@ QUERY = # incomplete barrier blocks. Res
exit t;
redo;
exit;
-ERROR = !SyntaxException:user.main[3]:label 'X_4' not in guarded block
+
!SyntaxException:user.main[14]:label 't' not in guarded block
# 13:20:00 >
diff --git a/monetdb5/mal/Tests/tst903.stable.out
b/monetdb5/mal/Tests/tst903.stable.out
--- a/monetdb5/mal/Tests/tst903.stable.out
+++ b/monetdb5/mal/Tests/tst903.stable.out
@@ -139,14 +139,14 @@ exit i;
cnt := aggr.count(z9);
mdb.setDebug(dbgmsk_set);
t0 := alarm.usec();
- X_103 := bat.new(nil:lng);
-barrier (X_106,X_107) := iterator.new(b);
- X_109 := algebra.fetch(c,X_106);
- X_111 := calc.+(X_107,X_109);
- bat.append(X_103,X_111);
- redo (X_106,X_107) := iterator.next(b);
-exit (X_106,X_107);
- x:bat[:lng] := X_103;
+ X_71 := bat.new(nil:lng);
+barrier (X_74,X_75) := iterator.new(b);
+ X_77 := algebra.fetch(c,X_74);
+ X_79 := calc.+(X_75,X_77);
+ bat.append(X_71,X_79);
+ redo (X_74,X_75) := iterator.next(b);
+exit (X_74,X_75);
+ x:bat[:lng] := X_71;
t1 := alarm.usec();
mdb.setDebug(dbgmsk_restore);
d0 := calc.-(t1,t0);
diff --git a/monetdb5/mal/Tests/tst904.stable.out
b/monetdb5/mal/Tests/tst904.stable.out
--- a/monetdb5/mal/Tests/tst904.stable.out
+++ b/monetdb5/mal/Tests/tst904.stable.out
@@ -39,13 +39,13 @@ barrier i:lng := 0:lng;
exit i:lng; #[7] (0) 5
io.print(b:bat[:lng]); #[8] (0) IOprint_val 11 <- 3
c:int := 1:int; #[9] (0) 12 <- 13
- X_18:bat[:lng] := bat.new(nil:lng); #[10] (0) CMDBATnew 18 <- 19
-barrier (X_21:oid,X_22:lng) := iterator.new(b:bat[:lng]); #[11] (0)
ITRbunIterator 21 22 <- 3
- X_24:lng := calc.+(X_22:lng,c:int); #[12] (0) CMDvarADDsignal 24 <-
22 12
- bat.append(X_18:bat[:lng],X_24:lng); #[13] (0) BKCappend_val_wrap 25
<- 18 24
- redo (X_21:oid,X_22:lng) := iterator.next(b:bat[:lng]); #[14] (0)
ITRbunNext 21 22 <- 3
-exit (X_21:oid,X_22:lng); #[15] (0) 21 22
- xz:bat[:lng] := X_18:bat[:lng]; #[16] (0) 14 <- 18
+ X_13:bat[:lng] := bat.new(nil:lng); #[10] (0) CMDBATnew 18 <- 19
+barrier (X_16:oid,X_17:lng) := iterator.new(b:bat[:lng]); #[11] (0)
ITRbunIterator 21 22 <- 3
+ X_19:lng := calc.+(X_17:lng,c:int); #[12] (0) CMDvarADDsignal 24 <-
22 12
+ bat.append(X_13:bat[:lng],X_19:lng); #[13] (0) BKCappend_val_wrap 25
<- 18 24
+ redo (X_16:oid,X_17:lng) := iterator.next(b:bat[:lng]); #[14] (0)
ITRbunNext 21 22 <- 3
+exit (X_16:oid,X_17:lng); #[15] (0) 21 22
+ xz:bat[:lng] := X_13:bat[:lng]; #[16] (0) 14 <- 18
io.print(xz:bat[:lng]); #[17] (0) IOprint_val 17 <- 14
end user.foo; #[18] (0)
#--------------------------#
diff --git a/monetdb5/mal/Tests/tst907.stable.out
b/monetdb5/mal/Tests/tst907.stable.out
--- a/monetdb5/mal/Tests/tst907.stable.out
+++ b/monetdb5/mal/Tests/tst907.stable.out
@@ -36,29 +36,29 @@ function user.foo():void;
b:bat[:int] := bat.new(:int); #[4] (0) CMDBATnew 7 <- 8
bat.append(b:bat[:int],1:int); #[5] (0) BKCappend_val_wrap 9
<- 7 2
io.print("do multiplex three test":str); #[6] (0) IOprint_val 10 <- 11
- X_22:bat[:int] := bat.new(nil:int); #[7] (0) CMDBATnew 22 <- 23
-barrier (X_25:oid,X_26:int) := iterator.new(b:bat[:int]); #[8] (0)
ITRbunIterator 25 26 <- 7
- X_28:int := user.three(X_26:int,2:int,3:int); #[9] (0) 28 <- 26 4 5
- bat.append(X_22:bat[:int],X_28:int); #[10] (0) BKCappend_val_wrap 29
<- 22 28
- redo (X_25:oid,X_26:int) := iterator.next(b:bat[:int]); #[11] (0)
ITRbunNext 25 26 <- 7
-exit (X_25:oid,X_26:int); #[12] (0) 25 26
- z:bat[:int] := X_22:bat[:int]; #[13] (0) 12 <- 22
+ X_16:bat[:int] := bat.new(nil:int); #[7] (0) CMDBATnew 22 <- 23
+barrier (X_19:oid,X_20:int) := iterator.new(b:bat[:int]); #[8] (0)
ITRbunIterator 25 26 <- 7
+ X_22:int := user.three(X_20:int,2:int,3:int); #[9] (0) 28 <- 26 4 5
+ bat.append(X_16:bat[:int],X_22:int); #[10] (0) BKCappend_val_wrap 29
<- 22 28
+ redo (X_19:oid,X_20:int) := iterator.next(b:bat[:int]); #[11] (0)
ITRbunNext 25 26 <- 7
+exit (X_19:oid,X_20:int); #[12] (0) 25 26
+ z:bat[:int] := X_16:bat[:int]; #[13] (0) 12 <- 22
io.print("do multiplex one test":str); #[14] (0) IOprint_val 15 <- 16
- X_33:bat[:int] := bat.new(nil:int); #[15] (0) CMDBATnew 33 <- 23
-barrier (X_35:oid,X_36:int) := iterator.new(b:bat[:int]); #[16] (0)
ITRbunIterator 35 36 <- 7
- X_38:int := user.one(X_36:int); #[17] (0) 38 <- 36
- bat.append(X_33:bat[:int],X_38:int); #[18] (0) BKCappend_val_wrap 39
<- 33 38
- redo (X_35:oid,X_36:int) := iterator.next(b:bat[:int]); #[19] (0)
ITRbunNext 35 36 <- 7
-exit (X_35:oid,X_36:int); #[20] (0) 35 36
- z:bat[:int] := X_33:bat[:int]; #[21] (0) 12 <- 33
+ X_27:bat[:int] := bat.new(nil:int); #[15] (0) CMDBATnew 33 <- 23
+barrier (X_29:oid,X_30:int) := iterator.new(b:bat[:int]); #[16] (0)
ITRbunIterator 35 36 <- 7
+ X_32:int := user.one(X_30:int); #[17] (0) 38 <- 36
+ bat.append(X_27:bat[:int],X_32:int); #[18] (0) BKCappend_val_wrap 39
<- 33 38
+ redo (X_29:oid,X_30:int) := iterator.next(b:bat[:int]); #[19] (0)
ITRbunNext 35 36 <- 7
+exit (X_29:oid,X_30:int); #[20] (0) 35 36
+ z:bat[:int] := X_27:bat[:int]; #[21] (0) 12 <- 33
io.print("do multiplex pow test":str); #[22] (0) IOprint_val 18 <- 19
- X_43:bat[:int] := bat.new(nil:int); #[23] (0) CMDBATnew 43 <- 23
-barrier (X_45:oid,X_46:int) := iterator.new(b:bat[:int]); #[24] (0)
ITRbunIterator 45 46 <- 7
- X_48:int := user.pow(X_46:int,2:int); #[25] (0) 48 <- 46 4
- bat.append(X_43:bat[:int],X_48:int); #[26] (0) BKCappend_val_wrap 49
<- 43 48
- redo (X_45:oid,X_46:int) := iterator.next(b:bat[:int]); #[27] (0)
ITRbunNext 45 46 <- 7
-exit (X_45:oid,X_46:int); #[28] (0) 45 46
- z:bat[:int] := X_43:bat[:int]; #[29] (0) 12 <- 43
+ X_37:bat[:int] := bat.new(nil:int); #[23] (0) CMDBATnew 43 <- 23
+barrier (X_39:oid,X_40:int) := iterator.new(b:bat[:int]); #[24] (0)
ITRbunIterator 45 46 <- 7
+ X_42:int := user.pow(X_40:int,2:int); #[25] (0) 48 <- 46 4
+ bat.append(X_37:bat[:int],X_42:int); #[26] (0) BKCappend_val_wrap 49
<- 43 48
+ redo (X_39:oid,X_40:int) := iterator.next(b:bat[:int]); #[27] (0)
ITRbunNext 45 46 <- 7
+exit (X_39:oid,X_40:int); #[28] (0) 45 46
+ z:bat[:int] := X_37:bat[:int]; #[29] (0) 12 <- 43
io.print(z:bat[:int]); #[30] (0) IOprint_val 21 <- 12
end user.foo; #[31] (0)
[ 1 ]
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -144,16 +144,15 @@ typedef struct SYMDEF {
} *Symbol, SymRecord;
typedef struct VARRECORD {
- str name; /* argname or lexical
value repr */
+ char id[IDLENGTH]; /* use the space for the full
name */
malType type; /* internal type signature */
int flags; /* see below, reserve
some space */
- int tmpindex; /* temporary variable */
ValRecord value;
int declared; /* pc index when it was first
assigned */
int updated; /* pc index when it was first
updated */
int eolife; /* pc index when it
should be garbage collected */
int depth; /* scope block depth */
- int worker; /* tread id of last
worker producing it */
+ int worker; /* thread id of last
worker producing it */
str stc; /* rendering
schema.table.column */
BUN rowcnt; /* estimated row count*/
} *VarPtr, VarRecord;
@@ -198,6 +197,7 @@ typedef struct MALBLK {
struct MALBLK *alternative;
int vtop; /* next free slot */
int vsize; /* size of variable
arena */
+ int vid; /* generate local
variable counter */
VarRecord **var; /* Variable table */
int stop; /* next free slot */
int ssize; /* byte size of arena */
diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c
--- a/monetdb5/mal/mal_builder.c
+++ b/monetdb5/mal/mal_builder.c
@@ -128,7 +128,7 @@ newCatchStmt(MalBlkPtr mb, str nme)
return NULL;
q->barrier = CATCHsymbol;
if ( i< 0) {
- if ((getArg(q,0)= newVariable(mb, GDKstrdup(nme),TYPE_str)) <
0) {
+ if ((getArg(q,0)= newVariable(mb, nme, strlen(nme),TYPE_str)) <
0) {
freeInstruction(q);
return NULL;
}
@@ -146,7 +146,7 @@ newRaiseStmt(MalBlkPtr mb, str nme)
return NULL;
q->barrier = RAISEsymbol;
if ( i< 0) {
- if ((getArg(q,0)= newVariable(mb, GDKstrdup(nme),TYPE_str)) <
0) {
+ if ((getArg(q,0)= newVariable(mb, nme, strlen(nme),TYPE_str)) <
0) {
freeInstruction(q);
return NULL;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list