📄 no.148.stable.out
字号:
stdout of test 'no.148` in directory 'tests/BugReports` itself:# 15:31:04 > # 15:31:04 > Mtimeout -timeout 60 Mserver "--config=/ufs/boncz/MonetDB/linux/etc/monet.conf" --debug=10 --set "monet_mod_path=/ufs/boncz/MonetDB/linux/lib/MonetDB" --set "gdk_dbfarm=/ufs/boncz/MonetDB/linux/var/MonetDB/dbfarm" --set "sql_logdir=/ufs/boncz/MonetDB/linux/var/MonetDB/log" --set mapi_port=55437 --set sql_port=50559 --set monet_prompt= --trace --dbname=mTests_tests_BugReports < no.148.milS# 15:31:04 > # Monet Database Server V4.3.13# Copyright (c) 1993-2004, CWI. All rights reserved.# compiled for i686-pc-linux-gnu/32bit; dynamically linked.# >Number: 148# >Category: Module_xtables# >Synopsis: table() call fails in xtable.mil# >Confidential: no# >Severity: serious# >Priority: medium# >Responsible: mk (Martin Kersten)# >State: open# >Class: sw-bug# >Submitter-Id: unknown# >Arrival-Date: Wed Mar 11 14:28:45 1998# >Originator: manegold@cwi.nl# >Organization:# CWI# >Release: 980101# >Environment:# any# >Description:# 'table(histo, $(3..))` in 'proc xtable_print` in# 'xtables.mil` (also available as test 'plain/xtables/`)# ends up in an endless loop in the macro 'matchloop`# (src/gdk/gdk_relop.mx) as soon as the first tuple is # printed. 'matchloop` is called as # 'matchloop(hloc,OID,_oid)` in line 1054 of # 'src/gdk/gdk_relop.mx`.# # maybe, this is no bug in module xtables, but somewhere # else, but as it seems to occur only here, I submit # this as an xtables bug report.# # as soon as I got some time, I will try to do some more # debugging.# # stefan# # ================# Output# ----------------# [...]# # #You are system administrator (adm)!# # #line 437 "modules/plain/xtables.mx"# setoid(oid(20000000));# module(xtables);# # # First some procs for convenience:# # - xtable_print(group[oid,oid], str, attr1[oid,a1], attr2[oid,a2], ...)# # print group count table # # - xtable_realloc(bat, capacity): bat# # allocate more memory and return a copy of a bat# # - xtable_test(str title, bat x, bat y, bat z)# # major test script on xtable functionality# # proc xtable_print := { # var histo := $1.histogram;# histo.rename("count");# printf("\n# %s (ct: %d elts, %d groups, %d bytes)\n",# $2, $1.count, histo.count, $1.batsize);# table(histo, $(3..));# }# # proc xtable_realloc(b,cap) := { # bn := new(b.htype, b.ttype, bat);# if (b.htype = void) bn.seqbase(b.reverse.fetch(0));# if (b.ttype = void) bn.seqbase(b.fetch(0));# bn.insert(b);# return bn;# }# # proc xtable_test(title, x, y, z) := {# printf("# xtable_test: %s grouping (%d tuples, %d bytes)\n\n",# title, x.count, x.batsize + y.batsize + z.batsize);# x.rename("x"); y.rename("y"); z.rename("z");# # print(x.slice(0,7),y,z);# printf("synced(x,y) := %s\n", synced(x,y).str);# printf("synced(x,z) := %s\n", synced(x,z).str);# # var x1 := CTgroup(x);# x1.xtable_print("CT(x)", x);# # var x1y := CTgroup(x1,y);# x1y.xtable_print("CT(x,y)", x, y);# # var v := y.uselect(dbl(2.0),dbl(3.0));# var xvy := CTsubgroup(x1,y,v);# xvy.xtable_print("CT(x,y|v)", x, y);# # var x1yz := CTgroup(x1y,z);# x1yz.xtable_print("CT(x,y,z)", x, y, z);# }# # x := new(oid,chr);# x.insert(1@0,'a');# x.insert(2@0,'a');# x.insert(3@0,'b');# x.insert(4@0,'b');# x.insert(5@0,'b');# x.insert(6@0,'b');# x.insert(7@0,'c');# x.insert(8@0,'c');# # y:= new(oid,dbl);# y.insert(1@0,dbl(1.0));# y.insert(2@0,dbl(3.0));# y.insert(3@0,dbl(2.0));# y.insert(4@0,dbl(2.0));# y.insert(5@0,dbl(2.0));# y.insert(6@0,dbl(3.0));# y.insert(7@0,dbl(1.0));# y.insert(8@0,dbl(1.0));# # z:= new(oid,str);# z.insert(1@0,"c");# z.insert(2@0,"a");# z.insert(3@0,"b");# z.insert(4@0,"c");# z.insert(5@0,"a");# z.insert(6@0,"a");# z.insert(7@0,"c");# z.insert(8@0,"a");# # xtable_test("small hash", x, y, z);# # xtable_test: small hash grouping (8 tuples, 8660 bytes)# # #-----------------------------------------## # oid | tmp_30| y | z ## #-----------------------------------------## [ 1@0, 'a', 1.000000, "c" ]# [ 2@0, 'a', 3.000000, "a" ]# [ 3@0, 'b', 2.000000, "b" ]# [ 4@0, 'b', 2.000000, "c" ]# [ 5@0, 'b', 2.000000, "a" ]# [ 6@0, 'b', 3.000000, "a" ]# [ 7@0, 'c', 1.000000, "c" ]# [ 8@0, 'c', 1.000000, "a" ]# synced(x,y) := false# synced(x,z) := false# # # CT(x) (ct: 8 elts, 3 groups, 1096 bytes)# #-----------------## # count | x ## #-----------------## [ 2, 'a' ]# # ================#line 450 "modules/plain/xtables.mx"setoid(oid(20000000));module(xtables);# First some procs for convenience: # - xtable_print(group[oid,oid], str, attr1[oid,a1], attr2[oid,a2], ...)# print group count table # - xtable_realloc(bat, capacity): bat# allocate more memory and return a copy of a bat# - xtable_test(str title, bat x, bat y, bat z)# major test script on xtable functionality proc xtable_print(..any..) : void { var histo := $1.histogram(); printf("\n# %s (ct: %d elts, %d groups, %d bytes)\n", $2, $1.count(), histo.count(), $1.batsize()); table(histo.col_name("count"), $(3..));} proc xtable_realloc(bat b,int cap) : bat { var inf := b.info(); var ht := monet_atomtbl.find(inf.find("head")); var tt := monet_atomtbl.find(inf.find("tail")); var bn := new(ht, tt, cap); bn.insert(b); if (ht = void) bn.seqbase(b.reverse().fetch(0)); if (tt = void) bn.seqbase(b.fetch(0)); return bn;} proc xtable_test(str title, bat x, bat y, bat z) : void { printf("# xtable_test: %s grouping (%d tuples, %d bytes)\n\n", title, x.count(), x.batsize() + y.batsize() + z.batsize()); x.col_name("x"); y.col_name("y"); z.col_name("z"); print(x.slice(0,7),y,z); printf("synced(x,y) := %s\n", synced(x,y).str()); printf("synced(x,z) := %s\n", synced(x,z).str()); var x1 := CTgroup(x); x1.xtable_print("CT(x)", x); var x1y := CTgroup(x1,y); x1y.xtable_print("CT(x,y)", x, y); var v := y.uselect(dbl(2.0),dbl(3.0)); var xvy := CTsubgroup(x1,y,v); xvy.xtable_print("CT(x,y|v)", x, y); var x1yz := CTgroup(x1y,z); x1yz.xtable_print("CT(x,y,z)", x, y, z);} var x := new(oid,chr);x.insert(1@0,'a');x.insert(2@0,'a');x.insert(3@0,'b');x.insert(4@0,'b');x.insert(5@0,'b');x.insert(6@0,'b');x.insert(7@0,'c');x.insert(8@0,'c'); var y:= new(oid,dbl);y.insert(1@0,dbl(1.0));y.insert(2@0,dbl(3.0));y.insert(3@0,dbl(2.0));y.insert(4@0,dbl(2.0));y.insert(5@0,dbl(2.0));y.insert(6@0,dbl(3.0));y.insert(7@0,dbl(1.0));y.insert(8@0,dbl(1.0)); var z:= new(oid,str);z.insert(1@0,"c");z.insert(2@0,"a");z.insert(3@0,"b");z.insert(4@0,"c");z.insert(5@0,"a");z.insert(6@0,"a");z.insert(7@0,"c");z.insert(8@0,"a"); xtable_test("small hash", x, y, z);# xtable_test: small hash grouping (8 tuples, 32768 bytes)#---------------------------------## BAT: tmp_36| y | z ## (oid) (chr) | (dbl) | (str) ##---------------------------------#[ 1@0, a, 1, "c" ][ 2@0, a, 3, "a" ][ 3@0, b, 2, "b" ][ 4@0, b, 2, "c" ][ 5@0, b, 2, "a" ][ 6@0, b, 3, "a" ][ 7@0, c, 1, "c" ][ 8@0, c, 1, "a" ]synced(x,y) := truesynced(x,z) := true# CT(x) (ct: 8 elts, 3 groups, 12288 bytes)#-----------------## count | x ##-----------------#[ 2, a ][ 4, b ][ 2, c ]# CT(x,y) (ct: 8 elts, 5 groups, 12288 bytes)#-------------------------## count | x | y ##-------------------------#[ 1, a, 1 ][ 1, a, 3 ][ 3, b, 2 ][ 1, b, 3 ][ 2, c, 1 ]# CT(x,y|v) (ct: 5 elts, 3 groups, 12288 bytes)#-------------------------## count | x | y ##-------------------------#[ 1, a, 3 ][ 3, b, 2 ][ 1, b, 3 ]# CT(x,y,z) (ct: 8 elts, 8 groups, 12288 bytes)#---------------------------------## count | x | y | z ##---------------------------------#[ 1, a, 1, "c" ][ 1, a, 3, "a" ][ 1, b, 2, "b" ][ 1, b, 2, "c" ][ 1, b, 2, "a" ][ 1, b, 3, "a" ][ 1, c, 1, "c" ][ 1, c, 1, "a" ] # create vectorized versionsx := x.reverse().project().reverse().copy();y := y.reverse().project().reverse().copy();z := z.reverse().project().reverse().copy(); # activate voids
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -