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

Loss of precision when sending a decimal number via the remote JSON service

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.4.0-incubating
    • None
    • None
    • Patch

    Description

      When sending for example

      {"type":"NUMBER","value":"333.333"}

      to the "fetch" request of the remote JSON service, the exact value will not be kept and after one UPSERT/SELECT roundtrip in Phoenix I will get 333.332 back.

      Interestingly enough, this worked in Calcite 1.2 before the TypedValue class was introduced, but I think that was working just by accident.

      The attached patch changes the Jackson object mapper to decode any JSON float to BigDecimal, unless the code explicitly asks for Float/Double. I think that shouldn't break anything and it solves this problem.

      Attachments

        Activity

          People

            julianhyde Julian Hyde
            lukaslalinsky Lukas Lalinsky
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: