Changeset: 642e282e1a32 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=642e282e1a32
Modified Files:
clients/odbc/driver/SQLGetTypeInfo.c
sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
sql/benchmarks/tpch/Tests/01-22.stable.out
sql/benchmarks/tpch/Tests/01.stable.out
sql/benchmarks/tpch/Tests/03.stable.out
sql/benchmarks/tpch/Tests/05.stable.out
sql/benchmarks/tpch/Tests/06.stable.out
sql/benchmarks/tpch/Tests/07.stable.out
sql/benchmarks/tpch/Tests/08.stable.out
sql/benchmarks/tpch/Tests/09.stable.out
sql/benchmarks/tpch/Tests/10.stable.out
sql/benchmarks/tpch/Tests/11.stable.out
sql/benchmarks/tpch/Tests/14.stable.out
sql/benchmarks/tpch/Tests/15.stable.out
sql/benchmarks/tpch/Tests/19.stable.out
sql/common/sql_types.c
sql/server/rel_exp.c
sql/server/rel_select.c
sql/test/BugTracker-2008/Tests/extract_bug.SF-2075266.stable.out
sql/test/BugTracker-2008/Tests/mul_div_bug.SF-2075135.stable.out
sql/test/BugTracker-2009/Tests/arithmetic-small-values-null.SF-2921310.stable.out
sql/test/BugTracker-2011/Tests/and-power.Bug-3013.stable.out
sql/test/BugTracker-2011/Tests/non-stable-select-bug.Bug-2894.stable.out
sql/test/BugTracker-2012/Tests/large-number-operation-strange-results.Bug-2929.stable.out
sql/test/BugTracker-2012/Tests/power_priority.Bug-2291.stable.out
Branch: Feb2013
Log Message:
Backout of changeset f8f1b9c98a40.
It turns out that the parser already limits decimals to 18 digits.
A simple test that failed (by inserting a 19 digit value into a column
that can hold only 18 digits) and now works correctly (by giving an
error message) is:
create table t (i decimal(18));
insert into t values (123456789123456789);
insert into t (select 9*i from t);
diffs (truncated from 700 to 300 lines):
diff --git a/clients/odbc/driver/SQLGetTypeInfo.c
b/clients/odbc/driver/SQLGetTypeInfo.c
--- a/clients/odbc/driver/SQLGetTypeInfo.c
+++ b/clients/odbc/driver/SQLGetTypeInfo.c
@@ -182,7 +182,7 @@ static struct types {
{
"bigint", /* type_name */
SQL_BIGINT, /* data_type */
- 18, /* column_size */
+ 19, /* column_size */
NULL, /* literal_prefix */
NULL, /* literal_suffix */
"precision", /* create_params */
@@ -315,7 +315,7 @@ static struct types {
{
"numeric", /* type_name */
SQL_NUMERIC, /* data_type */
- 18, /* column_size */
+ 19, /* column_size */
NULL, /* literal_prefix */
NULL, /* literal_suffix */
"precision,scale", /* create_params */
@@ -327,7 +327,7 @@ static struct types {
SQL_FALSE, /* auto_unique_value */
NULL, /* local_type_name */
0, /* minimum_scale */
- 18, /* maximum_scale */
+ 19, /* maximum_scale */
SQL_NUMERIC, /* sql_data_type */
-1, /* sql_datetime_sub */
10, /* num_prec_radix */
@@ -337,7 +337,7 @@ static struct types {
{
"decimal", /* type_name */
SQL_DECIMAL, /* data_type */
- 18, /* column_size */
+ 19, /* column_size */
NULL, /* literal_prefix */
NULL, /* literal_suffix */
"precision,scale", /* create_params */
@@ -349,7 +349,7 @@ static struct types {
SQL_FALSE, /* auto_unique_value */
NULL, /* local_type_name */
0, /* minimum_scale */
- 18, /* maximum_scale */
+ 19, /* maximum_scale */
SQL_DECIMAL, /* sql_data_type */
-1, /* sql_datetime_sub */
10, /* num_prec_radix */
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
@@ -52,7 +52,7 @@ Ready.
% sys.lineitem, sys.lineitem, sys.L1, sys.L2, sys.L3, sys.L4, sys.L5,
sys.L6, sys.L7, sys.L10 # table_name
% l_returnflag, l_linestatus, sum_qty, sum_base_price,
sum_disc_price, sum_charge, avg_qty, avg_price, avg_disc,
count_order # name
% varchar, varchar, bigint, decimal, decimal,
decimal, double, double, double, wrd # type
-% 1, 1, 6, 17, 20, 20, 24, 24, 24, 5 #
length
+% 1, 1, 6, 17, 21, 21, 24, 24, 24, 5 #
length
[ "A", "F", 380456, 532348211.65, 505822441.4861, 526165934.000839,
25.57515461, 35785.70931, 0.05008133907, 14876 ]
[ "N", "F", 8971, 12384801.37, 11798257.2080, 12282485.056933,
25.77873563, 35588.50968, 0.04775862069, 348 ]
[ "N", "O", 742802, 1041502841.45, 989737518.6346, 1029418531.523350,
25.45498783, 35691.12921, 0.04993111956, 29181 ]
@@ -111,7 +111,7 @@ Ready.
% sys.lineitem, sys.L1, sys.orders, sys.orders # table_name
% l_orderkey, revenue, o_orderdate, o_shippriority # name
% int, decimal, date, int # type
-% 5, 20, 10, 1 # length
+% 5, 21, 10, 1 # length
[ 47714, 267010.5894, 1995-03-11, 0 ]
[ 22276, 266351.5562, 1995-01-29, 0 ]
[ 32965, 263768.3414, 1995-02-25, 0 ]
@@ -199,7 +199,7 @@ Ready.
% sys.nation, sys.L1 # table_name
% n_name, revenue # name
% varchar, decimal # type
-% 9, 20 # length
+% 9, 21 # length
[ "VIETNAM", 1000926.6999 ]
[ "CHINA", 740210.7570 ]
[ "JAPAN", 660651.2425 ]
@@ -227,7 +227,7 @@ Ready.
% sys.L1 # table_name
% revenue # name
% decimal # type
-% 20 # length
+% 21 # length
[ 1193053.2253 ]
% .stats, .stats # table_name
% rewrite, count # name
@@ -269,7 +269,7 @@ Ready.
% sys.shipping, sys.shipping, sys.shipping, sys.L1 # table_name
% supp_nation, cust_nation, l_year, revenue # name
% varchar, varchar, int, decimal # type
-% 7, 7, 4, 20 # length
+% 7, 7, 4, 21 # length
[ "FRANCE", "GERMANY", 1995, 268068.5774 ]
[ "FRANCE", "GERMANY", 1996, 303862.2980 ]
[ "GERMANY", "FRANCE", 1995, 621159.4882 ]
@@ -315,7 +315,7 @@ Ready.
% sys.all_nations, sys.L3 # table_name
% o_year, mkt_share # name
% int, decimal # type
-% 4, 20 # length
+% 4, 21 # length
[ 1995, 0.0000 ]
[ 1996, 0.0000 ]
% .stats, .stats # table_name
@@ -357,7 +357,7 @@ Ready.
% sys.profit, sys.profit, sys.L1 # table_name
% nation, o_year, sum_profit # name
% varchar, int, decimal # type
-% 14, 4, 20 # length
+% 14, 4, 21 # length
[ "ALGERIA", 1998, 386617.8283 ]
[ "ALGERIA", 1997, 401601.1258 ]
[ "ALGERIA", 1996, 156938.7971 ]
@@ -577,7 +577,7 @@ Ready.
% sys.customer, sys.customer, sys.L1, sys.customer, sys.nation,
sys.customer, sys.customer, sys.customer # table_name
% c_custkey, c_name, revenue, c_acctbal, n_name, c_address,
c_phone, c_comment # name
% int, varchar, decimal, decimal, varchar,
varchar, varchar, varchar # type
-% 4, 18, 20, 17, 14, 40, 15, 104 # length
+% 4, 18, 21, 17, 14, 40, 15, 104 # length
[ 679, "Customer#000000679", 378211.3252, 1394.44, "IRAN",
"IJf1FlZL9I9m,rvofcoKy5pRUOjUQV", "20-146-696-9508", "regular ideas
promise against the furiously final deposits. f" ]
[ 1201, "Customer#000001201", 374331.5340, 5165.39, "IRAN",
"LfCSVKWozyWOGDW02g9UX,XgH5YU2o5ql1zBrN", "20-825-400-1187",
"fluffily final grouches doubt. bold dependencies dazzle caref" ]
[ 422, "Customer#000000422", 366451.0126, -272.14, "INDONESIA",
"AyNzZBvmIDo42JtjP9xzaK3pnvkh Qc0o08ssnvq", "19-299-247-2444",
"furiously ironic asymptotes are slyly ironic, ironic requests. bold," ]
@@ -638,7 +638,7 @@ Ready.
% sys.partsupp, sys.L1 # table_name
% ps_partkey, value # name
% int, decimal # type
-% 4, 20 # length
+% 4, 21 # length
[ 1376, 13271249.89 ]
#select * from optimizer_stats() stats;
% .stats, .stats # table_name
@@ -773,7 +773,7 @@ Ready.
% .L2 # table_name
% promo_revenue # name
% decimal # type
-% 20 # length
+% 21 # length
[ 15.48 ]
#select * from optimizer_stats() stats;
% .stats, .stats # table_name
@@ -789,7 +789,7 @@ Ready.
% sys.supplier, sys.supplier, sys.supplier, sys.supplier,
sys.revenue0 # table_name
% s_suppkey, s_name, s_address, s_phone, total_revenue # name
% int, varchar, varchar, varchar, decimal # type
-% 2, 18, 36, 15, 20 # length
+% 2, 18, 36, 15, 21 # length
[ 21, "Supplier#000000021", "81CavellcrJ0PQ3CPBID0Z0JwyJm0ka5igEs",
"12-253-590-5816", 1161099.4636 ]
% .stats, .stats # table_name
% rewrite, count # name
@@ -1246,7 +1246,7 @@ Ready.
% sys.L1 # table_name
% revenue # name
% decimal # type
-% 20 # length
+% 21 # length
[ 22923.0280 ]
% .stats, .stats # table_name
% rewrite, count # name
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
@@ -51,7 +51,7 @@ Ready.
% sys.lineitem, sys.lineitem, sys.L1, sys.L2, sys.L3, sys.L4, sys.L5,
sys.L6, sys.L7, sys.L10 # table_name
% l_returnflag, l_linestatus, sum_qty, sum_base_price,
sum_disc_price, sum_charge, avg_qty, avg_price, avg_disc,
count_order # name
% varchar, varchar, bigint, decimal, decimal,
decimal, double, double, double, wrd # type
-% 1, 1, 6, 17, 20, 20, 24, 24, 24, 5 #
length
+% 1, 1, 6, 17, 21, 21, 24, 24, 24, 5 #
length
[ "A", "F", 380456, 532348211.65, 505822441.4861, 526165934.000839,
25.57515461, 35785.70931, 0.05008133907, 14876 ]
[ "N", "F", 8971, 12384801.37, 11798257.2080, 12282485.056933,
25.77873563, 35588.50968, 0.04775862069, 348 ]
[ "N", "O", 742802, 1041502841.45, 989737518.6346, 1029418531.523350,
25.45498783, 35691.12921, 0.04993111956, 29181 ]
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
@@ -43,7 +43,7 @@ Ready.
% sys.lineitem, sys.L1, sys.orders, sys.orders # table_name
% l_orderkey, revenue, o_orderdate, o_shippriority # name
% int, decimal, date, int # type
-% 5, 20, 10, 1 # length
+% 5, 21, 10, 1 # length
[ 47714, 267010.5894, 1995-03-11, 0 ]
[ 22276, 266351.5562, 1995-01-29, 0 ]
[ 32965, 263768.3414, 1995-02-25, 0 ]
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
@@ -44,7 +44,7 @@ Ready.
% sys.nation, sys.L1 # table_name
% n_name, revenue # name
% varchar, decimal # type
-% 9, 20 # length
+% 9, 21 # length
[ "VIETNAM", 1000926.6999 ]
[ "CHINA", 740210.7570 ]
[ "JAPAN", 660651.2425 ]
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
@@ -29,7 +29,7 @@ Ready.
% sys.L1 # table_name
% revenue # name
% decimal # type
-% 20 # length
+% 21 # length
[ 1193053.2253 ]
% .stats, .stats # table_name
% rewrite, count # name
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
@@ -58,7 +58,7 @@ Ready.
% sys.shipping, sys.shipping, sys.shipping, sys.L1 # table_name
% supp_nation, cust_nation, l_year, revenue # name
% varchar, varchar, int, decimal # type
-% 7, 7, 4, 20 # length
+% 7, 7, 4, 21 # length
[ "FRANCE", "GERMANY", 1995, 268068.5774 ]
[ "FRANCE", "GERMANY", 1996, 303862.2980 ]
[ "GERMANY", "FRANCE", 1995, 621159.4882 ]
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
@@ -48,7 +48,7 @@ Ready.
% sys.all_nations, sys.L3 # table_name
% o_year, mkt_share # name
% int, decimal # type
-% 4, 20 # length
+% 4, 21 # length
[ 1995, 0.0000 ]
[ 1996, 0.0000 ]
% .stats, .stats # table_name
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
@@ -46,7 +46,7 @@ Ready.
% sys.profit, sys.profit, sys.L1 # table_name
% nation, o_year, sum_profit # name
% varchar, int, decimal # type
-% 14, 4, 20 # length
+% 14, 4, 21 # length
[ "ALGERIA", 1998, 386617.8283 ]
[ "ALGERIA", 1997, 401601.1258 ]
[ "ALGERIA", 1996, 156938.7971 ]
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
@@ -63,7 +63,7 @@ Ready.
% sys.customer, sys.customer, sys.L1, sys.customer, sys.nation,
sys.customer, sys.customer, sys.customer # table_name
% c_custkey, c_name, revenue, c_acctbal, n_name, c_address,
c_phone, c_comment # name
% int, varchar, decimal, decimal, varchar,
varchar, varchar, varchar # type
-% 4, 18, 20, 17, 14, 40, 15, 104 # length
+% 4, 18, 21, 17, 14, 40, 15, 104 # length
[ 679, "Customer#000000679", 378211.3252, 1394.44, "IRAN",
"IJf1FlZL9I9m,rvofcoKy5pRUOjUQV", "20-146-696-9508", "regular ideas
promise against the furiously final deposits. f" ]
[ 1201, "Customer#000001201", 374331.5340, 5165.39, "IRAN",
"LfCSVKWozyWOGDW02g9UX,XgH5YU2o5ql1zBrN", "20-825-400-1187",
"fluffily final grouches doubt. bold dependencies dazzle caref" ]
[ 422, "Customer#000000422", 366451.0126, -272.14, "INDONESIA",
"AyNzZBvmIDo42JtjP9xzaK3pnvkh Qc0o08ssnvq", "19-299-247-2444",
"furiously ironic asymptotes are slyly ironic, ironic requests. bold," ]
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
@@ -47,7 +47,7 @@ Ready.
% sys.partsupp, sys.L1 # table_name
% ps_partkey, value # name
% int, decimal # type
-% 4, 20 # length
+% 4, 21 # length
[ 1376, 13271249.89 ]
#select * from optimizer_stats() stats;
% .stats, .stats # table_name
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
@@ -33,7 +33,7 @@ Ready.
% .L2 # table_name
% promo_revenue # name
% decimal # type
-% 20 # length
+% 21 # length
[ 15.48 ]
#select * from optimizer_stats() stats;
% .stats, .stats # table_name
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
@@ -21,7 +21,7 @@ Ready.
% sys.supplier, sys.supplier, sys.supplier, sys.supplier,
sys.revenue0 # table_name
% s_suppkey, s_name, s_address, s_phone, total_revenue # name
% int, varchar, varchar, varchar, decimal # type
-% 2, 18, 36, 15, 20 # length
+% 2, 18, 36, 15, 21 # length
[ 21, "Supplier#000000021", "81CavellcrJ0PQ3CPBID0Z0JwyJm0ka5igEs",
"12-253-590-5816", 1161099.4636 ]
% .stats, .stats # table_name
% rewrite, count # name
diff --git a/sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
b/sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
--- a/sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
+++ b/sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
@@ -52,7 +52,7 @@ Ready.
% sys.L1 # table_name
% revenue # name
% decimal # type
-% 20 # length
+% 21 # length
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list