You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Peter Vary (JIRA)" <ji...@apache.org> on 2016/12/01 10:22:58 UTC
[jira] [Commented] (HIVE-15291) Comparison of timestamp fails if
only date part is provided.
[ https://issues.apache.org/jira/browse/HIVE-15291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15711569#comment-15711569 ]
Peter Vary commented on HIVE-15291:
-----------------------------------
Am I right when I think we should remove the "Incompatible change" Hadoop Flag?
Thanks,
Peter
+1 for the patch (non-binding)
> Comparison of timestamp fails if only date part is provided.
> -------------------------------------------------------------
>
> Key: HIVE-15291
> URL: https://issues.apache.org/jira/browse/HIVE-15291
> Project: Hive
> Issue Type: Bug
> Components: Hive, UDF
> Affects Versions: 2.1.0
> Reporter: Dhiraj Kumar
> Assignee: Dhiraj Kumar
> Attachments: HIVE-15291.1.patch, HIVE-15291.2.patch, HIVE-15291.3.patch, HIVE-15291.4.patch
>
>
> Summary : If a query needs to compare two timestamp with one timestamp provided in "YYYY-MM-DD" format, skipping the time part, it returns incorrect result.
> Steps to reproduce :
> 1. Start a hive-cli.
> 2. Fire up the query -> select cast("2016-12-31 12:00:00" as timestamp) > "2016-12-30";
> 3. Expected result : true
> 4. Actual result : NULL
> Detailed description :
> If two primitives of different type needs to compared, a common comparator type is chosen. Prior to 2.1, Common type Text was chosen to compare Timestamp type and Text type.
> In version 2.1, Common type Timestamp is chosen to compare Timestamp type and Text type. This leads to converting Text type (YYYY-MM-DD) into java.sql.Timestamp which throws exception saying the input is not in proper format. The exception is suppressed and a null is returned.
> Code below from org.apache.hadoop.hive.ql.exec.FunctionRegistry
> {code:java}
> if (pgA == PrimitiveGrouping.STRING_GROUP && pgB == PrimitiveGrouping.DATE_GROUP) {
> return b;
> }
> // date/timestamp is higher precedence than String_GROUP
> if (pgB == PrimitiveGrouping.STRING_GROUP && pgA == PrimitiveGrouping.DATE_GROUP) {
> return a;
> }
> {code}
> The bug was introduced in [HIVE-13381|https://issues.apache.org/jira/browse/HIVE-13381]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)