Changeset: 23edf4a395e8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=23edf4a395e8
Modified Files:
        gdk/gdk_bbp.c
        sql/benchmarks/tpch/Tests/07-plan.stable.out
        sql/benchmarks/tpch/Tests/08-plan.stable.out
        sql/benchmarks/tpch/Tests/11-explain.stable.out
        sql/benchmarks/tpch/Tests/11-plan.stable.out
        sql/benchmarks/tpch/Tests/14-plan.stable.out
        sql/benchmarks/tpch/Tests/19-plan.stable.out
Branch: default
Log Message:

merged


diffs (truncated from 321 to 300 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -3289,14 +3289,14 @@ BBPprepare(bit subcommit)
                        if (mkdir(BAKDIR, 0755) < 0 && errno != EEXIST)
                                ret = GDK_FAIL;
                        /* if BAKDIR already exists, don't signal error */
-                       IODEBUG fprintf(stderr, "#mkdir %s = %d\n", BAKDIR, 
ret);
+                       IODEBUG fprintf(stderr, "#mkdir %s = %d\n", BAKDIR, 
(int) ret);
                }
        }
        if (ret == GDK_SUCCEED && start_subcommit) {
                /* make a new SUBDIR (subdir of BAKDIR) */
                if (mkdir(SUBDIR, 0755) < 0)
                        ret = GDK_FAIL;
-               IODEBUG fprintf(stderr, "#mkdir %s = %d\n", SUBDIR, ret);
+               IODEBUG fprintf(stderr, "#mkdir %s = %d\n", SUBDIR, (int) ret);
        }
        if (ret == GDK_SUCCEED && backup_dir != set) {
                /* a valid backup dir *must* at least contain BBP.dir */
@@ -3520,7 +3520,7 @@ BBPsync(int cnt, bat *subcommit)
                                ret = GDK_FAIL;
                        if (ret != GDK_SUCCEED)
                                GDKsyserror("BBPsync: rename(%s,%s) failed.\n", 
bakdir, DELDIR);
-                       IODEBUG fprintf(stderr, "#BBPsync: rename %s %s = 
%d\n", bakdir, DELDIR, ret);
+                       IODEBUG fprintf(stderr, "#BBPsync: rename %s %s = 
%d\n", bakdir, DELDIR, (int) ret);
                }
 
                /* AFTERMATH */
@@ -3592,14 +3592,14 @@ force_move(int farmid, const char *srcdi
                srcpath = GDKfilepath(farmid, srcdir, name, NULL);
                if (unlink(dstpath) < 0)        /* clear destination */
                        ret = GDK_FAIL;
-               IODEBUG fprintf(stderr, "#unlink %s = %d\n", dstpath, ret);
+               IODEBUG fprintf(stderr, "#unlink %s = %d\n", dstpath, (int) 
ret);
 
                if (GDKcreatedir(dstdir) == GDK_SUCCEED)
                        ret = GDK_SUCCEED;
                ret = GDKmove(farmid, srcdir, name, NULL, dstdir, name, NULL);
                if (ret != GDK_SUCCEED)
-                       GDKsyserror("force_move: link(%s,%s)=%d\n", srcpath, 
dstpath, ret);
-               IODEBUG fprintf(stderr, "#link %s %s = %d\n", srcpath, dstpath, 
ret);
+                       GDKsyserror("force_move: link(%s,%s)=%d\n", srcpath, 
dstpath, (int) ret);
+               IODEBUG fprintf(stderr, "#link %s %s = %d\n", srcpath, dstpath, 
(int) ret);
                GDKfree(dstpath);
                GDKfree(srcpath);
        }
@@ -3689,7 +3689,7 @@ BBPrecover(int farmid)
        if (ret == GDK_SUCCEED) {
                if (rmdir(BAKDIR) < 0)
                        ret = GDK_FAIL;
-               IODEBUG fprintf(stderr, "#rmdir %s = %d\n", BAKDIR, ret);
+               IODEBUG fprintf(stderr, "#rmdir %s = %d\n", BAKDIR, (int) ret);
        }
        if (ret != GDK_SUCCEED)
                GDKerror("BBPrecover: recovery failed. Please check whether 
your disk is full or write-protected.\n");
@@ -3736,7 +3736,7 @@ BBPrecover_subdir(void)
                        backup_dir = 0;
                }
        }
-       IODEBUG fprintf(stderr, "#BBPrecover_subdir(end) = %d\n", ret);
+       IODEBUG fprintf(stderr, "#BBPrecover_subdir(end) = %d\n", (int) ret);
 
        if (ret != GDK_SUCCEED)
                GDKerror("BBPrecover_subdir: recovery failed. Please check 
whether your disk is full or write-protected.\n");
diff --git a/sql/benchmarks/tpch/Tests/07-plan.stable.out 
b/sql/benchmarks/tpch/Tests/07-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/07-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/07-plan.stable.out
@@ -74,15 +74,15 @@ project (
 | | | | | | | ) [ lineitem.%lineitem_l_orderkey_fkey NOT NULL = orders.%TID% 
NOT NULL JOINIDX sys.lineitem.lineitem_l_orderkey_fkey ],
 | | | | | | | select (
 | | | | | | | | table(sys.nation) [ nation.n_name NOT NULL as n1.n_name, 
nation.%TID% NOT NULL as n1.%TID% ] COUNT 
-| | | | | | | ) [ n1.n_name NOT NULL in (char(25)[char(6) "FRANCE"], 
char(25)[char(7) "GERMANY"]) ]
+| | | | | | | ) [ n1.n_name NOT NULL in (char(25) "FRANCE", char(25) 
"GERMANY") ]
 | | | | | | ) [ supplier.%supplier_s_nationkey_fkey NOT NULL = n1.%TID% NOT 
NULL JOINIDX sys.supplier.supplier_s_nationkey_fkey ],
 | | | | | | table(sys.customer) [ customer.%TID% NOT NULL, 
customer.%customer_c_nationkey_fkey NOT NULL JOINIDX 
sys.customer.customer_c_nationkey_fkey ] COUNT 
 | | | | | ) [ orders.%orders_o_custkey_fkey NOT NULL = customer.%TID% NOT NULL 
JOINIDX sys.orders.orders_o_custkey_fkey ],
 | | | | | select (
 | | | | | | table(sys.nation) [ nation.n_name NOT NULL as n2.n_name, 
nation.%TID% NOT NULL as n2.%TID% ] COUNT 
-| | | | | ) [ n2.n_name NOT NULL in (char(25)[char(7) "GERMANY"], 
char(25)[char(6) "FRANCE"]) ]
+| | | | | ) [ n2.n_name NOT NULL in (char(25) "GERMANY", char(25) "FRANCE") ]
 | | | | ) [ customer.%customer_c_nationkey_fkey NOT NULL = n2.%TID% NOT NULL 
JOINIDX sys.customer.customer_c_nationkey_fkey ]
-| | | ) [ (n1.n_name NOT NULL = char(25)[char(6) "FRANCE"], n2.n_name NOT NULL 
= char(25)[char(7) "GERMANY"]) or (n1.n_name NOT NULL = char(25)[char(7) 
"GERMANY"], n2.n_name NOT NULL = char(25)[char(6) "FRANCE"]) ]
+| | | ) [ (n1.n_name NOT NULL = char(25) "FRANCE", n2.n_name NOT NULL = 
char(25) "GERMANY") or (n1.n_name NOT NULL = char(25) "GERMANY", n2.n_name NOT 
NULL = char(25) "FRANCE") ]
 | | ) [ n1.n_name NOT NULL as shipping.supp_nation, n2.n_name NOT NULL as 
shipping.cust_nation, sys.year(lineitem.l_shipdate NOT NULL) as 
shipping.l_year, sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)) as 
shipping.volume ]
 | ) [ shipping.supp_nation NOT NULL, shipping.cust_nation NOT NULL, 
shipping.l_year ] [ shipping.supp_nation NOT NULL, shipping.cust_nation NOT 
NULL, shipping.l_year, sys.sum no nil (shipping.volume) as L1.L1 ]
 ) [ shipping.supp_nation NOT NULL, shipping.cust_nation NOT NULL, 
shipping.l_year, L1 as L1.revenue ] [ shipping.supp_nation ASC NOT NULL, 
shipping.cust_nation ASC NOT NULL, shipping.l_year ASC ]
diff --git a/sql/benchmarks/tpch/Tests/08-plan.stable.out 
b/sql/benchmarks/tpch/Tests/08-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/08-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/08-plan.stable.out
@@ -56,7 +56,7 @@ Ready.
 % .plan # table_name
 % rel # name
 % clob # type
-% 498 # length
+% 480 # length
 project (
 | group by (
 | | project (
@@ -82,13 +82,13 @@ project (
 | | | | | | ) [ customer.%customer_c_nationkey_fkey NOT NULL = n1.%TID% NOT 
NULL JOINIDX sys.customer.customer_c_nationkey_fkey ],
 | | | | | | select (
 | | | | | | | table(sys.region) [ region.r_name NOT NULL, region.%TID% NOT 
NULL ] COUNT 
-| | | | | | ) [ region.r_name NOT NULL = char(25)[char(7) "AMERICA"] ]
+| | | | | | ) [ region.r_name NOT NULL = char(25) "AMERICA" ]
 | | | | | ) [ n1.%nation_n_regionkey_fkey NOT NULL = region.%TID% NOT NULL 
JOINIDX sys.nation.nation_n_regionkey_fkey ],
 | | | | | table(sys.supplier) [ supplier.s_suppkey NOT NULL HASHCOL , 
supplier.%supplier_s_nationkey_fkey NOT NULL JOINIDX 
sys.supplier.supplier_s_nationkey_fkey ] COUNT 
 | | | | ) [ supplier.s_suppkey NOT NULL HASHCOL  = lineitem.l_suppkey NOT NULL 
],
 | | | | table(sys.nation) [ nation.n_name NOT NULL as n2.n_name, nation.%TID% 
NOT NULL as n2.%TID% ] COUNT 
 | | | ) [ supplier.%supplier_s_nationkey_fkey NOT NULL = n2.%TID% NOT NULL 
JOINIDX sys.supplier.supplier_s_nationkey_fkey ]
-| | ) [ sys.year(orders.o_orderdate NOT NULL) as all_nations.o_year, 
sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)) as 
all_nations.volume, n2.n_name NOT NULL as all_nations.nation, 
sys.ifthenelse(sys.ifthenelse(sys.isnull(sys.=(all_nations.nation NOT NULL, 
char(25)[char(6) "BRAZIL"])), boolean "false", sys.=(all_nations.nation NOT 
NULL, char(25)[char(6) "BRAZIL"])), all_nations.volume, decimal(19,4)[tinyint 
"0"]) as L1.L1 ]
+| | ) [ sys.year(orders.o_orderdate NOT NULL) as all_nations.o_year, 
sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)) as 
all_nations.volume, n2.n_name NOT NULL as all_nations.nation, 
sys.ifthenelse(sys.ifthenelse(sys.isnull(sys.=(all_nations.nation NOT NULL, 
char(25) "BRAZIL")), boolean "false", sys.=(all_nations.nation NOT NULL, 
char(25) "BRAZIL")), all_nations.volume, decimal(19,4)[tinyint "0"]) as L1.L1 ]
 | ) [ all_nations.o_year ] [ all_nations.o_year, sys.sum no nil (L1.L1) as 
L2.L2, sys.sum no nil (all_nations.volume) as L3.L3 ]
 ) [ all_nations.o_year, sys.sql_div(decimal(19,8)[L2] as L2, L3) as 
L3.mkt_share ] [ all_nations.o_year ASC ]
 
diff --git a/sql/benchmarks/tpch/Tests/11-explain.stable.out 
b/sql/benchmarks/tpch/Tests/11-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/11-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/11-explain.stable.out
@@ -72,57 +72,57 @@ function user.s2_1{autoCommit=true}(A0:s
     X_25:bat[:oid,:str]  := sql.bind(X_5,"sys","nation","n_name",1);
     X_26 := sql.delta(X_21,X_23,r1_23,X_25);
     X_27 := algebra.leftfetchjoin(X_19,X_26);
-    X_28 := algebra.subselect(X_27,A0,A0,true,true,false);
-    X_30 := algebra.leftfetchjoin(X_28,X_19);
-    (X_31,r1_32) := algebra.subjoin(X_18,X_30,nil:BAT,nil:BAT,false,nil:lng);
-    X_35 := algebra.leftfetchjoin(X_31,X_6);
+    X_84 := algebra.subselect(X_27,A2,A2,true,true,false);
+    X_86 := algebra.leftfetchjoin(X_84,X_19);
+    (X_87,r1_114) := algebra.subjoin(X_18,X_86,nil:BAT,nil:BAT,false,nil:lng);
+    X_91 := algebra.leftfetchjoin(X_87,X_6);
     X_36:bat[:oid,:oid]  := sql.tid(X_5,"sys","partsupp");
     X_38:bat[:oid,:oid]  := 
sql.bind_idxbat(X_5,"sys","partsupp","partsupp_ps_suppkey_fkey",0);
     (X_41,r1_42) := 
sql.bind_idxbat(X_5,"sys","partsupp","partsupp_ps_suppkey_fkey",2);
     X_43:bat[:oid,:oid]  := 
sql.bind_idxbat(X_5,"sys","partsupp","partsupp_ps_suppkey_fkey",1);
     X_44 := sql.delta(X_38,X_41,r1_42,X_43);
     X_45 := algebra.leftfetchjoin(X_36,X_44);
-    (X_46,r1_47) := algebra.subjoin(X_35,X_45,nil:BAT,nil:BAT,false,nil:lng);
-    X_48:bat[:oid,:int]  := sql.bind(X_5,"sys","partsupp","ps_partkey",0);
-    (X_51,r1_52) := sql.bind(X_5,"sys","partsupp","ps_partkey",2);
-    X_54:bat[:oid,:int]  := sql.bind(X_5,"sys","partsupp","ps_partkey",1);
-    X_56 := sql.delta(X_48,X_51,r1_52,X_54);
-    X_57:bat[:oid,:int]  := algebra.leftfetchjoinPath(r1_47,X_36,X_56);
-    (X_58,r1_60,r2_60) := group.subgroupdone(X_57);
-    X_61 := algebra.leftfetchjoin(r1_60,X_57);
+    (X_92,r1_128) := algebra.subjoin(X_91,X_45,nil:BAT,nil:BAT,false,nil:lng);
     X_63:bat[:oid,:lng]  := sql.bind(X_5,"sys","partsupp","ps_supplycost",0);
     (X_65,r1_67) := sql.bind(X_5,"sys","partsupp","ps_supplycost",2);
     X_67:bat[:oid,:lng]  := sql.bind(X_5,"sys","partsupp","ps_supplycost",1);
     X_68 := sql.delta(X_63,X_65,r1_67,X_67);
     X_69 := algebra.leftfetchjoin(X_36,X_68);
-    X_70 := algebra.leftfetchjoin(r1_47,X_69);
+    X_95 := algebra.leftfetchjoin(r1_128,X_69);
     X_71:bat[:oid,:int]  := sql.bind(X_5,"sys","partsupp","ps_availqty",0);
     (X_75,r1_77) := sql.bind(X_5,"sys","partsupp","ps_availqty",2);
     X_77:bat[:oid,:int]  := sql.bind(X_5,"sys","partsupp","ps_availqty",1);
     X_78 := sql.delta(X_71,X_75,r1_77,X_77);
     X_79 := algebra.leftfetchjoin(X_36,X_78);
-    X_80 := algebra.leftfetchjoin(r1_47,X_79);
-    X_81:bat[:oid,:lng]  := batcalc.*(X_70,X_80);
-    X_82:bat[:oid,:lng]  := aggr.subsum(X_81,X_58,r1_60,true,true);
-    X_62 := bat.mirror(X_61);
-    X_84 := algebra.subselect(X_27,A2,A2,true,true,false);
-    X_86 := algebra.leftfetchjoin(X_84,X_19);
-    (X_87,r1_114) := algebra.subjoin(X_18,X_86,nil:BAT,nil:BAT,false,nil:lng);
-    X_91 := algebra.leftfetchjoin(X_87,X_6);
-    (X_92,r1_128) := algebra.subjoin(X_91,X_45,nil:BAT,nil:BAT,false,nil:lng);
-    X_95 := algebra.leftfetchjoin(r1_128,X_69);
     X_96 := algebra.leftfetchjoin(r1_128,X_79);
     X_97:bat[:oid,:lng]  := batcalc.*(X_95,X_96);
     X_98:lng  := aggr.sum(X_97);
     X_99 := calc.*(X_98,A1);
-    X_100 := sql.single(X_99);
-    X_102:bat[:oid,:lng] := batsql.dec_round(X_100,100);
-    (X_103,r1_162) := 
algebra.subthetajoin(X_82,X_102,nil:BAT,nil:BAT,1,true,nil:lng);
+    X_28 := algebra.subselect(X_27,A0,A0,true,true,false);
+    X_30 := algebra.leftfetchjoin(X_28,X_19);
+    (X_31,r1_32) := algebra.subjoin(X_18,X_30,nil:BAT,nil:BAT,false,nil:lng);
+    X_35 := algebra.leftfetchjoin(X_31,X_6);
+    (X_46,r1_47) := algebra.subjoin(X_35,X_45,nil:BAT,nil:BAT,false,nil:lng);
+    X_70 := algebra.leftfetchjoin(r1_47,X_69);
+    X_80 := algebra.leftfetchjoin(r1_47,X_79);
+    X_81:bat[:oid,:lng] := batcalc.*(X_70,X_80);
+    X_48:bat[:oid,:int] := sql.bind(X_5,"sys","partsupp","ps_partkey",0);
+    (X_51,r1_52) := sql.bind(X_5,"sys","partsupp","ps_partkey",2);
+    X_54:bat[:oid,:int] := sql.bind(X_5,"sys","partsupp","ps_partkey",1);
+    X_56 := sql.delta(X_48,X_51,r1_52,X_54);
+    X_57:bat[:oid,:int] := algebra.leftfetchjoinPath(r1_47,X_36,X_56);
+    (X_58,r1_60,r2_60) := group.subgroupdone(X_57);
+    X_61 := algebra.leftfetchjoin(r1_60,X_57);
+    X_82:bat[:oid,:lng] := aggr.subsum(X_81,X_58,r1_60,true,true);
+    X_62 := bat.mirror(X_61);
+    X_101 := sql.dec_round(X_99,100);
+    X_102 := sql.single(X_101);
+    (X_103,r1_160) := 
algebra.subthetajoin(X_82,X_102,nil:BAT,nil:BAT,1,true,nil:lng);
     X_108 := algebra.tinter(X_62,X_103);
     X_109 := algebra.leftfetchjoin(X_108,X_82);
-    (X_110,r1_169,r2_169) := algebra.subsort(X_109,true,false);
-    X_114:bat[:oid,:int]  := algebra.leftfetchjoinPath(r1_169,X_108,X_61);
-    X_115 := algebra.leftfetchjoin(r1_169,X_109);
+    (X_110,r1_167,r2_167) := algebra.subsort(X_109,true,false);
+    X_114:bat[:oid,:int] := algebra.leftfetchjoinPath(r1_167,X_108,X_61);
+    X_115 := algebra.leftfetchjoin(r1_167,X_109);
     X_116 := sql.resultSet(2,1,X_114);
     sql.rsColumn(X_116,"sys.partsupp","ps_partkey","int",32,0,X_114);
     sql.rsColumn(X_116,"sys.L1","value","decimal",19,2,X_115);
diff --git a/sql/benchmarks/tpch/Tests/11-plan.stable.out 
b/sql/benchmarks/tpch/Tests/11-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/11-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/11-plan.stable.out
@@ -55,34 +55,38 @@ Ready.
 % .plan # table_name
 % rel # name
 % clob # type
-% 231 # length
+% 235 # length
 project (
-| semijoin (
-| | group by (
-| | | join (
-| | | | join (
-| | | | | table(sys.supplier) [ supplier.%TID% NOT NULL, 
supplier.%supplier_s_nationkey_fkey NOT NULL JOINIDX 
sys.supplier.supplier_s_nationkey_fkey ] COUNT ,
-| | | | | select (
-| | | | | | table(sys.nation) [ nation.n_name NOT NULL, nation.%TID% NOT NULL 
] COUNT 
-| | | | | ) [ nation.n_name NOT NULL = char(25) "GERMANY" ]
-| | | | ) [ supplier.%supplier_s_nationkey_fkey NOT NULL = nation.%TID% NOT 
NULL JOINIDX sys.supplier.supplier_s_nationkey_fkey ],
-| | | | table(sys.partsupp) [ partsupp.ps_partkey NOT NULL HASHCOL , 
partsupp.ps_availqty NOT NULL, partsupp.ps_supplycost NOT NULL, 
partsupp.%partsupp_ps_suppkey_fkey NOT NULL JOINIDX 
sys.partsupp.partsupp_ps_suppkey_fkey ] COUNT 
-| | | ) [ partsupp.%partsupp_ps_suppkey_fkey NOT NULL = supplier.%TID% NOT 
NULL JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ]
-| | ) [ partsupp.ps_partkey NOT NULL HASHCOL  ] [ partsupp.ps_partkey NOT NULL 
HASHCOL , sys.sum no nil (sys.sql_mul(partsupp.ps_supplycost NOT NULL, 
partsupp.ps_availqty NOT NULL)) as L1.L1, L1.L1 as L2.L2 ],
-| | project (
-| | | group by (
-| | | | join (
+| project (
+| | semijoin (
+| | | project (
+| | | | group by (
 | | | | | join (
-| | | | | | table(sys.supplier) [ supplier.%TID% NOT NULL, 
supplier.%supplier_s_nationkey_fkey NOT NULL JOINIDX 
sys.supplier.supplier_s_nationkey_fkey ] COUNT ,
-| | | | | | select (
-| | | | | | | table(sys.nation) [ nation.n_name NOT NULL, nation.%TID% NOT 
NULL ] COUNT 
-| | | | | | ) [ nation.n_name NOT NULL = char(25) "GERMANY" ]
-| | | | | ) [ supplier.%supplier_s_nationkey_fkey NOT NULL = nation.%TID% NOT 
NULL JOINIDX sys.supplier.supplier_s_nationkey_fkey ],
-| | | | | table(sys.partsupp) [ partsupp.ps_availqty NOT NULL, 
partsupp.ps_supplycost NOT NULL, partsupp.%partsupp_ps_suppkey_fkey NOT NULL 
JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ] COUNT 
-| | | | ) [ partsupp.%partsupp_ps_suppkey_fkey NOT NULL = supplier.%TID% NOT 
NULL JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ]
-| | | ) [  ] [ sys.sum no nil (sys.sql_mul(partsupp.ps_supplycost NOT NULL, 
partsupp.ps_availqty NOT NULL)) as L3.L3 ]
-| | ) [ sys.sql_mul(L3, decimal(4,3) "1") as L4.L4 ]
-| ) [ L2 > sys.scale_down(L4.L4, bigint "100") ]
+| | | | | | join (
+| | | | | | | table(sys.supplier) [ supplier.%TID% NOT NULL, 
supplier.%supplier_s_nationkey_fkey NOT NULL JOINIDX 
sys.supplier.supplier_s_nationkey_fkey ] COUNT ,
+| | | | | | | select (
+| | | | | | | | table(sys.nation) [ nation.n_name NOT NULL, nation.%TID% NOT 
NULL ] COUNT 
+| | | | | | | ) [ nation.n_name NOT NULL = char(25) "GERMANY" ]
+| | | | | | ) [ supplier.%supplier_s_nationkey_fkey NOT NULL = nation.%TID% 
NOT NULL JOINIDX sys.supplier.supplier_s_nationkey_fkey ],
+| | | | | | table(sys.partsupp) [ partsupp.ps_partkey NOT NULL HASHCOL , 
partsupp.ps_availqty NOT NULL, partsupp.ps_supplycost NOT NULL, 
partsupp.%partsupp_ps_suppkey_fkey NOT NULL JOINIDX 
sys.partsupp.partsupp_ps_suppkey_fkey ] COUNT 
+| | | | | ) [ partsupp.%partsupp_ps_suppkey_fkey NOT NULL = supplier.%TID% NOT 
NULL JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ]
+| | | | ) [ partsupp.ps_partkey NOT NULL HASHCOL  ] [ partsupp.ps_partkey NOT 
NULL HASHCOL , sys.sum no nil (sys.sql_mul(partsupp.ps_supplycost NOT NULL, 
partsupp.ps_availqty NOT NULL)) as L1.L1, L1.L1 as L2.L2 ]
+| | | ) [ partsupp.ps_partkey NOT NULL HASHCOL , L1.L1, L2.L2, L2 as L5.L5 ],
+| | | project (
+| | | | group by (
+| | | | | join (
+| | | | | | join (
+| | | | | | | table(sys.supplier) [ supplier.%TID% NOT NULL, 
supplier.%supplier_s_nationkey_fkey NOT NULL JOINIDX 
sys.supplier.supplier_s_nationkey_fkey ] COUNT ,
+| | | | | | | select (
+| | | | | | | | table(sys.nation) [ nation.n_name NOT NULL, nation.%TID% NOT 
NULL ] COUNT 
+| | | | | | | ) [ nation.n_name NOT NULL = char(25) "GERMANY" ]
+| | | | | | ) [ supplier.%supplier_s_nationkey_fkey NOT NULL = nation.%TID% 
NOT NULL JOINIDX sys.supplier.supplier_s_nationkey_fkey ],
+| | | | | | table(sys.partsupp) [ partsupp.ps_availqty NOT NULL, 
partsupp.ps_supplycost NOT NULL, partsupp.%partsupp_ps_suppkey_fkey NOT NULL 
JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ] COUNT 
+| | | | | ) [ partsupp.%partsupp_ps_suppkey_fkey NOT NULL = supplier.%TID% NOT 
NULL JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ]
+| | | | ) [  ] [ sys.sum no nil (sys.sql_mul(partsupp.ps_supplycost NOT NULL, 
partsupp.ps_availqty NOT NULL)) as L3.L3 ]
+| | | ) [ sys.sql_mul(L3, decimal(4,3) "1") as L4.L4, sys.scale_down(L4.L4, 
bigint "100") as L6.L6 ]
+| | ) [ L5.L5 > L6.L6 ]
+| ) [ partsupp.ps_partkey NOT NULL HASHCOL , L1.L1, L2.L2 ]
 ) [ partsupp.ps_partkey NOT NULL, L1 as L1.value ] [ L1.value ]
 
 # 22:46:31 >  
diff --git a/sql/benchmarks/tpch/Tests/14-plan.stable.out 
b/sql/benchmarks/tpch/Tests/14-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/14-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/14-plan.stable.out
@@ -41,7 +41,7 @@ Ready.
 % .plan # table_name
 % rel # name
 % clob # type
-% 502 # length
+% 484 # length
 project (
 | group by (
 | | join (
@@ -50,7 +50,7 @@ project (
 | | | ) [ date "1995-09-01" <= lineitem.l_shipdate NOT NULL < sys.sql_add(date 
"1995-09-01", month_interval "1") ],
 | | | table(sys.part) [ part.p_partkey NOT NULL HASHCOL , part.p_type NOT NULL 
] COUNT 
 | | ) [ lineitem.l_partkey NOT NULL = part.p_partkey NOT NULL HASHCOL  ]
-| ) [  ] [ sys.sum no nil 
(sys.ifthenelse(sys.ifthenelse(sys.isnull(sys.like(part.p_type NOT NULL, 
char[char(6) "PROMO%"])), boolean "false", sys.like(part.p_type NOT NULL, 
char[char(6) "PROMO%"])), sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)), 
decimal(19,4)[tinyint "0"])) as L1.L1, sys.sum no nil 
(sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL))) as 
L2.L2 ]
+| ) [  ] [ sys.sum no nil 
(sys.ifthenelse(sys.ifthenelse(sys.isnull(sys.like(part.p_type NOT NULL, char 
"PROMO%")), boolean "false", sys.like(part.p_type NOT NULL, char "PROMO%")), 
sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)), 
decimal(19,4)[tinyint "0"])) as L1.L1, sys.sum no nil 
(sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL))) as 
L2.L2 ]
 ) [ sys.sql_mul(decimal(4,1) "1", sys.sql_div(decimal(19,8)[L1] as L1, L2)) as 
L2.promo_revenue ]
 
 # 22:46:32 >  
diff --git a/sql/benchmarks/tpch/Tests/19-plan.stable.out 
b/sql/benchmarks/tpch/Tests/19-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/19-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/19-plan.stable.out
@@ -49,19 +49,19 @@ Ready.
 % .plan # table_name
 % rel # name
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to