Changeset: adaa8182ad6f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=adaa8182ad6f Modified Files: sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-plan.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-plan.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-plan.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-plan.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-plan.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-plan.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-plan.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-plan.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-plan.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-plan.stable.out sql/benchmarks/ssbm/Tests/11-explain.stable.out sql/benchmarks/ssbm/Tests/11-plan.stable.out sql/benchmarks/ssbm/Tests/12-explain.stable.out sql/benchmarks/ssbm/Tests/12-plan.stable.out sql/benchmarks/ssbm/Tests/13-explain.stable.out sql/benchmarks/ssbm/Tests/13-plan.stable.out sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-plan.stable.out sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/02-plan.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out sql/benchmarks/tpch/Tests/03-plan.stable.out sql/benchmarks/tpch/Tests/04-explain.stable.out sql/benchmarks/tpch/Tests/04-plan.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out sql/benchmarks/tpch/Tests/05-plan.stable.out sql/benchmarks/tpch/Tests/06-explain.stable.out sql/benchmarks/tpch/Tests/06-plan.stable.out sql/benchmarks/tpch/Tests/07-explain.stable.out sql/benchmarks/tpch/Tests/07-plan.stable.out sql/benchmarks/tpch/Tests/08-explain.stable.out sql/benchmarks/tpch/Tests/08-plan.stable.out sql/benchmarks/tpch/Tests/09-explain.stable.out sql/benchmarks/tpch/Tests/09-plan.stable.out sql/benchmarks/tpch/Tests/10-explain.stable.out sql/benchmarks/tpch/Tests/10-plan.stable.out sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-plan.stable.out sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-plan.stable.out sql/benchmarks/tpch/Tests/13-explain.stable.out sql/benchmarks/tpch/Tests/13-plan.stable.out sql/benchmarks/tpch/Tests/14-explain.stable.out sql/benchmarks/tpch/Tests/14-plan.stable.out sql/benchmarks/tpch/Tests/15-explain.stable.out sql/benchmarks/tpch/Tests/15-plan.stable.out sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/16-plan.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-plan.stable.out sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/18-plan.stable.out sql/benchmarks/tpch/Tests/19-explain.stable.out sql/benchmarks/tpch/Tests/19-plan.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-plan.stable.out sql/benchmarks/tpch/Tests/21-explain.stable.out sql/benchmarks/tpch/Tests/21-plan.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-plan.stable.out Branch: default Log Message:
approved default relational (plan) & MAL (explain) plans for SSBM & TPCH queries assuming that all changes wrt. Feb2013 are intended like this (for now) diffs (truncated from 7005 to 300 lines): diff --git a/sql/benchmarks/ssbm/Tests/01-explain.stable.out b/sql/benchmarks/ssbm/Tests/01-explain.stable.out --- a/sql/benchmarks/ssbm/Tests/01-explain.stable.out +++ b/sql/benchmarks/ssbm/Tests/01-explain.stable.out @@ -36,38 +36,37 @@ Ready. % .explain # table_name % mal # name % clob # type -% 91 # length -function user.s0_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int):void; - X_62:lng := nil:lng; -barrier X_97 := language.dataflow(); +% 246 # length +function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int):void; +barrier X_109 := language.dataflow(); X_6 := sql.mvc(); X_10 := sql.bind(X_6,"sys","lineorder","lo_quantity",0); X_18 := sql.bind(X_6,"sys","lineorder","lo_discount",0); X_7:bat[:oid,:oid] := sql.tid(X_6,"sys","lineorder"); - X_88 := algebra.subselect(X_18,X_7,A1,A2,true,true,false); + X_91 := algebra.subselect(X_18,X_7,A1,A2,true,true,false); (X_20,r1_23) := sql.bind(X_6,"sys","lineorder","lo_discount",2); - X_89 := algebra.subselect(r1_23,A1,A2,true,true,false); + X_92 := algebra.subselect(r1_23,A1,A2,true,true,false); X_22 := sql.bind(X_6,"sys","lineorder","lo_discount",1); - X_90 := algebra.subselect(X_22,X_7,A1,A2,true,true,false); - X_23 := sql.subdelta(X_88,X_7,X_20,X_89,X_90); - X_91 := algebra.thetasubselect(X_10,X_23,A3,"<"); + X_93 := algebra.subselect(X_22,X_7,A1,A2,true,true,false); + X_23 := sql.subdelta(X_91,X_7,X_20,X_92,X_93); + X_94 := algebra.thetasubselect(X_10,X_23,A3,"<"); (X_13,r1_13) := sql.bind(X_6,"sys","lineorder","lo_quantity",2); - X_92 := algebra.thetasubselect(r1_13,A3,"<"); + X_95 := algebra.thetasubselect(r1_13,A3,"<"); X_16 := sql.bind(X_6,"sys","lineorder","lo_quantity",1); - X_93 := algebra.thetasubselect(X_16,X_23,A3,"<"); - X_25 := sql.subdelta(X_91,X_23,X_13,X_92,X_93); + X_96 := algebra.thetasubselect(X_16,X_23,A3,"<"); + X_25 := sql.subdelta(X_94,X_23,X_13,X_95,X_96); X_27 := sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",0); (X_29,r1_36) := sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",2); X_31 := sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",1); X_32 := sql.projectdelta(X_25,X_27,X_29,r1_36,X_31); X_36 := sql.bind(X_6,"sys","dwdate","d_year",0); X_33:bat[:oid,:oid] := sql.tid(X_6,"sys","dwdate"); - X_94 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); + X_97 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); (X_39,r1_48) := sql.bind(X_6,"sys","dwdate","d_year",2); - X_95 := algebra.subselect(r1_48,A0,A0,true,true,false); + X_98 := algebra.subselect(r1_48,A0,A0,true,true,false); X_42 := sql.bind(X_6,"sys","dwdate","d_year",1); - X_96 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); - X_44 := sql.subdelta(X_94,X_33,X_39,X_95,X_96); + X_99 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); + X_44 := sql.subdelta(X_97,X_33,X_39,X_98,X_99); X_46 := X_44; (X_47,r1_59) := algebra.join(X_32,X_46); X_49 := sql.bind(X_6,"sys","lineorder","lo_extendedprice",0); @@ -90,9 +89,10 @@ barrier X_97 := language.dataflow(); language.pass(r1_23); language.pass(X_22); language.pass(X_47); -exit X_97; +exit X_109; sql.exportValue(1,"sys.L1","revenue","bigint",53,0,6,X_62,""); -end s0_1; +end s2_1; +# querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_year = 1993\n\t\tand lo_discount between 1 and 3\n\t\tand lo_quantity < 25;","no_mitosis_pipe") # 23:10:45 > # 23:10:45 > "Done." diff --git a/sql/benchmarks/ssbm/Tests/01-plan.stable.out b/sql/benchmarks/ssbm/Tests/01-plan.stable.out --- a/sql/benchmarks/ssbm/Tests/01-plan.stable.out +++ b/sql/benchmarks/ssbm/Tests/01-plan.stable.out @@ -35,17 +35,17 @@ Ready. % .plan # table_name % rel # name % clob # type -% 718 # length +% 211 # length project ( | group by ( | | join ( | | | select ( -| | | | table(sys.lineorder) [ lineorder.lo_orderdate, lineorder.lo_quantity, lineorder.lo_extendedprice, lineorder.lo_discount, lineorder.%TID% NOT NULL, lineorder.%lineorder_lo_orderkey_lo_linenumber_pkey NOT NULL HASHIDX , lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey, lineorder.%lineorder_lo_commitdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_commitdate_fkey, lineorder.%lineorder_lo_suppkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_suppkey_fkey, lineorder.%lineorder_lo_custkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_custkey_fkey, lineorder.%lineorder_lo_partkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_partkey_fkey ] COUNT +| | | | table(sys.lineorder) [ lineorder.lo_quantity, lineorder.lo_extendedprice, lineorder.lo_discount, lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] COUNT | | | ) [ int[tinyint "1"] <= lineorder.lo_discount <= int[tinyint "3"], lineorder.lo_quantity < int[tinyint "25"] ], | | | select ( -| | | | table(sys.dwdate) [ dwdate.d_datekey NOT NULL HASHCOL , dwdate.d_year, dwdate.%TID% NOT NULL, dwdate.%dwdate_d_datekey_pkey NOT NULL HASHIDX ] COUNT +| | | | table(sys.dwdate) [ dwdate.d_year, dwdate.%TID% NOT NULL ] COUNT | | | ) [ dwdate.d_year = int[smallint "1993"] ] -| | ) [ lineorder.lo_orderdate = dwdate.d_datekey NOT NULL HASHCOL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] +| | ) [ lineorder.%lineorder_lo_orderdate_fkey NOT NULL = dwdate.%TID% NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] | ) [ ] [ sys.sum no nil (sys.sql_mul(bigint[lineorder.lo_extendedprice] as lineorder.lo_extendedprice, lineorder.lo_discount)) as L1.L1 ] ) [ L1 as L1.revenue ] diff --git a/sql/benchmarks/ssbm/Tests/02-explain.stable.out b/sql/benchmarks/ssbm/Tests/02-explain.stable.out --- a/sql/benchmarks/ssbm/Tests/02-explain.stable.out +++ b/sql/benchmarks/ssbm/Tests/02-explain.stable.out @@ -36,38 +36,37 @@ Ready. % .explain # table_name % mal # name % clob # type -% 91 # length -function user.s0_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int):void; - X_62:lng := nil:lng; -barrier X_97 := language.dataflow(); +% 269 # length +function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int):void; +barrier X_109 := language.dataflow(); X_7 := sql.mvc(); X_11 := sql.bind(X_7,"sys","lineorder","lo_discount",0); X_19 := sql.bind(X_7,"sys","lineorder","lo_quantity",0); X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","lineorder"); - X_88 := algebra.subselect(X_19,X_8,A3,A4,true,true,false); + X_91 := algebra.subselect(X_19,X_8,A3,A4,true,true,false); (X_21,r1_25) := sql.bind(X_7,"sys","lineorder","lo_quantity",2); - X_89 := algebra.subselect(r1_25,A3,A4,true,true,false); + X_92 := algebra.subselect(r1_25,A3,A4,true,true,false); X_23 := sql.bind(X_7,"sys","lineorder","lo_quantity",1); - X_90 := algebra.subselect(X_23,X_8,A3,A4,true,true,false); - X_24 := sql.subdelta(X_88,X_8,X_21,X_89,X_90); - X_91 := algebra.subselect(X_11,X_24,A1,A2,true,true,false); + X_93 := algebra.subselect(X_23,X_8,A3,A4,true,true,false); + X_24 := sql.subdelta(X_91,X_8,X_21,X_92,X_93); + X_94 := algebra.subselect(X_11,X_24,A1,A2,true,true,false); (X_14,r1_14) := sql.bind(X_7,"sys","lineorder","lo_discount",2); - X_92 := algebra.subselect(r1_14,A1,A2,true,true,false); + X_95 := algebra.subselect(r1_14,A1,A2,true,true,false); X_17 := sql.bind(X_7,"sys","lineorder","lo_discount",1); - X_93 := algebra.subselect(X_17,X_24,A1,A2,true,true,false); - X_26 := sql.subdelta(X_91,X_24,X_14,X_92,X_93); + X_96 := algebra.subselect(X_17,X_24,A1,A2,true,true,false); + X_26 := sql.subdelta(X_94,X_24,X_14,X_95,X_96); X_27 := sql.bind_idxbat(X_7,"sys","lineorder","lineorder_lo_orderdate_fkey",0); (X_29,r1_37) := sql.bind_idxbat(X_7,"sys","lineorder","lineorder_lo_orderdate_fkey",2); X_31 := sql.bind_idxbat(X_7,"sys","lineorder","lineorder_lo_orderdate_fkey",1); X_32 := sql.projectdelta(X_26,X_27,X_29,r1_37,X_31); X_36 := sql.bind(X_7,"sys","dwdate","d_yearmonthnum",0); X_33:bat[:oid,:oid] := sql.tid(X_7,"sys","dwdate"); - X_94 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); + X_97 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); (X_39,r1_49) := sql.bind(X_7,"sys","dwdate","d_yearmonthnum",2); - X_95 := algebra.subselect(r1_49,A0,A0,true,true,false); + X_98 := algebra.subselect(r1_49,A0,A0,true,true,false); X_42 := sql.bind(X_7,"sys","dwdate","d_yearmonthnum",1); - X_96 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); - X_44 := sql.subdelta(X_94,X_33,X_39,X_95,X_96); + X_99 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); + X_44 := sql.subdelta(X_97,X_33,X_39,X_98,X_99); X_46 := X_44; (X_47,r1_60) := algebra.join(X_32,X_46); X_49 := sql.bind(X_7,"sys","lineorder","lo_extendedprice",0); @@ -90,9 +89,10 @@ barrier X_97 := language.dataflow(); language.pass(r1_14); language.pass(X_17); language.pass(X_47); -exit X_97; +exit X_109; sql.exportValue(1,"sys.L1","revenue","bigint",53,0,6,X_62,""); -end s0_1; +end s2_1; +# querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_yearmonthnum = 199401\n\t\tand lo_discount between 4 and 6\n\t\tand lo_quantity between 26 and 35;","no_mitosis_pipe") # 23:10:45 > # 23:10:45 > "Done." diff --git a/sql/benchmarks/ssbm/Tests/02-plan.stable.out b/sql/benchmarks/ssbm/Tests/02-plan.stable.out --- a/sql/benchmarks/ssbm/Tests/02-plan.stable.out +++ b/sql/benchmarks/ssbm/Tests/02-plan.stable.out @@ -35,17 +35,17 @@ Ready. % .plan # table_name % rel # name % clob # type -% 718 # length +% 211 # length project ( | group by ( | | join ( | | | select ( -| | | | table(sys.lineorder) [ lineorder.lo_orderdate, lineorder.lo_quantity, lineorder.lo_extendedprice, lineorder.lo_discount, lineorder.%TID% NOT NULL, lineorder.%lineorder_lo_orderkey_lo_linenumber_pkey NOT NULL HASHIDX , lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey, lineorder.%lineorder_lo_commitdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_commitdate_fkey, lineorder.%lineorder_lo_suppkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_suppkey_fkey, lineorder.%lineorder_lo_custkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_custkey_fkey, lineorder.%lineorder_lo_partkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_partkey_fkey ] COUNT +| | | | table(sys.lineorder) [ lineorder.lo_quantity, lineorder.lo_extendedprice, lineorder.lo_discount, lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] COUNT | | | ) [ int[tinyint "26"] <= lineorder.lo_quantity <= int[tinyint "35"], int[tinyint "4"] <= lineorder.lo_discount <= int[tinyint "6"] ], | | | select ( -| | | | table(sys.dwdate) [ dwdate.d_datekey NOT NULL HASHCOL , dwdate.d_yearmonthnum, dwdate.%TID% NOT NULL, dwdate.%dwdate_d_datekey_pkey NOT NULL HASHIDX ] COUNT +| | | | table(sys.dwdate) [ dwdate.d_yearmonthnum, dwdate.%TID% NOT NULL ] COUNT | | | ) [ dwdate.d_yearmonthnum = int "199401" ] -| | ) [ lineorder.lo_orderdate = dwdate.d_datekey NOT NULL HASHCOL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] +| | ) [ lineorder.%lineorder_lo_orderdate_fkey NOT NULL = dwdate.%TID% NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] | ) [ ] [ sys.sum no nil (sys.sql_mul(bigint[lineorder.lo_extendedprice] as lineorder.lo_extendedprice, lineorder.lo_discount)) as L1.L1 ] ) [ L1 as L1.revenue ] diff --git a/sql/benchmarks/ssbm/Tests/03-explain.stable.out b/sql/benchmarks/ssbm/Tests/03-explain.stable.out --- a/sql/benchmarks/ssbm/Tests/03-explain.stable.out +++ b/sql/benchmarks/ssbm/Tests/03-explain.stable.out @@ -36,26 +36,25 @@ Ready. % .explain # table_name % mal # name % clob # type -% 91 # length -function user.s0_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int,A5:int):void; - X_71:lng := nil:lng; -barrier X_111 := language.dataflow(); +% 283 # length +function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int,A5:int):void; +barrier X_124 := language.dataflow(); X_8 := sql.mvc(); X_12 := sql.bind(X_8,"sys","lineorder","lo_discount",0); X_20 := sql.bind(X_8,"sys","lineorder","lo_quantity",0); X_9:bat[:oid,:oid] := sql.tid(X_8,"sys","lineorder"); - X_99 := algebra.subselect(X_20,X_9,A4,A5,true,true,false); + X_102 := algebra.subselect(X_20,X_9,A4,A5,true,true,false); (X_22,r1_26) := sql.bind(X_8,"sys","lineorder","lo_quantity",2); - X_100 := algebra.subselect(r1_26,A4,A5,true,true,false); + X_103 := algebra.subselect(r1_26,A4,A5,true,true,false); X_24 := sql.bind(X_8,"sys","lineorder","lo_quantity",1); - X_101 := algebra.subselect(X_24,X_9,A4,A5,true,true,false); - X_25 := sql.subdelta(X_99,X_9,X_22,X_100,X_101); - X_102 := algebra.subselect(X_12,X_25,A2,A3,true,true,false); + X_104 := algebra.subselect(X_24,X_9,A4,A5,true,true,false); + X_25 := sql.subdelta(X_102,X_9,X_22,X_103,X_104); + X_105 := algebra.subselect(X_12,X_25,A2,A3,true,true,false); (X_15,r1_15) := sql.bind(X_8,"sys","lineorder","lo_discount",2); - X_103 := algebra.subselect(r1_15,A2,A3,true,true,false); + X_106 := algebra.subselect(r1_15,A2,A3,true,true,false); X_18 := sql.bind(X_8,"sys","lineorder","lo_discount",1); - X_104 := algebra.subselect(X_18,X_25,A2,A3,true,true,false); - X_27 := sql.subdelta(X_102,X_25,X_15,X_103,X_104); + X_107 := algebra.subselect(X_18,X_25,A2,A3,true,true,false); + X_27 := sql.subdelta(X_105,X_25,X_15,X_106,X_107); X_28 := sql.bind_idxbat(X_8,"sys","lineorder","lineorder_lo_orderdate_fkey",0); (X_30,r1_38) := sql.bind_idxbat(X_8,"sys","lineorder","lineorder_lo_orderdate_fkey",2); X_32 := sql.bind_idxbat(X_8,"sys","lineorder","lineorder_lo_orderdate_fkey",1); @@ -63,18 +62,18 @@ barrier X_111 := language.dataflow(); X_37 := sql.bind(X_8,"sys","dwdate","d_weeknuminyear",0); X_45 := sql.bind(X_8,"sys","dwdate","d_year",0); X_34:bat[:oid,:oid] := sql.tid(X_8,"sys","dwdate"); - X_105 := algebra.subselect(X_45,X_34,A1,A1,true,true,false); + X_108 := algebra.subselect(X_45,X_34,A1,A1,true,true,false); (X_47,r1_60) := sql.bind(X_8,"sys","dwdate","d_year",2); - X_106 := algebra.subselect(r1_60,A1,A1,true,true,false); + X_109 := algebra.subselect(r1_60,A1,A1,true,true,false); X_49 := sql.bind(X_8,"sys","dwdate","d_year",1); - X_107 := algebra.subselect(X_49,X_34,A1,A1,true,true,false); - X_50 := sql.subdelta(X_105,X_34,X_47,X_106,X_107); - X_108 := algebra.subselect(X_37,X_50,A0,A0,true,true,false); + X_110 := algebra.subselect(X_49,X_34,A1,A1,true,true,false); + X_50 := sql.subdelta(X_108,X_34,X_47,X_109,X_110); + X_111 := algebra.subselect(X_37,X_50,A0,A0,true,true,false); (X_40,r1_50) := sql.bind(X_8,"sys","dwdate","d_weeknuminyear",2); - X_109 := algebra.subselect(r1_50,A0,A0,true,true,false); + X_112 := algebra.subselect(r1_50,A0,A0,true,true,false); X_43 := sql.bind(X_8,"sys","dwdate","d_weeknuminyear",1); - X_110 := algebra.subselect(X_43,X_50,A0,A0,true,true,false); - X_53 := sql.subdelta(X_108,X_50,X_40,X_109,X_110); + X_113 := algebra.subselect(X_43,X_50,A0,A0,true,true,false); + X_53 := sql.subdelta(X_111,X_50,X_40,X_112,X_113); X_54 := X_53; (X_55,r1_71) := algebra.join(X_33,X_54); X_57 := sql.bind(X_8,"sys","lineorder","lo_extendedprice",0); @@ -98,9 +97,10 @@ barrier X_111 := language.dataflow(); language.pass(r1_15); language.pass(X_18); language.pass(X_55); -exit X_111; +exit X_124; sql.exportValue(1,"sys.L1","revenue","bigint",53,0,6,X_71,""); -end s0_1; +end s2_1; +# querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_weeknuminyear = 6 and d_year = 1994\n\t\tand lo_discount between 5 and 7\n\t\tand lo_quantity between 36 and 40;","no_mitosis_pipe") # 23:10:45 > # 23:10:45 > "Done." diff --git a/sql/benchmarks/ssbm/Tests/03-plan.stable.out b/sql/benchmarks/ssbm/Tests/03-plan.stable.out --- a/sql/benchmarks/ssbm/Tests/03-plan.stable.out +++ b/sql/benchmarks/ssbm/Tests/03-plan.stable.out @@ -35,17 +35,17 @@ Ready. % .plan # table_name % rel # name % clob # type -% 718 # length +% 211 # length project ( | group by ( | | join ( | | | select ( -| | | | table(sys.lineorder) [ lineorder.lo_orderdate, lineorder.lo_quantity, lineorder.lo_extendedprice, lineorder.lo_discount, lineorder.%TID% NOT NULL, lineorder.%lineorder_lo_orderkey_lo_linenumber_pkey NOT NULL HASHIDX , lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey, lineorder.%lineorder_lo_commitdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_commitdate_fkey, lineorder.%lineorder_lo_suppkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_suppkey_fkey, lineorder.%lineorder_lo_custkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_custkey_fkey, lineorder.%lineorder_lo_partkey_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_partkey_fkey ] COUNT +| | | | table(sys.lineorder) [ lineorder.lo_quantity, lineorder.lo_extendedprice, lineorder.lo_discount, lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] COUNT | | | ) [ int[tinyint "36"] <= lineorder.lo_quantity <= int[tinyint "40"], int[tinyint "5"] <= lineorder.lo_discount <= int[tinyint "7"] ], | | | select ( -| | | | table(sys.dwdate) [ dwdate.d_datekey NOT NULL HASHCOL , dwdate.d_year, dwdate.d_weeknuminyear, dwdate.%TID% NOT NULL, dwdate.%dwdate_d_datekey_pkey NOT NULL HASHIDX ] COUNT +| | | | table(sys.dwdate) [ dwdate.d_year, dwdate.d_weeknuminyear, dwdate.%TID% NOT NULL ] COUNT | | | ) [ dwdate.d_year = int[smallint "1994"], dwdate.d_weeknuminyear = int[tinyint "6"] ] -| | ) [ lineorder.lo_orderdate = dwdate.d_datekey NOT NULL HASHCOL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] +| | ) [ lineorder.%lineorder_lo_orderdate_fkey NOT NULL = dwdate.%TID% NOT NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ] | ) [ ] [ sys.sum no nil (sys.sql_mul(bigint[lineorder.lo_extendedprice] as lineorder.lo_extendedprice, lineorder.lo_discount)) as L1.L1 ] ) [ L1 as L1.revenue ] diff --git a/sql/benchmarks/ssbm/Tests/04-explain.stable.out b/sql/benchmarks/ssbm/Tests/04-explain.stable.out --- a/sql/benchmarks/ssbm/Tests/04-explain.stable.out +++ b/sql/benchmarks/ssbm/Tests/04-explain.stable.out @@ -39,12 +39,9 @@ Ready. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list