📄 tst220.stable.out
字号:
stdout of test 'tst220` in directory 'src/mal` itself:# 08:01:01 > # 08:01:01 > Mtimeout -timeout 60 Mserver "--config=/ufs/mk/monet5/Linux/etc/MonetDB5.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=42158 --set sql_port=55708 --set monet_prompt= --trace "--config=/ufs/mk/monet5/src/mal/Tests/All.conf" --dbname=mTests_src_mal tst220.mal </dev/null# 08:01:01 > # Monet Database Server V4.99.19# Copyright (c) 1993-2004, CWI. All rights reserved.# Compiled for i686-redhat-linux-gnu/32bit; dynamically linked.# config:/ufs/mk/monet5/Linux/etc/MonetDB5.conf# dbfarm:/ufs/mk/monet5/Linux/var/MonetDB5/dbfarm# dbname:mTests_src_mal# Visit http://monetdb.cwi.nl/ for further information.## a test checking BAT reference counting under various situations#function steal(bb:bat[:any$1,:any$2]) :bat[:any$1,:any$2];# i:= getLRefCount(bb);# printf("enter function refcount =%d[2]\n",i);## loc:= bb;# i:= getLRefCount(bb);# printf("local in function refcount =%d[3]\n",i);## return bb;#end steal; function user.steal(bb:bat[:any_1,:any_2]):bat[:any_1,:any_2]; # 0 dynamic (steal:bat[:any_1,:any_2])<-(bb:bat[:any_1,:any_2]) i := bbp.getLRefCount(bb); # 1 CMDgetBATlrefcnt (i:int)<-(bb:bat[:any_1,:any_2]) io.printf("enter function refcount =%d[2,3]\n",i); # 2 IOprint_formatted_int (_3:void)<-(_4:str)(i:int) loc := bb; # 3 (loc:bat[:any_1,:any_2])<-(bb:bat[:any_1,:any_2]) i := bbp.getLRefCount(bb); # 4 CMDgetBATlrefcnt (i:int)<-(bb:bat[:any_1,:any_2]) io.printf("local in function refcount =%d[3,4]\n",i); # 5 IOprint_formatted_int (_6:void)<-(_7:str)(i:int) return bb; # 6 (bb:bat[:any_1,:any_2])end steal; # 7 ##function createone():bat[:int,:str];# b:= bbp.new(:int,:str);# return b;#end createone;function user.createone():bat[:int,:str]; # 0 (createone:bat[:int,:str]) b := bat.new(:int,:str); # 1 CMDBATnew (b:bat[:int,:str])<-(_2:int)(_3:str) return b; # 2 (b:bat[:int,:str])end createone; # 3 ## b:= bbp.new(:int,:str);# i:= bbp.getLRefCount(b);# io.printf("refcount =%d[1]\n",i); ## bat.insert(b,1,"bat B");# io.print(b);# i:= bbp.getLRefCount(b);# io.printf("refcount =%d[1]\n",i);## #handle an alias# b2:= b; # i:= getLRefCount(b);# printf("after assignment refcount =%d[2]\n",i);## #re-use a bat variable# b3:= b; # i:= getLRefCount(b);# printf("after 2nd assignment refcount =%d[3]\n",i);## #re-use a bat variable# b3:= new(:int,:str); # i:= getLRefCount(b);# printf("after 3rd assignment refcount =%d[2]\n",i);# i:= getLRefCount(b3);# printf("assignment refcount =%d[1]\n",i);## #re-use a bat variable# b4:= select(b,"bat B","bat B");# print(b4);# i:= getLRefCount(b);# printf("after 4rd assignment refcount =%d[2]\n",i);## # remove by assignment# b2:= b3;# i:= getLRefCount(b);# printf("after 5rd assignment refcount =%d[1]\n",i);## printf("call function\n");# d:= steal(b);# e:= steal(b);# i:= getLRefCount(b);# printf("return from function refcount =%d[2]\n",i);## z:= bbp.getRefCount();# zl:= bbp.getLRefCount();# zn:= bbp.getNames();# print(zn,z,zl);#function user.main():void; # 0 (main:void)# a test checking BAT reference counting under various situations # 1 (_1:str) b := bat.new(:int,:str); # 2 CMDBATnew (b:bat[:int,:str])<-(_3:int)(_4:str) i := bbp.getLRefCount(b); # 3 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("refcount =%d[1]\n",i); # 4 IOprint_formatted_int (_6:void)<-(_7:str)(i:int) bat.insert(b,1,"bat B"); # 5 BKCinsert_bun (_8:void)<-(b:bat[:int,:str])(_9:int)(_10:str) io.print(b); # 6 IOprint_val (_11:void)<-(b:bat[:int,:str]) i := bbp.getLRefCount(b); # 7 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("refcount =%d[1]\n",i); # 8 IOprint_formatted_int (_12:void)<-(_7:str)(i:int)#handle an alias, which isn;t used! # 9 (_13:str) b2 := b; # 10 (b2:bat[:int,:str])<-(b:bat[:int,:str]) i := bbp.getLRefCount(b); # 11 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("after assignment refcount =%d[2]\n",i); # 12 IOprint_formatted_int (_15:void)<-(_16:str)(i:int)#re-use a bat variable # 13 (_17:str) b3 := b; # 14 (b3:bat[:int,:str])<-(b:bat[:int,:str]) cnt := aggr.count(b3); # 15 ALGcount_bat (cnt:int)<-(b3:bat[:int,:str])# forced use # 16 (_24:str) i := bbp.getLRefCount(b); # 17 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("after 2nd assignment refcount =%d[3]\n",i); # 18 IOprint_formatted_int (_21:void)<-(_22:str)(i:int)#re-use a bat variable # 19 (_17:str) b3 := user.createone(); # 20 (b3:bat[:int,:str]) i := bbp.getLRefCount(b); # 21 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("after 3rd assignment refcount =%d[2]\n",i); # 22 IOprint_formatted_int (_23:void)<-(_24:str)(i:int) i := bbp.getLRefCount(b3); # 23 CMDgetBATlrefcnt (i:int)<-(b3:bat[:int,:str]) io.printf("assignment refcount =%d[1]\n",i); # 24 IOprint_formatted_int (_25:void)<-(_26:str)(i:int)#re-use a bat variable # 25 (_17:str) b4 := algebra.select(b,"bat C","bat C"); # 26 ALGselect (b4:bat[:int,:str])<-(b:bat[:int,:str])(_28:str)(_28:str) io.print(b4); # 27 IOprint_val (_29:void)<-(b4:bat[:int,:str]) i := bbp.getLRefCount(b); # 28 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("after 4rd assignment refcount =%d[2]\n",i); # 29 IOprint_formatted_int (_30:void)<-(_31:str)(i:int)# remove by assignment # 30 (_32:str) b2 := b3; # 31 (b2:bat[:int,:str])<-(b3:bat[:int,:str]) i := bbp.getLRefCount(b); # 32 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("after 5rd assignment refcount =%d[1]\n",i); # 33 IOprint_formatted_int (_33:void)<-(_34:str)(i:int) io.printf("call function\n"); # 34 IOprint_str (_35:void)<-(_36:str) d := user.steal(b); # 35 (d:bat[:int,:str])<-(b:bat[:int,:str]) i := bbp.getLRefCount(b); # 36 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("return from function refcount =%d[2]\n",i); # 37 IOprint_formatted_int (_38:void)<-(_39:str)(i:int) io.printf("check self replacement, overrule refcount!\n"); # 38 IOprint_str (_40:void)<-(_41:str) b := user.steal(b); # 39 (b:bat[:int,:str])<-(b:bat[:int,:str]) i := bbp.getLRefCount(b); # 40 CMDgetBATlrefcnt (i:int)<-(b:bat[:int,:str]) io.printf("return from function refcount =%d[2]\n",i); # 41 IOprint_formatted_int (_42:void)<-(_39:str)(i:int) z := bbp.getRefCount(); # 42 CMDbbpRefCount (z:bat[:int,:int]) zl := bbp.getLRefCount(); # 43 CMDbbpLRefCount (zl:bat[:int,:int]) zn := bbp.getNames(); # 44 CMDbbpNames (zn:bat[:int,:str]) io.print(zn,z,zl); # 45 IOtable (_46:void)<-(zn:bat[:int,:str])(z:bat[:int,:int])(zl:bat[:int,:int])end main; # 46 refcount =1[1]#-------------------------## h t # name# int str # type#-------------------------#[ 1, "bat B" ]refcount =1[1]after assignment refcount =2[2]after 2nd assignment refcount =3[3]after 3rd assignment refcount =2[2]assignment refcount =1[1]#-----------------## h t # name# int str # type#-----------------#after 4rd assignment refcount =2[2]after 5rd assignment refcount =1[1]call functionenter function refcount =2[2,3]local in function refcount =3[3,4]return from function refcount =2[2]check self replacement, overrule refcount!enter function refcount =3[2,3]local in function refcount =4[3,4]return from function refcount =2[2]#---------------------------------------------------------## bbp name refcnt lrefcnt # name# int str int int # type#---------------------------------------------------------#[ 1, "monet_environment", 1, 0 ][ 2, "monet_unicode_case", 1, 0 ][ 3, "timezones", 1, 0 ][ 4, "M5system_auth_user", 1, 1 ][ 5, "M5system_auth_passwd", 1, 1 ][ 6, "M5system_auth_scen", 1, 1 ][ 7, "tmp_7", 0, 2 ][ 8, "tmp_10", 0, 2 ][ 9, "tmp_11", 0, 1 ]# 08:01:01 > # 08:01:01 > Done.# 08:01:01 >
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -