----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/70841/#review215966 -----------------------------------------------------------
Ship it! Ship It! - Marta Kuczora On June 14, 2019, 8:30 a.m., Karen Coppage wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/70841/ > ----------------------------------------------------------- > > (Updated June 14, 2019, 8:30 a.m.) > > > Review request for hive, Gabor Kaszab and Marta Kuczora. > > > Bugs: HIVE-21576 > https://issues.apache.org/jira/browse/HIVE-21576 > > > Repository: hive-git > > > Description > ------- > > Timestamp and date handling and formatting are currently implemented in Hive > using (sometimes very specific) Java SimpleDateFormat patterns with both > SimpleDateFormat and java.time.DateTimeFormatter, however, these patterns are > not what most standard SQL systems use. For example see Vertica, Netezza, > Oracle, and PostgreSQL. > > **Cast...Format** > > SQL:2016 introduced the FORMAT clause for CAST which is the standard way to > do string <-> datetime conversions > > For example: > > CAST(<datetime> AS <char string type> [FORMAT <template>]) > CAST(<char string> AS <datetime type> [FORMAT <template>]) > cast(dt as string format 'DD-MM-YYYY') > cast('01-05-2017' as date format 'DD-MM-YYYY') > Stuff like this wouldn't need to happen. > > **New SQL:2016 Patterns** > > Some conflicting examples: > > SimpleDateTime: 'MMM dd, yyyy HH:mm:ss' > SQL:2016: 'mon dd, yyyy hh24:mi:ss' > > SimpleDateTime: 'yyyy-MM-dd HH:mm:ss' > SQL:2016: 'yyyy-mm-dd hh24:mi:ss' > > For the full list of patterns, see subsection "Proposal for Impala’s datetime > patterns" in this doc: > https://docs.google.com/document/d/1V7k6-lrPGW7_uhqM-FhKl3QsxwCRy69v2KIxPsGjc1k/edit > > **Continued usage of SimpleDateFormat patterns** > > [Update] This feature will NOT be behind a flag in order to keep things > simple for users. Existing Hive functions that accept SimpleDateFormat > patterns as input will continue to do so. Please let me know if you disagree > with this decision. These are the functions (afaik) affected: > > from_unixtime(bigint unixtime[, string format]) > unix_timestamp(string date, string pattern) > to_unix_timestamp(date[, pattern]) > add_months(string start_date, int num_months, output_date_format) > date_format(date/timestamp/string ts, string fmt) > This description is a heavily edited description of IMPALA-4018. > > > Diffs > ----- > > > common/src/java/org/apache/hadoop/hive/common/format/datetime/HiveSqlDateTimeFormatter.java > PRE-CREATION > > common/src/java/org/apache/hadoop/hive/common/format/datetime/package-info.java > PRE-CREATION > > common/src/test/org/apache/hadoop/hive/common/format/datetime/TestHiveSqlDateTimeFormatter.java > PRE-CREATION > > common/src/test/org/apache/hadoop/hive/common/format/datetime/package-info.java > PRE-CREATION > ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java d08b05fb68 > ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g 58fe0cd32e > ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCastFormat.java > PRE-CREATION > > ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFCastFormat.java > PRE-CREATION > ql/src/test/queries/clientpositive/cast_datetime_with_sql_2016_format.q > PRE-CREATION > ql/src/test/results/clientpositive/cast_datetime_with_sql_2016_format.q.out > PRE-CREATION > ql/src/test/results/clientpositive/show_functions.q.out 374e9c4fce > > > Diff: https://reviews.apache.org/r/70841/diff/8/ > > > Testing > ------- > > > Thanks, > > Karen Coppage > >