[
https://issues.apache.org/jira/browse/CALCITE-4608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17351345#comment-17351345
]
Julian Hyde commented on CALCITE-4608:
--------------------------------------
That method, {{SqlNumericLiteral.isInteger()}} is public but has no javadoc, is
not tested, is not used anywhere in the Calcite code base, and has never been
used in the Calcite code base since 2012.
I'm not even sure what it should do. If I write "1.00", is that an integer? If
I write "1E2", is that an integer? We do need answers to those questions - see
{{SqlConformance.isGroupByOrdinal()}} - but the method, as it stands, does not
answer them.
I would prefer that we deprecate the method. Failing that, add javadoc and test
it.
> Fix NullPointerException in SqlNumericLiteral.isInteger()
> ---------------------------------------------------------
>
> Key: CALCITE-4608
> URL: https://issues.apache.org/jira/browse/CALCITE-4608
> Project: Calcite
> Issue Type: Bug
> Affects Versions: 1.26.0
> Reporter: Amrish Lal
> Assignee: Ruben Q L
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.27.0
>
> Time Spent: 1h 50m
> Remaining Estimate: 0h
>
> In 1.26, a NullPointerException is thrown in SqlNumericLiteral.isInteger(),
> due to "this.scale" being null. This can be reproduced by compiling SQL
> statement "SELECT * FROM testTable WHERE floatColumn >
> 1.7976931348623157E308".
> A null check was added through CALCITE-4199 to fix the NullPointerException;
> however, the root cause is that scale and precision are not being properly
> set in {{SqlLiteral.createApproxNumeric}} function which is called to handle
> {{APPROX_NUMERIC_LITERAL}} token.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)