Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-4970

Wrong results when casting double to bigint or int

    XMLWordPrintableJSON

    Details

      Description

      This query returns the wrong result

      0: jdbc:drill:zk=10.10.100.186:5181/drill/rho> select count(\*) from test_table where (int_id > -3025 and bigint_id <= -256) or (cast(double_id as bigint) >= -255 and double_id <= -5);
      +---------+
      | EXPR$0  |
      +---------+
      | 2769    |
      +---------+
      

      Without the cast, it returns the correct result:

      0: jdbc:drill:zk=10.10.100.186:5181/drill/rho> select count(\*) from test_table where (int_id > -3025 and bigint_id <= -256) or (double_id >= -255 and double_id <= -5);
      +---------+
      | EXPR$0  |
      +---------+
      | 3020    |
      +---------+
      

      By itself, the result is also correct:

      0: jdbc:drill:zk=10.10.100.186:5181/drill/rho> select count(\*) from test_table where (cast(double_id as bigint) >= -255 and double_id <= -5);
      +---------+
      | EXPR$0  |
      +---------+
      | 251     |
      +---------+
      

        Attachments

        1. test_table
          375 kB
          Robert Hou

          Issue Links

            Activity

              People

              • Assignee:
                vvysotskyi Volodymyr Vysotskyi
                Reporter:
                rhou Robert Hou
                Reviewer:
                Chun Chang
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: