Update of /cvsroot/monetdb/MonetDB5/src/optimizer/Tests
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv14885
Added Files:
inline02.stable.err inline02.stable.out inline03.stable.err
inline03.stable.out inline04.stable.err inline04.stable.out
inline05.stable.err inline05.stable.out inline06.stable.err
inline06.stable.out inline07.mal inline07.stable.err
inline07.stable.out
Log Message:
The first series of multiplexing inline MAL blocks.
The optimizers are limited towards side-effect free mal blocks.
--- NEW FILE: inline07.stable.out ---
stdout of test 'inline07` in directory 'src/optimizer` itself:
# 18:00:44 >
# 18:00:44 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline07.mal
# 18:00:44 >
# MonetDB server v5.3.0, based on kernel v1.21.0
# Serving database 'mTests_src_optimizer'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
# Copyright (c) 1993-2007 CWI, all rights reserved
# Visit http://monetdb.cwi.nl/ for further information
# Listening for connection requests on mapi:monetdb://gio.ins.cwi.nl:34223/
## remapping inline functions
#function foo{inline}(a:int,b:bat[:oid,:int]):dbl;
# s:= aggr.sum(b);
# c:= a+s;
# return foo:=c;
#end foo;
function user.foo{inline}(a:int,b:bat[:oid,:int]):dbl; # 0
(foo:dbl)<-(a:int)(b:bat[:oid,:int])
s := aggr.sum(b); # 1 ALGsum_int_dbl (s:dbl)<-(b:bat[:oid,:int])
c := calc.+(a,s); # 2 CALCbinaryADDintdbl (c:dbl)<-(a:int)(s:dbl)
return foo{inline} := c; # 3 (foo:dbl)<-(c:dbl)
end foo; # 4
#
#function qry();
# b:= bat.new(:oid,:int);
# bat.insert(b,[EMAIL PROTECTED],1);
# z:bat[:oid,:dbl]:= mal.multiplex("user","foo",b,b);
#end qry;
function user.qry():void; # 0 (qry:void)
b := bat.new(:oid,:int); # 1 CMDBATnew
(b:bat[:oid,:int])<-(_2:oid)(_3:int)
bat.insert(b,[EMAIL PROTECTED],1); # 2 BKCinsert_bun
(_4:void)<-(b:bat[:oid,:int])(_5:oid)(_6:int)
z:bat[:oid,:dbl] := mal.multiplex("user","foo",b,b); # 3
OPTremapMultiplex
(z:bat[:oid,:dbl])<-(_8:str)(_9:str)(b:bat[:oid,:int])(b:bat[:oid,:int])
end qry; # 4
#
# optimizer.inline("user","qry");
# optimizer.remap("user","qry");
# mdb.list("user","qry");
#
function user.main():void; # 0 (main:void)
# remapping inline functions # 1 (_1:str)
mdb.list("user","qry"); # 2 MDBlist3 (_6:void)<-(_3:str)(_4:str)
end main; # 3
function user.qry():void;
b := bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
z:bat[:oid,:dbl]{inline} := mal.multiplex("user","foo",b,b);
end qry;
# 18:00:44 >
# 18:00:44 > Done.
# 18:00:44 >
--- NEW FILE: inline02.stable.out ---
stdout of test 'inline02` in directory 'src/optimizer` itself:
# 18:00:43 >
# 18:00:43 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline02.mal
# 18:00:43 >
# MonetDB server v5.3.0, based on kernel v1.21.0
# Serving database 'mTests_src_optimizer'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
# Copyright (c) 1993-2007 CWI, all rights reserved
# Visit http://monetdb.cwi.nl/ for further information
# Listening for connection requests on mapi:monetdb://gio.ins.cwi.nl:34223/
## remapping inline functions
#function foo{inline}(a:int,b:int):int;
# c:= a+b;
# return foo:=c;
#end foo;
function user.foo{inline}(a:int,b:int):int; # 0 (foo:int)<-(a:int)(b:int)
c := calc.+(a,b); # 1 CALCbinaryADDintint (c:int)<-(a:int)(b:int)
return foo{inline} := c; # 2 (foo:int)<-(c:int)
end foo; # 3
#
#function qry();
# b:= bat.new(:oid,:int);
# bat.insert(b,[EMAIL PROTECTED],1);
# zz:= user.foo(1,2); # base line test for inlining
#
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,b);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,2);
#end qry;
function user.qry():void; # 0 (qry:void)
b := bat.new(:oid,:int); # 1 CMDBATnew
(b:bat[:oid,:int])<-(_2:oid)(_3:int)
bat.insert(b,[EMAIL PROTECTED],1); # 2 BKCinsert_bun
(_4:void)<-(b:bat[:oid,:int])(_5:oid)(_6:int)
zz := user.foo(1,2); # 3 (zz:int)<-(_6:int)(_8:int)
# base line test for inlining # 4 (_9:str)
z:bat[:oid,:int] := mal.multiplex("user","foo",b,b); # 5
OPTremapMultiplex
(z:bat[:oid,:int])<-(_11:str)(_12:str)(b:bat[:oid,:int])(b:bat[:oid,:int])
z:bat[:oid,:int] := mal.multiplex("user","foo",b,2); # 6
OPTremapMultiplex
(z:bat[:oid,:int])<-(_11:str)(_12:str)(b:bat[:oid,:int])(_8:int)
end qry; # 7
#
# optimizer.inline("user","qry");
# optimizer.remap("user","qry");
# mdb.list("user","qry");
#
function user.main():void; # 0 (main:void)
# remapping inline functions # 1 (_1:str)
mdb.list("user","qry"); # 2 MDBlist3 (_6:void)<-(_3:str)(_4:str)
end main; # 3
function user.qry():void;
b := bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
_16 := calc.+(1,2);
zz := _16;
# base line test for inlining
_20 := batcalc.+(b,b);
z:bat[:oid,:int]{inline} := _20;
_24 := batcalc.+(b,2);
z:bat[:oid,:int]{inline} := _24;
end qry;
# 18:00:43 >
# 18:00:43 > Done.
# 18:00:43 >
--- NEW FILE: inline05.stable.err ---
stderr of test 'inline05` in directory 'src/optimizer` itself:
# 18:00:44 >
# 18:00:44 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline05.mal
# 18:00:44 >
#warning: please don't forget to set your vault key!
#(see /ufs/mk/monet5/Linux/etc/monetdb5.conf)
# 18:00:44 >
# 18:00:44 > Done.
# 18:00:44 >
--- NEW FILE: inline06.stable.err ---
stderr of test 'inline06` in directory 'src/optimizer` itself:
# 18:00:44 >
# 18:00:44 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline06.mal
# 18:00:44 >
#warning: please don't forget to set your vault key!
#(see /ufs/mk/monet5/Linux/etc/monetdb5.conf)
# 18:00:44 >
# 18:00:44 > Done.
# 18:00:44 >
--- NEW FILE: inline07.mal ---
# remapping inline functions
function foo{inline}(a:int,b:bat[:oid,:int]):dbl;
s:= aggr.sum(b);
c:= a+s;
return foo:=c;
end foo;
function qry();
b:= bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
z:bat[:oid,:dbl]:= mal.multiplex("user","foo",b,b);
end qry;
optimizer.inline("user","qry");
optimizer.remap("user","qry");
mdb.list("user","qry");
--- NEW FILE: inline04.stable.err ---
stderr of test 'inline04` in directory 'src/optimizer` itself:
# 18:00:43 >
# 18:00:43 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline04.mal
# 18:00:43 >
#warning: please don't forget to set your vault key!
#(see /ufs/mk/monet5/Linux/etc/monetdb5.conf)
# 18:00:43 >
# 18:00:43 > Done.
# 18:00:43 >
--- NEW FILE: inline02.stable.err ---
stderr of test 'inline02` in directory 'src/optimizer` itself:
# 18:00:43 >
# 18:00:43 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline02.mal
# 18:00:43 >
#warning: please don't forget to set your vault key!
#(see /ufs/mk/monet5/Linux/etc/monetdb5.conf)
# 18:00:43 >
# 18:00:43 > Done.
# 18:00:43 >
--- NEW FILE: inline07.stable.err ---
stderr of test 'inline07` in directory 'src/optimizer` itself:
# 18:00:44 >
# 18:00:44 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline07.mal
# 18:00:44 >
#warning: please don't forget to set your vault key!
#(see /ufs/mk/monet5/Linux/etc/monetdb5.conf)
# 18:00:44 >
# 18:00:44 > Done.
# 18:00:44 >
--- NEW FILE: inline04.stable.out ---
stdout of test 'inline04` in directory 'src/optimizer` itself:
# 18:00:43 >
# 18:00:43 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline04.mal
# 18:00:43 >
# MonetDB server v5.3.0, based on kernel v1.21.0
# Serving database 'mTests_src_optimizer'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
# Copyright (c) 1993-2007 CWI, all rights reserved
# Visit http://monetdb.cwi.nl/ for further information
# Listening for connection requests on mapi:monetdb://gio.ins.cwi.nl:34223/
## remapping inline functions
## the crucial part is to recognize valid inlines
## here the inlined function contains more then
## just multiplex callable functions.
#function foo{inline}(a:int,b:int):int;
# c:= a+b;
# base:=1;
#barrier loop:= true;
# c:= c *c;
# base:= base+1;
# redo loop:= base <3;
#exit loop;
# return c;
#end foo;
function user.foo{inline}(a:int,b:int):int; # 0 (foo:int)<-(a:int)(b:int)
c := calc.+(a,b); # 1 CALCbinaryADDintint (c:int)<-(a:int)(b:int)
base := 1; # 2 (base:int)<-(_5:int)
barrier loop := true; # 3 (loop:bit)<-(_7:bit) jump 7
c := calc.*(c,c); # 4 CALCbinaryMULintint (c:int)<-(c:int)(c:int)
base := calc.+(base,1); # 5 CALCbinaryADDintint
(base:int)<-(base:int)(_5:int)
redo loop := calc.<(base,3); # 6 CALCcompLTintint
(loop:bit)<-(base:int)(_8:int) jump 4
exit loop; # 7 (loop:bit)
return foo{inline} := c; # 8 (foo:int)<-(c:int)
end foo; # 9
#function qry();
# b:= bat.new(:oid,:int);
# bat.insert(b,[EMAIL PROTECTED],1);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,b);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,2);
#end qry;
function user.qry():void; # 0 (qry:void)
b := bat.new(:oid,:int); # 1 CMDBATnew
(b:bat[:oid,:int])<-(_2:oid)(_3:int)
bat.insert(b,[EMAIL PROTECTED],1); # 2 BKCinsert_bun
(_4:void)<-(b:bat[:oid,:int])(_5:oid)(_6:int)
z:bat[:oid,:int] := mal.multiplex("user","foo",b,b); # 3
OPTremapMultiplex
(z:bat[:oid,:int])<-(_8:str)(_9:str)(b:bat[:oid,:int])(b:bat[:oid,:int])
z:bat[:oid,:int] := mal.multiplex("user","foo",b,2); # 4
OPTremapMultiplex
(z:bat[:oid,:int])<-(_8:str)(_9:str)(b:bat[:oid,:int])(_10:int)
end qry; # 5
#
# optimizer.inline("user","qry");
# optimizer.remap("user","qry");
# mdb.list("user","qry");
#
function user.main():void; # 0 (main:void)
# remapping inline functions # 1 (_1:str)
# the crucial part is to recognize valid inlines # 2 (_2:str)
# here the inlined function contains more then # 3 (_3:str)
# just multiplex callable functions. # 4 (_4:str)
mdb.list("user","qry"); # 5 MDBlist3 (_9:void)<-(_6:str)(_7:str)
end main; # 6
function user.qry():void;
b := bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
_14 := batcalc.+(b,b);
_15 := 1;
barrier _16 := true;
_14 := batcalc.*(_14,_14);
_15 := calc.+(_15,1);
redo _16 := calc.<(_15,3);
exit _16;
z:bat[:oid,:int]{inline} := _14;
_22 := batcalc.+(b,2);
_23 := 1;
barrier _24 := true;
_22 := batcalc.*(_22,_22);
_23 := calc.+(_23,1);
redo _24 := calc.<(_23,3);
exit _24;
z:bat[:oid,:int]{inline} := _22;
end qry;
# 18:00:43 >
# 18:00:43 > Done.
# 18:00:43 >
--- NEW FILE: inline05.stable.out ---
stdout of test 'inline05` in directory 'src/optimizer` itself:
# 18:00:44 >
# 18:00:44 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline05.mal
# 18:00:44 >
# MonetDB server v5.3.0, based on kernel v1.21.0
# Serving database 'mTests_src_optimizer'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
# Copyright (c) 1993-2007 CWI, all rights reserved
# Visit http://monetdb.cwi.nl/ for further information
# Listening for connection requests on mapi:monetdb://gio.ins.cwi.nl:34223/
## remapping inline functions
## the crucial part is to recognize valid inlines
#function foo{inline}(a:int,b:int):int;
# c:= a+b;
# io.print(c); # this has a memory-less side effect
# return foo:=1;
#end foo;
function user.foo{inline}(a:int,b:int):int; # 0 (foo:int)<-(a:int)(b:int)
c := calc.+(a,b); # 1 CALCbinaryADDintint (c:int)<-(a:int)(b:int)
io.print(c); # 2 IOprint_val (_4:void)<-(c:int)
# this has a memory-less side effect # 3 (_5:str)
return foo{inline} := 1; # 4 (foo:int)<-(_6:int)
end foo; # 5
#
#function qry();
# b:= bat.new(:oid,:int);
# bat.insert(b,[EMAIL PROTECTED],1);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,b);
# z:bat[:oid,:dbl]:= mal.multiplex("user","foo",b,2);
#end qry;
function user.qry():void; # 0 (qry:void)
b := bat.new(:oid,:int); # 1 CMDBATnew
(b:bat[:oid,:int])<-(_2:oid)(_3:int)
bat.insert(b,[EMAIL PROTECTED],1); # 2 BKCinsert_bun
(_4:void)<-(b:bat[:oid,:int])(_5:oid)(_6:int)
z:bat[:oid,:dbl] := mal.multiplex("user","foo",b,b); # 3
OPTremapMultiplex
(z:bat[:oid,:dbl])<-(_8:str)(_9:str)(b:bat[:oid,:int])(b:bat[:oid,:int])
z:bat[:oid,:dbl] := mal.multiplex("user","foo",b,2); # 4
OPTremapMultiplex
(z:bat[:oid,:dbl])<-(_8:str)(_9:str)(b:bat[:oid,:int])(_10:int)
end qry; # 5
#
# optimizer.inline("user","qry");
# optimizer.remap("user","qry");
# mdb.list("user","qry");
#
function user.main():void; # 0 (main:void)
# remapping inline functions # 1 (_1:str)
# the crucial part is to recognize valid inlines # 2 (_2:str)
mdb.list("user","qry"); # 3 MDBlist3 (_7:void)<-(_4:str)(_5:str)
end main; # 4
function user.qry():void;
b := bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
z:bat[:oid,:dbl]{inline} := mal.multiplex("user","foo",b,b);
z:bat[:oid,:dbl]{inline} := mal.multiplex("user","foo",b,2);
end qry;
# 18:00:44 >
# 18:00:44 > Done.
# 18:00:44 >
--- NEW FILE: inline06.stable.out ---
stdout of test 'inline06` in directory 'src/optimizer` itself:
# 18:00:44 >
# 18:00:44 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline06.mal
# 18:00:44 >
# MonetDB server v5.3.0, based on kernel v1.21.0
# Serving database 'mTests_src_optimizer'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
# Copyright (c) 1993-2007 CWI, all rights reserved
# Visit http://monetdb.cwi.nl/ for further information
# Listening for connection requests on mapi:monetdb://gio.ins.cwi.nl:34223/
## remapping inline functions
## the crucial part is to recognize valid inlines
#function foo{inline}(a:int,b:int):int;
# c:= a+b;
# base:=mmath.rand(); # this has a memory-side effect
# c:= c*base;
# return c;
#end foo;
function user.foo{inline}(a:int,b:int):int; # 0 (foo:int)<-(a:int)(b:int)
c := calc.+(a,b); # 1 CALCbinaryADDintint (c:int)<-(a:int)(b:int)
base := mmath.rand(); # 2 MATHrandint (base:int)
# this has a memory-side effect # 3 (_5:str)
c := calc.*(c,base); # 4 CALCbinaryMULintint
(c:int)<-(c:int)(base:int)
return foo{inline} := c; # 5 (foo:int)<-(c:int)
end foo; # 6
#
#function qry();
# b:= bat.new(:oid,:int);
# bat.insert(b,[EMAIL PROTECTED],1);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,b);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,2);
#end qry;
function user.qry():void; # 0 (qry:void)
b := bat.new(:oid,:int); # 1 CMDBATnew
(b:bat[:oid,:int])<-(_2:oid)(_3:int)
bat.insert(b,[EMAIL PROTECTED],1); # 2 BKCinsert_bun
(_4:void)<-(b:bat[:oid,:int])(_5:oid)(_6:int)
z:bat[:oid,:int] := mal.multiplex("user","foo",b,b); # 3
OPTremapMultiplex
(z:bat[:oid,:int])<-(_8:str)(_9:str)(b:bat[:oid,:int])(b:bat[:oid,:int])
z:bat[:oid,:int] := mal.multiplex("user","foo",b,2); # 4
OPTremapMultiplex
(z:bat[:oid,:int])<-(_8:str)(_9:str)(b:bat[:oid,:int])(_10:int)
end qry; # 5
#
# optimizer.inline("user","qry");
# optimizer.remap("user","qry");
# mdb.list("user","qry");
#
function user.main():void; # 0 (main:void)
# remapping inline functions # 1 (_1:str)
# the crucial part is to recognize valid inlines # 2 (_2:str)
mdb.list("user","qry"); # 3 MDBlist3 (_7:void)<-(_4:str)(_5:str)
end main; # 4
function user.qry():void;
b := bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
_14 := batcalc.+(b,b);
_15 := mmath.rand();
# this has a memory-side effect
_14 := batcalc.*(_14,_15);
z:bat[:oid,:int]{inline} := _14;
_20 := batcalc.+(b,2);
_21 := mmath.rand();
# this has a memory-side effect
_20 := batcalc.*(_20,_21);
z:bat[:oid,:int]{inline} := _20;
end qry;
# 18:00:44 >
# 18:00:44 > Done.
# 18:00:44 >
--- NEW FILE: inline03.stable.out ---
stdout of test 'inline03` in directory 'src/optimizer` itself:
# 18:00:43 >
# 18:00:43 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline03.mal
# 18:00:43 >
# MonetDB server v5.3.0, based on kernel v1.21.0
# Serving database 'mTests_src_optimizer'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically linked
# Copyright (c) 1993-2007 CWI, all rights reserved
# Visit http://monetdb.cwi.nl/ for further information
# Listening for connection requests on mapi:monetdb://gio.ins.cwi.nl:34223/
## remapping inline functions
## the crucial part is to recognize valid inlines
#function foo{inline}(a:int,b:int):int;
# base:=1;
# c:= a+b;
# c:= c *base;
# return c;
#end foo;
function user.foo{inline}(a:int,b:int):int; # 0 (foo:int)<-(a:int)(b:int)
base := 1; # 1 (base:int)<-(_4:int)
c := calc.+(a,b); # 2 CALCbinaryADDintint (c:int)<-(a:int)(b:int)
c := calc.*(c,base); # 3 CALCbinaryMULintint
(c:int)<-(c:int)(base:int)
return foo{inline} := c; # 4 (foo:int)<-(c:int)
end foo; # 5
#
#function qry();
# b:= bat.new(:oid,:int);
# bat.insert(b,[EMAIL PROTECTED],1);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,b);
# z:bat[:oid,:int]:= mal.multiplex("user","foo",b,2);
#end qry;
function user.qry():void; # 0 (qry:void)
b := bat.new(:oid,:int); # 1 CMDBATnew
(b:bat[:oid,:int])<-(_2:oid)(_3:int)
bat.insert(b,[EMAIL PROTECTED],1); # 2 BKCinsert_bun
(_4:void)<-(b:bat[:oid,:int])(_5:oid)(_6:int)
z:bat[:oid,:int] := mal.multiplex("user","foo",b,b); # 3
OPTremapMultiplex
(z:bat[:oid,:int])<-(_8:str)(_9:str)(b:bat[:oid,:int])(b:bat[:oid,:int])
z:bat[:oid,:int] := mal.multiplex("user","foo",b,2); # 4
OPTremapMultiplex
(z:bat[:oid,:int])<-(_8:str)(_9:str)(b:bat[:oid,:int])(_10:int)
end qry; # 5
# optimizer.inline("user","qry");
# optimizer.remap("user","qry");
# mdb.list("user","qry");
#
function user.main():void; # 0 (main:void)
# remapping inline functions # 1 (_1:str)
# the crucial part is to recognize valid inlines # 2 (_2:str)
mdb.list("user","qry"); # 3 MDBlist3 (_7:void)<-(_4:str)(_5:str)
end main; # 4
function user.qry():void;
b := bat.new(:oid,:int);
bat.insert(b,[EMAIL PROTECTED],1);
_14 := 1;
_15 := batcalc.+(b,b);
_15 := batcalc.*(_15,_14);
z:bat[:oid,:int]{inline} := _15;
_19 := 1;
_20 := batcalc.+(b,2);
_20 := batcalc.*(_20,_19);
z:bat[:oid,:int]{inline} := _20;
end qry;
# 18:00:43 >
# 18:00:43 > Done.
# 18:00:43 >
--- NEW FILE: inline03.stable.err ---
stderr of test 'inline03` in directory 'src/optimizer` itself:
# 18:00:43 >
# 18:00:43 > mserver5 "--config=/ufs/mk/monet5/Linux/etc/monetdb5.conf"
--debug=10 --set
"monet_mod_path=/ufs/mk/monet5//Linux/lib/MonetDB5:/ufs/mk/monet5//Linux/lib/MonetDB5/lib:/ufs/mk/monet5//Linux/lib/MonetDB5/bin"
--set "gdk_dbfarm=/ufs/mk/monet5//Linux/var/MonetDB5/dbfarm" --set
"sql_logdir=/ufs/mk/monet5//Linux/var/MonetDB5/sql_logs" --set mapi_open=true
--set xrpc_open=true --set mapi_port=34223 --set xrpc_port=43286 --set
monet_prompt= --trace --dbname=mTests_src_optimizer inline03.mal
# 18:00:43 >
#warning: please don't forget to set your vault key!
#(see /ufs/mk/monet5/Linux/etc/monetdb5.conf)
# 18:00:43 >
# 18:00:43 > Done.
# 18:00:43 >
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins