⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tst4730.mal

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 MAL
字号:
#TPCH query 1# the basis for further optimizer tests#don;t depend on SQL libraryfunction user.bind(s:str,t:str,c:str,i:int):bat[:any_1,:any_2];	return bat.new(:any_1,:any_2);end bind;function user.bind_dbat(s:str,t:str,i:int):bat[:any_1,:any_2];    return bat.new(:any_1,:any_2);end bind_dbat;function user.column(b:bat[:oid,:any_1],s:str,t:str,i:int,j:int):void;end column;factory qry1(A0:sht,A1:sht,A2:sht,A3:date,A4:int):bit;    V6:bat[:oid,:date]{rows=1000} := user.bind("sys","lineitem","l_shipdate",0);    V11:bat[:oid,:oid]{rows=1000} := user.bind_dbat("sys","lineitem",0);    V22:bat[:oid,:bit]{rows=1000} := user.bind("sys","lineitem","l_returnflag",0);    V29:bat[:oid,:bit]{rows=1000} := user.bind("sys","lineitem","l_linestatus",0);    V53:bat[:oid,:int]{rows=1000} := user.bind("sys","lineitem","l_quantity",0);    V60:bat[:oid,:flt]{rows=1000} := user.bind("sys","lineitem","l_extendedprice",0);    V75:bat[:oid,:flt]{rows=1000} := user.bind("sys","lineitem","l_discount",0);    V105:bat[:oid,:flt]{rows=1000} := user.bind("sys","lineitem","l_tax",0);barrier always := true;    V12 := bat.reverse(V11);    V13 := algebra.kdifference(V6,V12);    V16 := mtime.date_sub_sec_interval(A3,A4);	a := mtime.date(nil);    V17 := algebra.uselect(V13,a,V16);    V20 := algebra.markT(V17,0@0);    V21 := bat.reverse(V20);    V26 := algebra.kdifference(V22,V12);    V27 := algebra.join(V21,V26);    (h,V28) := group.new(V27);    V33 := algebra.kdifference(V29,V12);    V34 := algebra.join(V21,V33);    (Ext,V35) := group.derive(h,V28,V34);    V36 := algebra.tunique(Ext);    V37 := bat.mirror(V36);    V42 := algebra.join(V37,V27);    V43 := algebra.sort(V42);    V51 := algebra.join(V37,V34);    V52 := group.refine(V43,V51);    V57 := algebra.kdifference(V53,V12);    V58 := algebra.join(V21,V57);    V59 := aggr.sum(V58,V35,V37);    V64 := algebra.kdifference(V60,V12);    V65 := algebra.join(V21,V64);    V66 := aggr.sum(V65,V35,V37);    V72 := calc.lng(A0);    V74 := calc.*(V72,100);    V82 := algebra.kdifference(V75,V12);    V83 := algebra.join(V21,V82);    V84:bat[:oid,:flt] := optimizer.multiplex("calc.-",V74,V83);    V86 := batcalc.*(V65,V84);    V88 := aggr.sum(V86,V35,V37);    V94 := calc.lng(A1);    V95 := calc.*(V94,100);    V100:bat[:oid,:flt] := optimizer.multiplex("calc.-",V95,V83);    V101 := batcalc.*(V65,V100);    V103 := calc.lng(A2);    V104 := calc.*(V103,100);    V109 := algebra.kdifference(V105,V12);    V110 := algebra.join(V21,V109);    V111:bat[:oid,:flt] := optimizer.multiplex("calc.+",V104,V110);    V113 := batcalc.*(V101,V111);    V114 := aggr.sum(V113,V35,V37);    V122 := aggr.avg(V58,V35,V37);    V127 := aggr.avg(V65,V35,V37);    V129 := optimizer.multiplex("calc.round",V127,100);    V135 := aggr.avg(V83,V35,V37);    V136 := optimizer.multiplex("calc.round",V135,100);    V137 := aggr.count(V35,V35,V37);    #sql.column(V42,"l_returnflag","varchar",1,0);    #sql.column(V51,"l_linestatus","varchar",1,0);    #sql.column(V59,"sum_qty","bigint",0,0);    #sql.column(V66,"sum_base_price","decimal",19,2);    #sql.column(V88,"sum_disc_price","decimal",19,4);    #sql.column(V114,"sum_charge","decimal",19,6);    #sql.column(V122,"avg_qty","double",53,0);    #sql.column(V129,"avg_price","double",53,0);    #sql.column(V136,"avg_disc","double",53,0);    #sql.column(V137,"count_order","int",0,0);    #sql.output(V52,V42,V51,V59,V66,V88,V114,V122,V129,V136,V137);    yield always;    redo always;exit always;	return always;end qry1;optimizer.costModel("user","qry1");mdb.list("user","qry1");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -