Changeset: 5a1c1f25c8d0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5a1c1f25c8d0
Modified Files:
clients/Tests/exports.stable.out
monetdb5/mal/Tests/recycle00.stable.out
monetdb5/mal/Tests/tst661.stable.out
monetdb5/mal/Tests/tst662.stable.out
monetdb5/mal/mal_function.c
monetdb5/modules/mal/Tests/partition.stable.out
monetdb5/optimizer/Tests/CMexample.stable.out
monetdb5/optimizer/Tests/CXexample.stable.out
monetdb5/optimizer/Tests/DCexample.stable.out
monetdb5/optimizer/Tests/DCexample2.stable.out
monetdb5/optimizer/Tests/FTexample.stable.out
monetdb5/optimizer/Tests/GCexample01.stable.out
monetdb5/optimizer/Tests/JPexample.stable.out
monetdb5/optimizer/Tests/Mexample.stable.out
monetdb5/optimizer/Tests/cst00.stable.out
monetdb5/optimizer/Tests/cst01.stable.out
monetdb5/optimizer/Tests/cst02.stable.out
monetdb5/optimizer/Tests/dataflow.stable.out
monetdb5/optimizer/Tests/garbage.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/inline05.stable.out
monetdb5/optimizer/Tests/inline06.stable.out
monetdb5/optimizer/Tests/inline07.stable.out
monetdb5/optimizer/Tests/inline08.stable.out
monetdb5/optimizer/Tests/inline09.stable.out
monetdb5/optimizer/Tests/inline10.stable.out
monetdb5/optimizer/Tests/inlineCst.stable.out
monetdb5/optimizer/Tests/inlineIfthen.stable.out
monetdb5/optimizer/Tests/manifold2.stable.out
monetdb5/optimizer/Tests/remap.stable.out
monetdb5/optimizer/Tests/tst4005.stable.out
monetdb5/optimizer/Tests/tst4600.stable.out
monetdb5/optimizer/Tests/tst4601.stable.out
monetdb5/optimizer/Tests/tst4630.stable.out
monetdb5/scheduler/Tests/sched00.stable.out
sql/backends/monet5/Tests/optimizers.stable.err
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.int128
sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128
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/05-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
sql/benchmarks/tpch/Tests/11-explain.stable.out.int128
sql/benchmarks/tpch/Tests/14-explain.stable.out.int128
sql/benchmarks/tpch/Tests/15-explain.stable.out.int128
sql/benchmarks/tpch/Tests/17-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
sql/benchmarks/tpch/Tests/19-explain.stable.out.int128
sql/benchmarks/tpch/Tests/20-explain.stable.out
sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit
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
sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/22-explain.stable.out.int128
sql/test/mergetables/Tests/mergequery.stable.out
Branch: default
Log Message:
Show dataflow between variables in extended debugging output
diffs (truncated from 7207 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
@@ -2228,23 +2228,31 @@ str generatorRef;
MALfcn getAddress(stream *out, str filename, str modnme, str fcnname, int
silent);
str getArgDefault(MalBlkPtr mb, InstrPtr p, int idx);
ptr getArgReference(MalStkPtr stk, InstrPtr pci, int k);
+int getBitConstant(MalBlkPtr mb, bit val);
int getBlockBegin(MalBlkPtr mb, int pc);
int getBlockExit(MalBlkPtr mb, int pc);
+int getBteConstant(MalBlkPtr mb, bte val);
char *getConsoleInput(Client c, const char *prompt, int linemode, int
exit_on_error);
+int getDblConstant(MalBlkPtr mb, dbl val);
lng getDiskReads(void);
lng getDiskSpace(void);
lng getDiskWrites(void);
str getExceptionMessage(str);
str getExceptionPlace(str);
enum malexception getExceptionType(str);
+int getFltConstant(MalBlkPtr mb, flt val);
Scenario getFreeScenario(void);
Symbol getFunctionSymbol(Module scope, InstrPtr p);
char **getHelp(Module m, str pat, int flag);
char **getHelpMatch(char *pat);
+int getHgeConstant(MalBlkPtr mb, hge val);
+int getIntConstant(MalBlkPtr mb, int val);
+int getLngConstant(MalBlkPtr mb, lng val);
MalBlkPtr getMalBlkHistory(MalBlkPtr mb, int idx);
MalBlkPtr getMalBlkMarker(MalBlkPtr mb, str marker);
lng getMemoryClaim(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, int i, int flag);
str getName(const char *nme, size_t len);
+int getOidConstant(MalBlkPtr mb, oid val);
int getPC(MalBlkPtr mb, InstrPtr p);
str getPipeCatalog(bat *nme, bat *def, bat *stat);
str getPipeDefinition(str name);
@@ -2252,6 +2260,8 @@ int getProfileCounter(int idx);
stream *getProfilerStream(void);
str getRef;
str getScenarioLanguage(Client c);
+int getShtConstant(MalBlkPtr mb, sht val);
+int getStrConstant(MalBlkPtr mb, str val);
lng getSystemTime(void);
BAT *getTrace(const char *ev);
int getTraceType(const char *nme);
@@ -2263,6 +2273,7 @@ lng getUserTime(void);
str getVarName(MalBlkPtr mb, int i);
wrd getVarRows(MalBlkPtr mb, int v);
lng getVolume(MalStkPtr stk, InstrPtr pci, int rd);
+int getWrdConstant(MalBlkPtr mb, wrd val);
MalBlkPtr gotoMalBlkMarker(MalBlkPtr mb, str marker);
str grabRef;
str groupRef;
diff --git a/monetdb5/mal/Tests/recycle00.stable.out
b/monetdb5/mal/Tests/recycle00.stable.out
--- a/monetdb5/mal/Tests/recycle00.stable.out
+++ b/monetdb5/mal/Tests/recycle00.stable.out
@@ -40,11 +40,11 @@ function user.qry():void;
j := calc.*(i,i);
io.print(j);
end user.qry;
-function user.qry():void; #
- i:int := 23:int; #
- j:int := calc.*(i:int,i:int); # CMDvarMULsignal
- io.print(j:int); # IOprint_val
-end user.qry; #
+function user.qry():void; #[0] 0 <-
+ i:int := 23:int; #[1] 1 <- 2
+ j:int := calc.*(i:int,i:int); #[2] CMDvarMULsignal 3 <- 1 1
+ io.print(j:int); #[3] IOprint_val 4 <- 3
+end user.qry; #[4]
[ "start" ]
[ 529 ]
[ "next" ]
diff --git a/monetdb5/mal/Tests/tst661.stable.out
b/monetdb5/mal/Tests/tst661.stable.out
--- a/monetdb5/mal/Tests/tst661.stable.out
+++ b/monetdb5/mal/Tests/tst661.stable.out
@@ -37,13 +37,13 @@ function user.tst():void;
z := user.fs(1);
(y,z) := user.fs(1);
end user.tst;
-function user.tst():void; #
- a:int := user.fi(1:int); # MDBdummy
- (a:int,b:int) := user.fi(1:int); # MDBdummy
- (a:int,b:int,c:int) := user.fi(1:int); # MDBdummy
- z:str := user.fs(1:int); # MDBdummy
- (y:str,z:str) := user.fs(1:int); # MDBdummy
-end user.tst; #
+function user.tst():void; #[0] 0 <-
+ a:int := user.fi(1:int); #[1] MDBdummy 1 <- 2
+ (a:int,b:int) := user.fi(1:int); #[2] MDBdummy 1 3 <- 2
+ (a:int,b:int,c:int) := user.fi(1:int); #[3] MDBdummy 1 3 4 <- 2
+ z:str := user.fs(1:int); #[4] MDBdummy 5 <- 2
+ (y:str,z:str) := user.fs(1:int); #[5] MDBdummy 6 5 <- 2
+end user.tst; #[6]
# 16:47:50 >
# 16:47:50 > Done.
diff --git a/monetdb5/mal/Tests/tst662.stable.out
b/monetdb5/mal/Tests/tst662.stable.out
--- a/monetdb5/mal/Tests/tst662.stable.out
+++ b/monetdb5/mal/Tests/tst662.stable.out
@@ -34,16 +34,16 @@ function user.main():void;
#Testing variable return lists
mdb.List("user","tst");
end user.main;
-function user.tst():void; #
- X100:lng := -1:lng; #
- X102:lng := -1:lng; #
- X103:lng := -1:lng; #
- X104:lng := -1:lng; #
- (X112:bte,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeSchedule(2:int,X100:lng,X103:lng,X102:lng,X104:lng); # MDBdummy
- (X118:int,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeScheduleB(2:int,X100:lng,X103:lng,X102:lng,X104:lng); # MDBdummy
- (X118:int,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeScheduleC(2:int,X100:lng,X103:lng,X102:lng,X104:lng); # MDBdummy
- (X118:int,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeScheduleD(2:int,X100:lng,X103:lng,X102:lng,X104:lng); # MDBdummy
-end user.tst; #
+function user.tst():void; #[0] 0 <-
+ X100:lng := -1:lng; #[1] 1 <- 2
+ X102:lng := -1:lng; #[2] 3 <- 2
+ X103:lng := -1:lng; #[3] 4 <- 2
+ X104:lng := -1:lng; #[4] 5 <- 2
+ (X112:bte,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeSchedule(2:int,X100:lng,X103:lng,X102:lng,X104:lng); #[5] MDBdummy
6 7 8 9 10 <- 11 1 4 3 5
+ (X118:int,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeScheduleB(2:int,X100:lng,X103:lng,X102:lng,X104:lng); #[6] MDBdummy
12 7 8 9 10 <- 11 1 4 3 5
+ (X118:int,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeScheduleC(2:int,X100:lng,X103:lng,X102:lng,X104:lng); #[7] MDBdummy
12 7 8 9 10 <- 11 1 4 3 5
+ (X118:int,X113:bte,X114:bte,X115:bte,X116:bte) :=
user.makeScheduleD(2:int,X100:lng,X103:lng,X102:lng,X104:lng); #[8] MDBdummy
12 7 8 9 10 <- 11 1 4 3 5
+end user.tst; #[9]
# 16:39:29 >
# 16:39:29 > Done.
diff --git a/monetdb5/mal/mal_function.c b/monetdb5/mal/mal_function.c
--- a/monetdb5/mal/mal_function.c
+++ b/monetdb5/mal/mal_function.c
@@ -468,7 +468,7 @@ cloneFunction(stream *out, Module scope,
void
debugFunction(stream *fd, MalBlkPtr mb, MalStkPtr stk, int flg, int first, int
step)
{
- int i;
+ int i,j;
str ps;
InstrPtr p;
@@ -482,7 +482,14 @@ debugFunction(stream *fd, MalBlkPtr mb,
for (i = first; i < first +step && i < mb->stop; i++){
ps = instruction2str(mb, stk, (p=getInstrPtr(mb, i)), flg);
if (ps) {
- mnstr_printf(fd,"%-40s\t# %s\n",ps, (p->blk &&
p->blk->binding? p->blk->binding:""));
+ mnstr_printf(fd,"%-40s\t#[%d] %s ",ps, i, (p->blk &&
p->blk->binding? p->blk->binding:""));
+ for(j =0; j < p->retc; j++)
+ mnstr_printf(fd,"%d ",getArg(p,j));
+ if( p->argc)
+ mnstr_printf(fd,"<- ");
+ for(; j < p->argc; j++)
+ mnstr_printf(fd,"%d ",getArg(p,j));
+ mnstr_printf(fd,"\n");
GDKfree(ps);
}
}
diff --git a/monetdb5/modules/mal/Tests/partition.stable.out
b/monetdb5/modules/mal/Tests/partition.stable.out
--- a/monetdb5/modules/mal/Tests/partition.stable.out
+++ b/monetdb5/modules/mal/Tests/partition.stable.out
@@ -35,26 +35,26 @@ function user.main():void;
mdb.List("user","tst");
user.tst();
end user.main;
-function user.tst():void; #
- b:bat[:oid,:int] := bat.new(:oid,:int); # CMDBATnew
- bat.append(b:bat[:oid,:int],1:int); # BKCappend_val_wrap
- bat.append(b:bat[:oid,:int],2:int); # BKCappend_val_wrap
- bat.append(b:bat[:oid,:int],3:int); # BKCappend_val_wrap
- bat.append(b:bat[:oid,:int],4:int); # BKCappend_val_wrap
- bat.append(b:bat[:oid,:int],5:int); # BKCappend_val_wrap
- c:bat[:oid,:int] := bat.partition(b:bat[:oid,:int],2:int,0:int); #
CMDBATpartition2
- io.print(c:bat[:oid,:int]); # IOprint_val
- d:bat[:oid,:int] := bat.partition(b:bat[:oid,:int],2:int,1:int); #
CMDBATpartition2
- io.print(d:bat[:oid,:int]); # IOprint_val
- (b1:bat[:oid,:int],b2:bat[:oid,:int]) := bat.partition(b:bat[:oid,:int]);
# CMDBATpartition
- io.print(b1:bat[:oid,:int]); # IOprint_val
- io.print(b2:bat[:oid,:int]); # IOprint_val
- b3:bat[:oid,:int] := bat.partition(b:bat[:oid,:int]); #
CMDBATpartition
- io.print(b3:bat[:oid,:int]); # IOprint_val
-# an error should be produced #
- e:bat[:oid,:int] := bat.partition(b:bat[:oid,:int],2:int,-1:int); #
CMDBATpartition2
- io.print(e:bat[:oid,:int]); # IOprint_val
-end user.tst; #
+function user.tst():void; #[0] 0 <-
+ b:bat[:oid,:int] := bat.new(:oid,:int); #[1] CMDBATnew 1 <- 2 3
+ bat.append(b:bat[:oid,:int],1:int); #[2] BKCappend_val_wrap 4 <- 1
5
+ bat.append(b:bat[:oid,:int],2:int); #[3] BKCappend_val_wrap 6 <- 1
7
+ bat.append(b:bat[:oid,:int],3:int); #[4] BKCappend_val_wrap 8 <- 1
9
+ bat.append(b:bat[:oid,:int],4:int); #[5] BKCappend_val_wrap 10 <- 1
11
+ bat.append(b:bat[:oid,:int],5:int); #[6] BKCappend_val_wrap 12 <- 1
13
+ c:bat[:oid,:int] := bat.partition(b:bat[:oid,:int],2:int,0:int); #[7]
CMDBATpartition2 14 <- 1 7 15
+ io.print(c:bat[:oid,:int]); #[8] IOprint_val 16 <- 14
+ d:bat[:oid,:int] := bat.partition(b:bat[:oid,:int],2:int,1:int); #[9]
CMDBATpartition2 17 <- 1 7 5
+ io.print(d:bat[:oid,:int]); #[10] IOprint_val 18 <- 17
+ (b1:bat[:oid,:int],b2:bat[:oid,:int]) := bat.partition(b:bat[:oid,:int]);
#[11] CMDBATpartition 19 20 <- 1
+ io.print(b1:bat[:oid,:int]); #[12] IOprint_val 21 <- 19
+ io.print(b2:bat[:oid,:int]); #[13] IOprint_val 22 <- 20
+ b3:bat[:oid,:int] := bat.partition(b:bat[:oid,:int]); #[14]
CMDBATpartition 23 <- 1
+ io.print(b3:bat[:oid,:int]); #[15] IOprint_val 24 <- 23
+# an error should be produced #[16] 25 <-
+ e:bat[:oid,:int] := bat.partition(b:bat[:oid,:int],2:int,-1:int); #[17]
CMDBATpartition2 26 <- 1 7 27
+ io.print(e:bat[:oid,:int]); #[18] IOprint_val 28 <- 26
+end user.tst; #[19]
#--------------------------#
# h t # name
# void int # type
diff --git a/monetdb5/optimizer/Tests/CMexample.stable.out
b/monetdb5/optimizer/Tests/CMexample.stable.out
--- a/monetdb5/optimizer/Tests/CMexample.stable.out
+++ b/monetdb5/optimizer/Tests/CMexample.stable.out
@@ -30,15 +30,15 @@ function user.main():void;
# Cost model example
mdb.List("user","q");
end user.main;
-function user.q():void; #
- r:bat[:oid,:int]{rows=100} := bat.new(:oid,:int); # CMDBATnew
- s:bat[:oid,:int]{rows=1000} := bat.new(:oid,:int); # CMDBATnew
- r:bat[:oid,:int]{rows=100} := bat.new(:oid,:int); # CMDBATnew
- s:bat[:oid,:int]{rows=1000} := bat.new(:oid,:int); # CMDBATnew
- x:bat[:oid,:oid]{rows=300} := bat.new(:oid,:oid); # CMDBATnew
- rs:bat[:oid,:oid]{rows=151} :=
algebra.subselect(s:bat[:oid,:int],x:bat[:oid,:oid],1:int,1:int,true:bit,true:bit,false:bit);
# ALGsubselect2
- j:bat[:oid,:int]{rows=100} :=
algebra.leftfetchjoin(rs:bat[:oid,:oid],r:bat[:oid,:int]); # ALGleftfetchjoin
-end user.q; #
+function user.q():void; #[0] 0 <-
+ r:bat[:oid,:int]{rows=100} := bat.new(:oid,:int); #[1] CMDBATnew 1 <- 3 4
+ s:bat[:oid,:int]{rows=1000} := bat.new(:oid,:int); #[2] CMDBATnew 5 <- 3 7
+ r:bat[:oid,:int]{rows=100} := bat.new(:oid,:int); #[3] CMDBATnew 1 <- 3 8
+ s:bat[:oid,:int]{rows=1000} := bat.new(:oid,:int); #[4] CMDBATnew 5 <- 3 9
+ x:bat[:oid,:oid]{rows=300} := bat.new(:oid,:oid); #[5] CMDBATnew 10 <- 3
3
+ rs:bat[:oid,:oid]{rows=151} :=
algebra.subselect(s:bat[:oid,:int],x:bat[:oid,:oid],1:int,1:int,true:bit,true:bit,false:bit);
#[6] ALGsubselect2 12 <- 5 10 13 13 14 14 15
+ j:bat[:oid,:int]{rows=100} :=
algebra.leftfetchjoin(rs:bat[:oid,:oid],r:bat[:oid,:int]); #[7]
ALGleftfetchjoin 16 <- 12 1
+end user.q; #[8]
# 08:55:26 >
# 08:55:26 > Done.
diff --git a/monetdb5/optimizer/Tests/CXexample.stable.out
b/monetdb5/optimizer/Tests/CXexample.stable.out
--- a/monetdb5/optimizer/Tests/CXexample.stable.out
+++ b/monetdb5/optimizer/Tests/CXexample.stable.out
@@ -22,16 +22,16 @@ function user.main():void;
l3 := calc.+(l,24);
mdb.List();
end user.main;
-function user.main():void; #
-# The 4000 series deals with strategic optimizer constructs #
-# common subexpression evaluation #
- b:bat[:oid,:int] := bat.new(:oid,:int); # CMDBATnew
- c:bat[:oid,:int] := bat.new(:oid,:int); # CMDBATnew
- d:bat[:oid,:int] := algebra.select(b:bat[:oid,:int],0:int,100:int);
# ALGselect
- l:int := calc.+(24:int,27:int); # CMDvarADDsignal
- l3:int := calc.+(l:int,24:int); # CMDvarADDsignal
- mdb.List(); # MDBlistDetail
-end user.main; #
+function user.main():void; #[0] 0 <-
+# The 4000 series deals with strategic optimizer constructs #[1] 1 <-
+# common subexpression evaluation #[2] 2 <-
+ b:bat[:oid,:int] := bat.new(:oid,:int); #[3] CMDBATnew 5 <- 6 7
+ c:bat[:oid,:int] := bat.new(:oid,:int); #[4] CMDBATnew 8 <- 6 7
+ d:bat[:oid,:int] := algebra.select(b:bat[:oid,:int],0:int,100:int);
#[5] ALGselect 9 <- 5 10 11
+ l:int := calc.+(24:int,27:int); #[6] CMDvarADDsignal 17 <- 14
16
+ l3:int := calc.+(l:int,24:int); #[7] CMDvarADDsignal 19 <- 17
14
+ mdb.List(); #[8] MDBlistDetail 20 <-
+end user.main; #[9]
# 23:53:03 >
# 23:53:03 > Done.
diff --git a/monetdb5/optimizer/Tests/DCexample.stable.out
b/monetdb5/optimizer/Tests/DCexample.stable.out
--- a/monetdb5/optimizer/Tests/DCexample.stable.out
+++ b/monetdb5/optimizer/Tests/DCexample.stable.out
@@ -17,10 +17,10 @@ function user.main():void;
mdb.List();
end user.main;
[ "done" ]
-function user.main():void; #
- io.print("done":str); # IOprint_val
- mdb.List(); # MDBlistDetail
-end user.main; #
+function user.main():void; #[0] 0 <-
+ io.print("done":str); #[1] IOprint_val 15 <- 16
+ mdb.List(); #[2] MDBlistDetail 18 <-
+end user.main; #[3]
# 23:53:03 >
# 23:53:03 > Done.
diff --git a/monetdb5/optimizer/Tests/DCexample2.stable.out
b/monetdb5/optimizer/Tests/DCexample2.stable.out
--- a/monetdb5/optimizer/Tests/DCexample2.stable.out
+++ b/monetdb5/optimizer/Tests/DCexample2.stable.out
@@ -19,14 +19,14 @@ function user.main():void;
b := algebra.subsort(b,false,false);
mdb.List();
end user.main;
-function user.main():void; #
- b:bat[:oid,:int] := bat.new(:oid,:int); # CMDBATnew
- bat.append(b:bat[:oid,:int],2:int); # BKCappend_val_wrap
- bat.append(b:bat[:oid,:int],5:int); # BKCappend_val_wrap
- bat.append(b:bat[:oid,:int],3:int); # BKCappend_val_wrap
- b:bat[:oid,:int] := algebra.subsort(b:bat[:oid,:int],false:bit,false:bit);
# ALGsubsort11
- mdb.List(); # MDBlistDetail
-end user.main; #
+function user.main():void; #[0] 0 <-
+ b:bat[:oid,:int] := bat.new(:oid,:int); #[1] CMDBATnew 2 <- 3 4
+ bat.append(b:bat[:oid,:int],2:int); #[2] BKCappend_val_wrap 5 <- 2
6
+ bat.append(b:bat[:oid,:int],5:int); #[3] BKCappend_val_wrap 7 <- 2
8
+ bat.append(b:bat[:oid,:int],3:int); #[4] BKCappend_val_wrap 9 <- 2
10
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list