Changeset: 2ed94e6e2a9c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2ed94e6e2a9c
Removed Files:
sql/benchmarks/ssbm/Tests/01-plan.stable.out.int128
sql/benchmarks/ssbm/Tests/02-plan.stable.out.int128
sql/benchmarks/ssbm/Tests/03-plan.stable.out.int128
Modified Files:
sql/benchmarks/ssbm/Tests/01-explain.stable.out
sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
sql/server/rel_select.c
sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
sql/test/pg_regress/Tests/int2.stable.out
sql/test/pg_regress/Tests/int4.stable.out
sql/test/pg_regress/Tests/select_views.stable.out
Branch: default
Log Message:
rel_select: fixed result type estimation for "*" & "/" on integer & decimal
types
this ensures that the result of an int multiplication is lng rather than hge
diffs (truncated from 400 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
@@ -79,7 +79,7 @@ function user.s2_1{autoCommit=true}(A0:i
X_61 := algebra.leftfetchjoin(X_47,X_60);
X_62:bat[:oid,:lng] := batcalc.*(X_59,X_61);
X_63:lng := aggr.sum(X_62);
- sql.exportValue(1,"sys.L1","revenue","bigint",53,0,7,X_63,"");
+ sql.exportValue(1,"sys.L1","revenue","bigint",64,0,7,X_63,"");
end user.s2_1;
# 23:10:45 >
diff --git a/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
b/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
@@ -74,12 +74,12 @@ function user.s2_1{autoCommit=true}(A0:i
X_56:bat[:oid,:int] :=
sql.bind(X_6,"sys","lineorder","lo_extendedprice",1);
X_57 := sql.projectdelta(X_25,X_51,X_54,r1_66,X_56);
X_58 := algebra.leftfetchjoin(X_47,X_57);
- X_59 := batcalc.hge(X_58);
+ X_59 := batcalc.lng(X_58);
X_60 := sql.projectdelta(X_25,X_18,X_20,r1_23,X_22);
X_61 := algebra.leftfetchjoin(X_47,X_60);
- X_62:bat[:oid,:hge] := batcalc.*(X_59,X_61);
+ X_62:bat[:oid,:lng] := batcalc.*(X_59,X_61);
X_63:hge := aggr.sum(X_62);
- sql.exportValue(1,"sys.L1","revenue","hugeint",128,0,7,X_63,"");
+ sql.exportValue(1,"sys.L1","revenue","hugeint",64,0,7,X_63,"");
end user.s2_1;
# 23:10:45 >
diff --git a/sql/benchmarks/ssbm/Tests/01-plan.stable.out.int128
b/sql/benchmarks/ssbm/Tests/01-plan.stable.out.int128
deleted file mode 100644
--- a/sql/benchmarks/ssbm/Tests/01-plan.stable.out.int128
+++ /dev/null
@@ -1,55 +0,0 @@
-stdout of test '01-plan` in directory 'sql/benchmarks/ssbm` itself:
-
-
-# 23:08:56 >
-# 23:08:56 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=36026" "--set"
"mapi_usock=/var/tmp/mtest-16251/.s.monetdb.36026" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/ufs/manegold/_/Monet/HG/Feb2013/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_benchmarks_ssbm"
"--set" "mal_listing=0"
-# 23:08:56 >
-
-# MonetDB 5 server v11.15.12
-# This is an unreleased version
-# Serving database 'mTests_sql_benchmarks_ssbm', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
-# Found 15.591 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://rome.ins.cwi.nl:36026/
-# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-16251/.s.monetdb.36026
-# MonetDB/GIS module loaded
-# MonetDB/JAQL module loaded
-# MonetDB/SQL module loaded
-
-Ready.
-
-# 23:08:56 >
-# 23:08:56 > "/usr/bin/python2" "01-plan.SQL.py" "01-plan"
-# 23:08:56 >
-
-#plan
-#select sum(lo_extendedprice*lo_discount) as revenue
-# from lineorder, dwdate
-# where lo_orderdate = d_datekey
-# and d_year = 1993
-# and lo_discount between 1 and 3
-# and lo_quantity < 25;
-% .plan # table_name
-% rel # name
-% clob # type
-% 211 # length
-project (
-| group by (
-| | join (
-| | | select (
-| | | | 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_year, dwdate.%TID% NOT NULL ] COUNT
-| | | ) [ dwdate.d_year = int[smallint "1993"] ]
-| | ) [ 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(hugeint[lineorder.lo_extendedprice] as
lineorder.lo_extendedprice, lineorder.lo_discount)) as L1.L1 ]
-) [ L1 as L1.revenue ]
-
-# 23:08:56 >
-# 23:08:56 > "Done."
-# 23:08:56 >
-
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
@@ -79,7 +79,7 @@ function user.s2_1{autoCommit=true}(A0:i
X_61 := algebra.leftfetchjoin(X_47,X_60);
X_62:bat[:oid,:lng] := batcalc.*(X_59,X_61);
X_63:lng := aggr.sum(X_62);
- sql.exportValue(1,"sys.L1","revenue","bigint",53,0,7,X_63,"");
+ sql.exportValue(1,"sys.L1","revenue","bigint",64,0,7,X_63,"");
end user.s2_1;
# 23:10:45 >
diff --git a/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
b/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
@@ -74,12 +74,12 @@ function user.s2_1{autoCommit=true}(A0:i
X_56:bat[:oid,:int] :=
sql.bind(X_7,"sys","lineorder","lo_extendedprice",1);
X_57 := sql.projectdelta(X_26,X_51,X_54,r1_67,X_56);
X_58 := algebra.leftfetchjoin(X_47,X_57);
- X_59 := batcalc.hge(X_58);
+ X_59 := batcalc.lng(X_58);
X_60 := sql.projectdelta(X_26,X_19,X_21,r1_25,X_23);
X_61 := algebra.leftfetchjoin(X_47,X_60);
- X_62:bat[:oid,:hge] := batcalc.*(X_59,X_61);
+ X_62:bat[:oid,:lng] := batcalc.*(X_59,X_61);
X_63:hge := aggr.sum(X_62);
- sql.exportValue(1,"sys.L1","revenue","hugeint",128,0,7,X_63,"");
+ sql.exportValue(1,"sys.L1","revenue","hugeint",64,0,7,X_63,"");
end user.s2_1;
# 23:10:45 >
diff --git a/sql/benchmarks/ssbm/Tests/02-plan.stable.out.int128
b/sql/benchmarks/ssbm/Tests/02-plan.stable.out.int128
deleted file mode 100644
--- a/sql/benchmarks/ssbm/Tests/02-plan.stable.out.int128
+++ /dev/null
@@ -1,55 +0,0 @@
-stdout of test '02-plan` in directory 'sql/benchmarks/ssbm` itself:
-
-
-# 23:08:56 >
-# 23:08:56 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=36026" "--set"
"mapi_usock=/var/tmp/mtest-16251/.s.monetdb.36026" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/ufs/manegold/_/Monet/HG/Feb2013/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_benchmarks_ssbm"
"--set" "mal_listing=0"
-# 23:08:56 >
-
-# MonetDB 5 server v11.15.12
-# This is an unreleased version
-# Serving database 'mTests_sql_benchmarks_ssbm', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
-# Found 15.591 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://rome.ins.cwi.nl:36026/
-# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-16251/.s.monetdb.36026
-# MonetDB/GIS module loaded
-# MonetDB/JAQL module loaded
-# MonetDB/SQL module loaded
-
-Ready.
-
-# 23:08:56 >
-# 23:08:56 > "/usr/bin/python2" "02-plan.SQL.py" "02-plan"
-# 23:08:56 >
-
-#plan
-#select sum(lo_extendedprice*lo_discount) as revenue
-# from lineorder, dwdate
-# where lo_orderdate = d_datekey
-# and d_yearmonthnum = 199401
-# and lo_discount between 4 and 6
-# and lo_quantity between 26 and 35;
-% .plan # table_name
-% rel # name
-% clob # type
-% 211 # length
-project (
-| group by (
-| | join (
-| | | select (
-| | | | 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 "4"] <= lineorder.lo_discount <= int[tinyint "6"],
int[tinyint "26"] <= lineorder.lo_quantity <= int[tinyint "35"] ],
-| | | select (
-| | | | table(sys.dwdate) [ dwdate.d_yearmonthnum, dwdate.%TID% NOT NULL ]
COUNT
-| | | ) [ dwdate.d_yearmonthnum = int "199401" ]
-| | ) [ 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(hugeint[lineorder.lo_extendedprice] as
lineorder.lo_extendedprice, lineorder.lo_discount)) as L1.L1 ]
-) [ L1 as L1.revenue ]
-
-# 23:08:56 >
-# 23:08:56 > "Done."
-# 23:08:56 >
-
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
@@ -86,7 +86,7 @@ function user.s2_1{autoCommit=true}(A0:i
X_70 := algebra.leftfetchjoin(X_55,X_69);
X_71:bat[:oid,:lng] := batcalc.*(X_68,X_70);
X_72:lng := aggr.sum(X_71);
- sql.exportValue(1,"sys.L1","revenue","bigint",53,0,7,X_72,"");
+ sql.exportValue(1,"sys.L1","revenue","bigint",64,0,7,X_72,"");
end user.s2_1;
# 23:10:45 >
diff --git a/sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
b/sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
@@ -81,12 +81,12 @@ function user.s2_1{autoCommit=true}(A0:i
X_65:bat[:oid,:int] :=
sql.bind(X_8,"sys","lineorder","lo_extendedprice",1);
X_66 := sql.projectdelta(X_27,X_59,X_62,r1_78,X_65);
X_67 := algebra.leftfetchjoin(X_55,X_66);
- X_68 := batcalc.hge(X_67);
+ X_68 := batcalc.lng(X_67);
X_69 := sql.projectdelta(X_27,X_20,X_22,r1_26,X_24);
X_70 := algebra.leftfetchjoin(X_55,X_69);
- X_71:bat[:oid,:hge] := batcalc.*(X_68,X_70);
+ X_71:bat[:oid,:lng] := batcalc.*(X_68,X_70);
X_72:hge := aggr.sum(X_71);
- sql.exportValue(1,"sys.L1","revenue","hugeint",128,0,7,X_72,"");
+ sql.exportValue(1,"sys.L1","revenue","hugeint",64,0,7,X_72,"");
end user.s2_1;
# 23:10:45 >
diff --git a/sql/benchmarks/ssbm/Tests/03-plan.stable.out.int128
b/sql/benchmarks/ssbm/Tests/03-plan.stable.out.int128
deleted file mode 100644
--- a/sql/benchmarks/ssbm/Tests/03-plan.stable.out.int128
+++ /dev/null
@@ -1,55 +0,0 @@
-stdout of test '03-plan` in directory 'sql/benchmarks/ssbm` itself:
-
-
-# 23:08:56 >
-# 23:08:56 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=36026" "--set"
"mapi_usock=/var/tmp/mtest-16251/.s.monetdb.36026" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/ufs/manegold/_/Monet/HG/Feb2013/prefix/--disable-debug_--enable-assert_--enable-optimize/var/MonetDB/mTests_sql_benchmarks_ssbm"
"--set" "mal_listing=0"
-# 23:08:56 >
-
-# MonetDB 5 server v11.15.12
-# This is an unreleased version
-# Serving database 'mTests_sql_benchmarks_ssbm', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
-# Found 15.591 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://rome.ins.cwi.nl:36026/
-# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-16251/.s.monetdb.36026
-# MonetDB/GIS module loaded
-# MonetDB/JAQL module loaded
-# MonetDB/SQL module loaded
-
-Ready.
-
-# 23:08:57 >
-# 23:08:57 > "/usr/bin/python2" "03-plan.SQL.py" "03-plan"
-# 23:08:57 >
-
-#plan
-#select sum(lo_extendedprice*lo_discount) as revenue
-# from lineorder, dwdate
-# where lo_orderdate = d_datekey
-# and d_weeknuminyear = 6 and d_year = 1994
-# and lo_discount between 5 and 7
-# and lo_quantity between 36 and 40;
-% .plan # table_name
-% rel # name
-% clob # type
-% 211 # length
-project (
-| group by (
-| | join (
-| | | select (
-| | | | 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 "5"] <= lineorder.lo_discount <= int[tinyint "7"],
int[tinyint "36"] <= lineorder.lo_quantity <= int[tinyint "40"] ],
-| | | select (
-| | | | 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.%lineorder_lo_orderdate_fkey NOT NULL = dwdate.%TID% NOT
NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ]
-| ) [ ] [ sys.sum no nil (sys.sql_mul(hugeint[lineorder.lo_extendedprice] as
lineorder.lo_extendedprice, lineorder.lo_discount)) as L1.L1 ]
-) [ L1 as L1.revenue ]
-
-# 23:08:57 >
-# 23:08:57 > "Done."
-# 23:08:57 >
-
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -2164,15 +2164,13 @@ exp_sum_scales(mvc *sql, sql_subfunc *f,
#ifdef HAVE_HGE
if (ares->type.type->radix == 10 && res->digits > 39)
res->digits = 39;
+ if (ares->type.type->radix == 2 && res->digits > 128)
+ res->digits = 128;
#else
if (ares->type.type->radix == 10 && res->digits > 19)
res->digits = 19;
-#endif
- if (ares->type.type->radix == 2 && res->digits > 53)
-#ifdef HAVE_HGE
- res->digits = 128;
-#else
- res->digits = 53;
+ if (ares->type.type->radix == 2 && res->digits > 64)
+ res->digits = 64;
#endif
/* sum of digits may mean we need a bigger result type
@@ -2224,15 +2222,13 @@ exp_scale_algebra(mvc *sql, sql_subfunc
#ifdef HAVE_HGE
if (res->type->radix == 10 && digits > 39)
digits = 39;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list