[ https://issues.apache.org/jira/browse/HIVE-10366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Traynham updated HIVE-10366: --------------------------------- Description: Using multiple date functions inside a named struct results in incorrect values. The first date function is correct. All subsequent date functions receive the value of the first date function, unless the function has a different valued argument. As shown below, the 3rd query returns an incorrect value for `month(datetime)`. A not so pleasant workaround is to substr datetime resulting in a different value (4th query). > DESCRIBE my_datamart; OK datetime string > SELECT datetime FROM my_datamart LIMIT 1; OK 2015-04-14T00:00:00 > SELECT named_struct('dayofmonth', day(datetime), 'monthofyear', > month(datetime)), day(datetime), month(datetime) FROM my_datamart LIMIT 1; OK {"dayofmonth":14,"monthofyear":14} 14 4 > SELECT named_struct('dayofmonth', day(datetime), 'monthofyear', > month(substr(datetime, 0, 10))), day(datetime), month(datetime) FROM > my_datamart LIMIT 1; OK {"dayofmonth":14,"monthofyear":4} 14 4 I havn't tried all the other date functions, but this is happens with weekofyear as well. Looks like a caching issue... was: Using multiple date functions inside a named struct results in incorrect values. The first date function is correct. All subsequent date functions receive the value of the first date function, unless the function has a different valued argument. As shown below, the 3rd query returns an incorrect value for `month(datetime)`. A not so pleasant workaround is to substr datetime resulting in a different value (4th query). > DESCRIBE my_datamart; OK datetime string > SELECT datetime FROM my_datamart LIMIT 1; OK 2015-04-14T00:00:00 > SELECT named_struct('dayofmonth', day(datetime), 'monthofyear', > month(datetime)), day(datetime), month(datetime) FROM my_datamart LIMIT 1; OK {"dayofmonth":14,"monthofyear":14} 14 4 > SELECT named_struct('dayofmonth', day(datetime), 'monthofyear', > month(substr(datetime, 0, 10))), day(datetime), month(datetime) FROM > my_datamart LIMIT 1; OK {"dayofmonth":14,"monthofyear":4} 14 4 I havn't tried all the other date functions, but this is happens with weekofyear as well. Looks like a caching issue... > Multiple Date Functions inside Named Struct return the wrong values > ------------------------------------------------------------------- > > Key: HIVE-10366 > URL: https://issues.apache.org/jira/browse/HIVE-10366 > Project: Hive > Issue Type: Bug > Components: Hive > Affects Versions: 0.14.0 > Reporter: Matt Traynham > > Using multiple date functions inside a named struct results in incorrect > values. The first date function is correct. All subsequent date functions > receive the value of the first date function, unless the function has a > different valued argument. > As shown below, the 3rd query returns an incorrect value for > `month(datetime)`. A not so pleasant workaround is to substr datetime > resulting in a different value (4th query). > > DESCRIBE my_datamart; > OK > datetime string > > SELECT datetime FROM my_datamart LIMIT 1; > OK > 2015-04-14T00:00:00 > > SELECT named_struct('dayofmonth', day(datetime), 'monthofyear', > > month(datetime)), day(datetime), month(datetime) FROM my_datamart LIMIT 1; > OK > {"dayofmonth":14,"monthofyear":14} 14 4 > > SELECT named_struct('dayofmonth', day(datetime), 'monthofyear', > > month(substr(datetime, 0, 10))), day(datetime), month(datetime) FROM > > my_datamart LIMIT 1; > OK > {"dayofmonth":14,"monthofyear":4} 14 4 > I havn't tried all the other date functions, but this is happens with > weekofyear as well. Looks like a caching issue... -- This message was sent by Atlassian JIRA (v6.3.4#6332)