📄 generator09.stable.out
字号:
stdout of test 'generator09` in directory 'src/optimizer` itself:# 13:30:18 > # 13:30:18 > Mtimeout -timeout 60 Mserver "--config=/ufs/mk/monet5/src/mal/Tests/All.conf" --debug=10 --set "monet_mod_path=/ufs/mk/monet5/Linux/lib/MonetDB5:/ufs/mk/opensource/MonetDB/Linux/lib/MonetDB" --set "gdk_dbfarm=/ufs/mk/monet5/Linux/var/MonetDB5/dbfarm" --set "sql_logdir=/ufs/mk/monet5/Linux/var/MonetDB5/log" --set mapi_port=35224 --set sql_port=40479 --set xquery_port=53272 --set monet_prompt= --trace --dbname=mTests_src_optimizer generator09.mal < /dev/null# 13:30:18 > # Monet Database Server V4.99.19# Copyright (c) 1993-2005, CWI. All rights reserved.# Compiled for x86_64-redhat-linux-gnu/64bit with 32bit OIDs; dynamically linked.# config:/ufs/mk/monet5/src/mal/Tests/All.conf# dbfarm:/ufs/mk/monet5/Linux/var/MonetDB5/dbfarm# dbname:mTests_src_optimizer# Visit http://monetdb.cwi.nl/ for further information.## the generator optimizer## The flow graph becomes a little more complex ## it requires the result of the select to be accumulated## because there is a blocking instruction inbetween#mdb.list();# io.print("start");# b:bat[:void,:int]:= pbm.generator("Sales2005");# a:bat[:void,:int]:= pbm.generator("Areas");# low:= 0;# high:= 3;# s:= algebra.select(b,low,high);# i:= aggr.count(s);# io.print("Result is:");# io.print(i);# io.print("go-on");# t:= algebra.select(s,low,high);# ar:= bat.reverse(a);# j:= algebra.join(t,ar);# c:= aggr.count(j);# io.print(c);# io.print("finished");#optimizer.generators();##function user.main():void; # 0 (main:void)# the generator optimizer # 1 (_1:str)# The flow graph becomes a little more complex # 2 (_2:str)# it requires the result of the select to be accumulated # 3 (_3:str)# because there is a blocking instruction inbetween # 4 (_4:str) mdb.list(); # 5 MDBlist (_5:void) io.print("start"); # 6 IOprint_val (_6:void)<-(_7:str) low := 0; # 7 (low:int)<-(_13:int) high := 3; # 8 (high:int)<-(_15:int) i := 0; # 9 (i:int)<-(_13:int) c := 0; # 10 (c:int)<-(_13:int)barrier b:bat[:oid,:int] := pbm.newIterator("Sales2005"); # 11 PBMnewIterator (b:bat[:oid,:int])<-(_9:str) jump 17 s := algebra.select(b,low,high); # 12 ALGselect (s:bat[:oid,:int])<-(b:bat[:oid,:int])(low:int)(high:int) _32 := aggr.count(s); # 13 ALGcount_bat (_32:int)<-(s:bat[:oid,:int]) i := calc.+(i,_32); # 14 CALCbinaryADDintint (i:int)<-(i:int)(_32:int) pbm.deposit("pbat_s",s); # 15 PBMdepositIndexed (_33:void)<-(_31:str)(s:bat[:oid,:int]) redo b:bat[:oid,:int] := pbm.getNextElement("Sales2005"); # 16 PBMgetNextElement (b:bat[:oid,:int])<-(_9:str) jump 12exit b:bat[:oid,:int] ; # 17 (b:bat[:oid,:int]) io.print("Result is:"); # 18 IOprint_val (_18:void)<-(_19:str) io.print(i); # 19 IOprint_val (_20:void)<-(i:int) io.print("go-on"); # 20 IOprint_val (_21:void)<-(_22:str)barrier s := pbm.newIterator("pbat_s"); # 21 PBMnewIterator (s:bat[:oid,:int])<-(_31:str) jump 31 t := algebra.select(s,low,high); # 22 ALGselect (t:bat[:oid,:int])<-(s:bat[:oid,:int])(low:int)(high:int)barrier a:bat[:oid,:int] := pbm.newIterator("Areas"); # 23 PBMnewIterator (a:bat[:oid,:int])<-(_11:str) jump 29 ar := bat.reverse(a); # 24 BKCreverse (ar:bat[:int,:oid])<-(a:bat[:oid,:int]) j := algebra.join(t,ar); # 25 ALGjoin (j:bat[:oid,:oid])<-(t:bat[:oid,:int])(ar:bat[:int,:oid]) _38 := aggr.count(j); # 26 ALGcount_bat (_38:int)<-(j:bat[:oid,:oid]) c := calc.+(c,_38); # 27 CALCbinaryADDintint (c:int)<-(c:int)(_38:int) redo a:bat[:oid,:int] := pbm.getNextElement("Areas"); # 28 PBMgetNextElement (a:bat[:oid,:int])<-(_11:str) jump 24exit a:bat[:oid,:int] ; # 29 (a:bat[:oid,:int]) redo s := pbm.getNextElement("pbat_s"); # 30 PBMgetNextElement (s:bat[:oid,:int])<-(_31:str) jump 22exit s; # 31 (s:bat[:oid,:int]) io.print(c); # 32 IOprint_val (_27:void)<-(c:int) io.print("finished"); # 33 IOprint_val (_28:void)<-(_29:str) pbm.discard("pbat_s"); # 34 PBMdiscard (_34:void)<-(_31:str)end main; # 35 function user.main():void;# the generator optimizer # The flow graph becomes a little more complex # it requires the result of the select to be accumulated # because there is a blocking instruction inbetween mdb.list(); io.print("start"); low := 0; high := 3; i := 0; c := 0;barrier b:bat[:oid,:int] := pbm.newIterator("Sales2005"); s := algebra.select(b,low,high); _32 := aggr.count(s); i := calc.+(i,_32); pbm.deposit("pbat_s",s); redo b:bat[:oid,:int] := pbm.getNextElement("Sales2005");exit b:bat[:oid,:int] ; io.print("Result is:"); io.print(i); io.print("go-on");barrier s := pbm.newIterator("pbat_s"); t := algebra.select(s,low,high);barrier a:bat[:oid,:int] := pbm.newIterator("Areas"); ar := bat.reverse(a); j := algebra.join(t,ar); _38 := aggr.count(j); c := calc.+(c,_38); redo a:bat[:oid,:int] := pbm.getNextElement("Areas");exit a:bat[:oid,:int] ; redo s := pbm.getNextElement("pbat_s");exit s; io.print(c); io.print("finished"); pbm.discard("pbat_s");end main;[ "start" ]!MALException:pbm.newIterator:Could not find PBAT# 13:30:18 > # 13:30:18 > Done.# 13:30:18 >
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -