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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • avatica-1.10.0, 1.13.0
    • None
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: