diff options
author | Pavan Deolasee | 2016-08-12 09:49:46 +0000 |
---|---|---|
committer | Pavan Deolasee | 2016-10-18 10:07:43 +0000 |
commit | d3e378c95cbc73b8a30994599d73ec4add902c91 (patch) | |
tree | e6f2d32cc3f28a57214ae56a1591a1b64b5b90b5 | |
parent | 82619b7a461aa9481a01d9b2610a6aa90f1d01e6 (diff) |
Correct aggregation function for "money" data type.
Per report by Sergio Hernández MartÃnez
-rw-r--r-- | src/include/catalog/pg_aggregate.h | 2 | ||||
-rw-r--r-- | src/test/regress/expected/money.out | 23 | ||||
-rw-r--r-- | src/test/regress/sql/money.sql | 15 |
3 files changed, 39 insertions, 1 deletions
diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h index 6d8ade4156..e75ed80311 100644 --- a/src/include/catalog/pg_aggregate.h +++ b/src/include/catalog/pg_aggregate.h @@ -161,7 +161,7 @@ DATA(insert ( 2108 n 0 int4_sum int8_sum_to_int8 - int4_avg_accum int4_avg_a DATA(insert ( 2109 n 0 int2_sum int8_sum_to_int8 - int2_avg_accum int2_avg_accum_inv int2int4_sum f f 0 20 20 0 1016 0 _null_ _null_ "{0,0}" )); DATA(insert ( 2110 n 0 float4pl float4pl - - - - f f 0 700 700 0 0 0 _null_ _null_ _null_ )); DATA(insert ( 2111 n 0 float8pl float8pl - - - - f f 0 701 701 0 0 0 _null_ _null_ _null_ )); -DATA(insert ( 2112 n 0 cash_pl cash_pl - cash_pl cash_mi - f f 0 790 0 790 790 0 _null_ _null_ _null_ )); +DATA(insert ( 2112 n 0 cash_pl cash_pl - cash_pl cash_mi - f f 0 790 790 0 790 0 _null_ _null_ _null_ )); DATA(insert ( 2113 n 0 interval_pl interval_pl - interval_pl interval_mi - f f 0 1186 1186 0 1186 0 _null_ _null_ _null_ )); DATA(insert ( 2114 n 0 numeric_avg_accum numeric_collect numeric_sum numeric_avg_accum numeric_accum_inv numeric_sum f f 0 7018 7018 128 7018 128 _null_ _null_ _null_ )); diff --git a/src/test/regress/expected/money.out b/src/test/regress/expected/money.out index 538235c4cc..52457bace2 100644 --- a/src/test/regress/expected/money.out +++ b/src/test/regress/expected/money.out @@ -248,3 +248,26 @@ SELECT (-12345678901234567)::int8::money; -$12,345,678,901,234,567.00 (1 row) +INSERT INTO money_data VALUES ('$223.459'); +INSERT INTO money_data VALUES ('$323.459'); +INSERT INTO money_data VALUES ('$423.459'); +INSERT INTO money_data VALUES ('$523.459'); +SELECT sum(m) FROM money_data; + sum +----------- + $1,617.30 +(1 row) + +CREATE TABLE money_data2 (a int, m money); +INSERT INTO money_data2 VALUES (1, '$123.459'); +INSERT INTO money_data2 VALUES (2, '$223.459'); +INSERT INTO money_data2 VALUES (3, '$323.459'); +INSERT INTO money_data2 VALUES (4, '$423.459'); +INSERT INTO money_data2 VALUES (5, '$523.459'); +SELECT sum(m) FROM money_data2; + sum +----------- + $1,617.30 +(1 row) + +DROP TABLE money_data2; diff --git a/src/test/regress/sql/money.sql b/src/test/regress/sql/money.sql index 09b9476b70..1aad4f54b0 100644 --- a/src/test/regress/sql/money.sql +++ b/src/test/regress/sql/money.sql @@ -71,3 +71,18 @@ SELECT 1234567890::int4::money; SELECT 12345678901234567::int8::money; SELECT (-1234567890)::int4::money; SELECT (-12345678901234567)::int8::money; + +INSERT INTO money_data VALUES ('$223.459'); +INSERT INTO money_data VALUES ('$323.459'); +INSERT INTO money_data VALUES ('$423.459'); +INSERT INTO money_data VALUES ('$523.459'); +SELECT sum(m) FROM money_data; + +CREATE TABLE money_data2 (a int, m money); +INSERT INTO money_data2 VALUES (1, '$123.459'); +INSERT INTO money_data2 VALUES (2, '$223.459'); +INSERT INTO money_data2 VALUES (3, '$323.459'); +INSERT INTO money_data2 VALUES (4, '$423.459'); +INSERT INTO money_data2 VALUES (5, '$523.459'); +SELECT sum(m) FROM money_data2; +DROP TABLE money_data2; |