Hello Tim Armstrong, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/7910 to look at the new patch set (#5). Change subject: IMPALA-5867: Fix bugs parsing 2-digit year ...................................................................... IMPALA-5867: Fix bugs parsing 2-digit year This patch fixes several bugs parsing 1 or 2-digit year formats. Existing code is broken in several ways: 1. With 1 or 2-digit year format and month/day missing, ParseDateTime() throws an uncaught exception. 2. If now() is 02/29 in a leap year but (now() - 80 years) isn't, DateTimeFormatContext::SetCenturyBreak() throws an uncaught exception. 3. If the year parsed is 02/29 in a leap year but it isn't a leap year 100 years ago, TimestampParser::Parse() will consider the date as invalid though it isn't. This patch fixes above bugs and adds a few test cases in be/src/runtime/timestamp-test.cc The behaviors after change is: 1. A date without month or day is considered invalid. This is a pre-existing difference from Hive, which defaults missing month/day to 01/01. 2. Century break would be set to 02/28 80 years ago. 3. If parsed date is 00/02/29 but 1900/02/29 does not exist, treat it as 03/01 when comparing to century break. Change-Id: Ia4f430caea88b6c33f8050a1984ee0ee32ecb0a1 --- M be/src/runtime/timestamp-parse-util.cc M be/src/runtime/timestamp-parse-util.h M be/src/runtime/timestamp-test.cc 3 files changed, 104 insertions(+), 50 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/10/7910/5 -- To view, visit http://gerrit.cloudera.org:8080/7910 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia4f430caea88b6c33f8050a1984ee0ee32ecb0a1 Gerrit-PatchSet: 5 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Tianyi Wang <tw...@cloudera.com> Gerrit-Reviewer: Matthew Jacobs <m...@cloudera.com> Gerrit-Reviewer: Tianyi Wang <tw...@cloudera.com> Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>