[ 
https://issues.apache.org/jira/browse/HIVE-15291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15706200#comment-15706200
 ] 

Jason Dere commented on HIVE-15291:
-----------------------------------

Can you add a .q test so we can see this fix work in a SQL statement (such as 
the example you give in description)? Would be good to have a test to confirm 
your use case is fixed.

> 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
>
>
> 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)

Reply via email to