Changeset: 8b21cfe0f7a8 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8b21cfe0f7a8 Modified Files: sql/test/pg_regress/Tests/numeric.sql sql/test/pg_regress/Tests/numeric.stable.err sql/test/pg_regress/Tests/numeric.stable.out Branch: default Log Message:
Resolved the computation overflow errors (by using a smaller base numeric datatype) diffs (truncated from 527 to 300 lines): diff --git a/sql/test/pg_regress/Tests/numeric.sql b/sql/test/pg_regress/Tests/numeric.sql --- a/sql/test/pg_regress/Tests/numeric.sql +++ b/sql/test/pg_regress/Tests/numeric.sql @@ -2,7 +2,7 @@ -- NUMERIC -- -CREATE TABLE num_data (id integer, val numeric(38,20)); +CREATE TABLE num_data (id integer, val numeric(18,9)); CREATE TABLE num_exp_add (id1 integer, id2 integer, expected numeric(38,20)); CREATE TABLE num_exp_sub (id1 integer, id2 integer, expected numeric(38,20)); CREATE TABLE num_exp_div (id1 integer, id2 integer, expected numeric(38,20)); @@ -543,7 +543,7 @@ SELECT t1.id1, t1.id2, t1.result, t2.exp DELETE FROM num_result; INSERT INTO num_result SELECT t1.id, t2.id, round(t1.val - t2.val, 40) FROM num_data t1, num_data t2; -SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 40) +SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 40) as expected FROM num_result t1, num_exp_sub t2 WHERE t1.id1 = t2.id1 AND t1.id2 = t2.id2 AND t1.result <> round(t2.expected, 40); diff --git a/sql/test/pg_regress/Tests/numeric.stable.err b/sql/test/pg_regress/Tests/numeric.stable.err --- a/sql/test/pg_regress/Tests/numeric.stable.err +++ b/sql/test/pg_regress/Tests/numeric.stable.err @@ -30,163 +30,145 @@ stderr of test 'numeric` in directory 's # 12:56:25 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-27974" "--port=31190" # 12:56:25 > -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (0,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (0,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (1,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (1,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (2,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (2,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (3,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (3,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (4,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (4,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (5,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (5,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (6,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (6,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (7,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (7,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (8,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (8,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (9,0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_div VALUES (9,1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_ln VALUES (0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_ln VALUES (1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_log10 VALUES (0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_log10 VALUES (1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_power_10_ln VALUES (0,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_power_10_ln VALUES (1,'NaN'); ERROR = !decimal (NaN) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO num_exp_power_10_ln VALUES (7,'1716699575118597095.42330819910640247627'); ERROR = !decimal (1716699575118597095.42330819910640247627) doesn't have format (38.20) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 20) as expected FROM num_result t1, num_exp_add t2 WHERE t1.id1 = t2.id1 AND t1.id2 = t2.id2 AND t1.result <> round(t2.expected, 20); ERROR = !too many digits (19 > 8) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 -QUERY = SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 40) +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 +QUERY = SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 40) as expected FROM num_result t1, num_exp_sub t2 WHERE t1.id1 = t2.id1 AND t1.id2 = t2.id2 AND t1.result <> round(t2.expected, 40); ERROR = !too many digits (19 > 8) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 -QUERY = INSERT INTO num_result SELECT t1.id, t2.id, t1.val * t2.val - FROM num_data t1, num_data t2 ORDER BY 1, 2; -ERROR = !overflow in calculation 779946141190000021145124864*-3433849221539704684798803968. -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 -QUERY = INSERT INTO num_result SELECT t1.id, t2.id, round(t1.val * t2.val, 30) - FROM num_data t1, num_data t2 ORDER BY 1, 2; -ERROR = !overflow in calculation 779946141190000021145124864*-3433849221539704684798803968. -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 30) as expected FROM num_result t1, num_exp_mul t2 WHERE t1.id1 = t2.id1 AND t1.id2 = t2.id2 AND t1.result <> round(t2.expected, 30); ERROR = !too many digits (19 > 8) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 -QUERY = INSERT INTO num_result SELECT t1.id, t2.id, t1.val / t2.val - FROM num_data t1, num_data t2 - WHERE t2.val <> '0.0'; -ERROR = !too many digits (47 > 39) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 -QUERY = INSERT INTO num_result SELECT t1.id, t2.id, round(t1.val / t2.val, 80) - FROM num_data t1, num_data t2 - WHERE t2.val <> '0.0'; -ERROR = !too many digits (45 > 39) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT t1.id1, t1.id2, t1.result, round(t2.expected, 80) as expected FROM num_result t1, num_exp_div t2 WHERE t1.id1 = t2.id1 AND t1.id2 = t2.id2 AND t1.result <> round(t2.expected, 80); ERROR = !too many digits (19 > 8) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT STDDEV(val) FROM num_data; ERROR = !SELECT: no such unary operator 'stddev(decimal)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT VARIANCE(val) FROM num_data; ERROR = !SELECT: no such unary operator 'variance(decimal)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO fract_only VALUES (3, '1.0'); -- should fail ERROR = !decimal (1.0) doesn't have format (4.4) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = INSERT INTO fract_only VALUES (6, '0.99995'); -- should fail ERROR = !rounding of decimal (0.99995) doesn't fit format (4.4) -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT a, ceil(a), ceiling(a), floor(a), round(a) FROM ceil_floor_round; ERROR = !SELECT: no such unary operator 'round(decimal)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT a, round(a) FROM ceil_floor_round; ERROR = !SELECT: no such unary operator 'round(decimal)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT width_bucket(NULL, NULL, NULL, NULL); ERROR = !SELECT: no such operator 'width_bucket' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT width_bucket(5.0, 3.0, 4.0, 0); ERROR = !SELECT: no such operator 'width_bucket' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT width_bucket(5.0, 3.0, 4.0, -5); ERROR = !SELECT: no such operator 'width_bucket' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT width_bucket(3.0, 3.0, 3.0, 888); ERROR = !SELECT: no such operator 'width_bucket' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = COPY width_bucket_test FROM stdin; ERROR = !syntax error, unexpected IDENT, expecting BINARY or INTO in: "copy width_bucket_test" -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = -5.2 -0.0000000000001 0.0000000000001 @@ -218,137 +200,137 @@ QUERY = -5.2 width_bucket(operand, -25, 25, 10) AS wb_5 FROM width_bucket_test; ERROR = !syntax error, unexpected '-' in: "-" -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_1, to_char(val, '9G999G999G999G999G999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_2, to_char(val, '9G999G999G999G999G999D999G999G999G999G999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_3, to_char(val, '9999999999999999.999999999999999PR') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_4, to_char(val, '9999999999999999.999999999999999S') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_5, to_char(val, 'MI9999999999999999.999999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_6, to_char(val, 'FMS9999999999999999.999999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_7, to_char(val, 'FM9999999999999999.999999999999999THPR') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_8, to_char(val, 'SG9999999999999999.999999999999999th') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_9, to_char(val, '0999999999999999.999999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_10, to_char(val, 'S0999999999999999.999999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_11, to_char(val, 'FM0999999999999999.999999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_12, to_char(val, 'FM9999999999999999.099999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_13, to_char(val, 'FM9999999999990999.990999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_14, to_char(val, 'FM0999999999999999.999909999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' -MAPI = (monetdb) /var/tmp/mtest-18336/.s.monetdb.30933 +MAPI = (monetdb) /var/tmp/mtest-26884/.s.monetdb.34576 QUERY = SELECT '' AS to_char_15, to_char(val, 'FM9999999990999999.099999999999999') FROM num_data; ERROR = !SELECT: no such binary operator 'to_char(decimal,char)' _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list