[ 
https://issues.apache.org/jira/browse/IMPALA-12035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17840945#comment-17840945
 ] 

ASF subversion and git services commented on IMPALA-12035:
----------------------------------------------------------

Commit 4f033c7750e711c498fb80ff851d4dae0eed55ce in impala's branch 
refs/heads/master from Daniel Becker
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=4f033c775 ]

IMPALA-12950: Improve error message in case of out-of-range numeric conversions

IMPALA-12035 introduced checks for numeric conversions that are unsafe
and can fail (if the target type cannot store the value, the behaviour
is undefined):
 - from floating-point types to integer types
 - from double to float

However, it can be difficult to trace which part of the query caused
this based on the error message. This change adds the source type, the
destination type and the value to be converted to the error message.
Unfortunately, at this point in the BE, the original SQL is not
available, so we cannot reference that.

Testing:
 - extended existing tests in expr-test.cc.

Change-Id: Ieeed52e25f155818c35c11a8a6821708476ffb32
Reviewed-on: http://gerrit.cloudera.org:8080/21331
Reviewed-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>


> Impala accepts very big numbers but fails to store them correctly
> -----------------------------------------------------------------
>
>                 Key: IMPALA-12035
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12035
>             Project: IMPALA
>          Issue Type: Bug
>            Reporter: Bakai Ádám
>            Assignee: Daniel Becker
>            Priority: Major
>             Fix For: Impala 4.3.0
>
>
> I tried  to insert rows very big bigints, and it worked as expected with big 
> integers (error message, no new row stored), but it didn’t work as expected 
> with ridiculously big integers( no error message, stored incorrect value). 
> Here are the commands used:
> {code:java}
> drop TABLE my_first_table2;
> CREATE TABLE my_first_table2
> (
>   id BIGINT,
>   name STRING,
>   PRIMARY KEY(id)
> );
> INSERT INTO my_first_table2 VALUES (cast(9 as BIGINT), "sarah");
> -- this works just fine as expected
> INSERT INTO my_first_table2 VALUES (cast(9999999999999999999999 as BIGINT), 
> "sarah");
> -- ERROR: UDF ERROR: Decimal expression overflowed which is expected since it 
> is over bigint max value (source: 
> https://impala.apache.org/docs/build/plain-html/topics/impala_bigint.html#:~:text=Range%3A%20%2D9223372036854775808%20..,9223372036854775807.
>  )
> INSERT INTO my_first_table2 VALUES 
> (cast(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
>  as BIGINT), "sarah");
> -- this succeeds and doesn't throw the same error as the previous command 
> which is concerning
> select * from my_first_table2;
> -- there are two rows in the table, and the id is incorrect in one of them  
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to