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

Calcite timestamp literals cannot express precision above millisecond, TIMESTAMP(3)

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: avatica-1.10.0, 1.13.0
    • Component/s: None
    • Labels:
      None

      Description

      RexBuilder.makeTimestampLiteral accepts the TS as a Java Calendar instance. Calendar type has only ms precision, thus types like TIMESTAMP(9) cannot be represented.
      This results in incorrect results in Hive due to constant reduction:

      hive> explain select c17 from testjdbcdriverdatatypetbl where c17='2012-04-22 09:00:00.123456789';
      OK
      Plan optimized by CBO.
      
      Stage-0
        Fetch Operator
          limit:-1
          Select Operator [SEL_2]
            Output:["_col0"]
            Filter Operator [FIL_4]
              predicate:(c17 = 2012-04-22 09:00:00.123)
              TableScan [TS_0]
                Output:["c17"]
      
      hive> select c17 from testjdbcdriverdatatypetbl where c17='2012-04-22 09:00:00.123456789';
      OK
      Time taken: 0.687 seconds
      
      hive> set hive.cbo.enable=false;
      hive> explain select c17 from testjdbcdriverdatatypetbl where c17='2012-04-22 09:00:00.123456789';
      OK
      Stage-0
        Fetch Operator
          limit:-1
          Select Operator [SEL_2]
            Output:["_col0"]
            Filter Operator [FIL_4]
              predicate:(c17 = '2012-04-22 09:00:00.123456789')
              TableScan [TS_0]
                Output:["c17"]
      
      hive> select c17 from testjdbcdriverdatatypetbl where c17='2012-04-22 09:00:00.123456789';
      OK
      2012-04-22 09:00:00.123
      

      Note how with CBO enabled the qualified row is missed. The plan shows that the constant was truncated to ms.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                julianhyde Julian Hyde
                Reporter:
                rusanu Remus Rusanu
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: