----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/6027/ -----------------------------------------------------------
Review request for hive and Ashutosh Chauhan. Description ------- Parameters This function overloads the current DateDiff(expr1, expr2) by adding another parameter to specify the units. It takes 3 parameters. The first two are timestamps, and the formats accepted are: yyyy-MM-dd yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss.milli These are the formats accepted by the current DateDiff(expr1, expr2) function and allow for that consistency. The accepted data types for the timestamp will be Text, TimestampWritable, Date, and String, just as with the already existing function. The third parameter is the units the user wants the response to be in. Acceptable units are: Microsecond Millisecond Second Minute Hour Day Week Month Quarter Year When calculating the difference, the full timestamp is used when the specified unit is hour or smaller (microsecond, millisecond, second, minute, hour), and only the date part is used if the unit is day or larger (day, week, month, quarter, year). If for the smaller units the time is not specified and the format yyyy-MM-dd is used, the time 00:00:00.0 is used. Leap years are accounted for by the Calendar class in Java, which inherently addresses the issue. The assumption is made that all these time parameters are in the same time zone. Return Value The function returns expr1 - expr2 expressed as an int in the units specified. Hive vs. SQL SQL also has a DateDiff() function with some more acceptable units. The order of parameters is different between SQL and Hive. The reason for this is that Hive already has a DateDiff() function with the same first two parameters, and having this order here allows for that consistency within Hive. Example Query hive > DATEDIFF(DATE_FIELD, '2012-06-01', ‘day’); Diagnostic Error Messages Invalid table alias or column name reference Table not found This addresses bug HIVE-3216. https://issues.apache.org/jira/browse/HIVE-3216 Diffs ----- trunk/data/files/datetable.txt PRE-CREATION trunk/data/files/timestamptable.txt PRE-CREATION trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java 1362724 trunk/ql/src/test/queries/clientnegative/udf_datediff.q PRE-CREATION trunk/ql/src/test/queries/clientpositive/udf_datediff.q 1362724 trunk/ql/src/test/results/clientnegative/udf_datediff.q.out PRE-CREATION trunk/ql/src/test/results/clientpositive/udf_datediff.q.out 1362724 Diff: https://reviews.apache.org/r/6027/diff/ Testing ------- yes Thanks, Shefali Vohra