[
https://issues.apache.org/jira/browse/CALCITE-3587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16995452#comment-16995452
]
Danny Chen commented on CALCITE-3587:
-------------------------------------
Did you notice that there is a method "RexBuilder#makeExactLiteral(BigDecimal"
[1], and the method you use is protect scope which means it is not a public API
?
[1]
https://github.com/apache/calcite/blob/28d5f6f4ad770cd505ba0e5506b7559879600b4e/core/src/main/java/org/apache/calcite/rex/RexBuilder.java#L979
> RexBuilder may lose decimal fraction for creating literal with DECIMAL type
> ---------------------------------------------------------------------------
>
> Key: CALCITE-3587
> URL: https://issues.apache.org/jira/browse/CALCITE-3587
> Project: Calcite
> Issue Type: Bug
> Reporter: Wang Yanlin
> Assignee: Wang Yanlin
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> this test
> {code:java}
> // RexBuilderTest
> @Test public void testDecimal() {
> final RelDataTypeFactory typeFactory =
> new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
> final RelDataType type = typeFactory.createSqlType(SqlTypeName.DECIMAL, 4, 2);
> final RexBuilder builder = new RexBuilder(typeFactory);
> final RexLiteral literal = (RexLiteral) builder.makeLiteral(12.3, type,
> false);
> Comparable value = literal.getValue();
> assertThat(value.toString(), is("12.3"));
> }
> {code}
> fails with message
> {code:java}
> java.lang.AssertionError:
> Expected: is "12.3"
> but: was "12"
> Expected :12.3
> Actual :12
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)