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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list