[
https://issues.apache.org/jira/browse/SPARK-28024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17836706#comment-17836706
]
Nicholas Chammas commented on SPARK-28024:
------------------------------------------
I've just retried cases 2-4 on master with ANSI mode enabled, and Spark's
behavior appears to be the same as when I last checked it in February.
I also ran those same cases against PostgreSQL 16. I couldn't replicate the
output for Case 4, and I believe there was a mistake in the original
description of that case where the sign was flipped. So I've adjusted the sign
accordingly and shown Spark and Postgres's behavior side-by-side.
Here is the original Case 4 with the negative sign:
{code:sql}
spark-sql (default)> select exp(-1.2345678901234E200);
0.0
postgres=# select exp(-1.2345678901234E200);
0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
{code}
So I don't think there is a problem there. With a positive sign, the behavior
is different as shown in the ticket description above.
> Incorrect numeric values when out of range
> ------------------------------------------
>
> Key: SPARK-28024
> URL: https://issues.apache.org/jira/browse/SPARK-28024
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 2.0.2, 2.1.3, 2.2.3, 2.3.4, 2.4.4, 3.0.0
> Reporter: Yuming Wang
> Priority: Major
> Labels: correctness
> Attachments: SPARK-28024.png
>
>
> As compared to PostgreSQL 16.
> Case 1:
> {code:sql}
> select tinyint(128) * tinyint(2); -- 0
> select smallint(2147483647) * smallint(2); -- -2
> select int(2147483647) * int(2); -- -2
> SELECT smallint((-32768)) * smallint(-1); -- -32768
> {code}
> Case 2:
> {code:sql}
> spark-sql> select cast('10e-70' as float), cast('-10e-70' as float);
> 0.0 -0.0
> postgres=# select cast('10e-70' as float), cast('-10e-70' as float);
> float8 | float8
> --------+--------
> 1e-69 | -1e-69 {code}
> Case 3:
> {code:sql}
> spark-sql> select cast('10e-400' as double), cast('-10e-400' as double);
> 0.0 -0.0
> postgres=# select cast('10e-400' as double precision), cast('-10e-400' as
> double precision);
> ERROR: "10e-400" is out of range for type double precision
> LINE 1: select cast('10e-400' as double precision), cast('-10e-400' ...
> ^ {code}
> Case 4:
> {code:sql}
> spark-sql (default)> select exp(1.2345678901234E200);
> Infinity
> postgres=# select exp(1.2345678901234E200);
> ERROR: value overflows numeric format {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]