[ https://issues.apache.org/jira/browse/HIVE-15291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15708409#comment-15708409 ]
Dhiraj Kumar commented on HIVE-15291: ------------------------------------- Added the .q test. > 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)