Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-3587

RexBuilder may lose decimal fraction for creating literal with DECIMAL type

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.22.0
    • None

    Description

      this test

      // 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"));
      }
      

      fails with message

      java.lang.AssertionError: 
      Expected: is "12.3"
           but: was "12"
      Expected :12.3
      Actual   :12
      

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            yanlin-Lynn Wang Yanlin
            yanlin-Lynn Wang Yanlin
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 50m
                50m

                Slack

                  Issue deployment