You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Remus Rusanu (JIRA)" <ji...@apache.org> on 2017/03/10 12:57:04 UTC
[jira] [Created] (CALCITE-1690) Calcite timestamp literals cannot
express precision above millisecond, TIMESTAMP(3)
Remus Rusanu created CALCITE-1690:
-------------------------------------
Summary: Calcite timestamp literals cannot express precision above millisecond, TIMESTAMP(3)
Key: CALCITE-1690
URL: https://issues.apache.org/jira/browse/CALCITE-1690
Project: Calcite
Issue Type: Bug
Reporter: Remus Rusanu
Assignee: Remus Rusanu
{{RexBuilder.makeTimestampLiteral}} accepts the TS as a Java Calendar instance. Calendar type has only ms precision, thus types like {{TIMESTMAP(9)}} cannot be represented.
This results in incorrect results in Hive due to constant reduction:
{noformat}
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
{noformat}
Note how with CBO enabled the qualified row is missed. The plan shows that the constant was truncated to ms.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)