David Ribeiro Alves has uploaded a new patch set (#4). Change subject: [timestamp] Add a new TimestampValue class to support the TIMESTAMP_NANOS type ......................................................................
[timestamp] Add a new TimestampValue class to support the TIMESTAMP_NANOS type This patch adds a new TimestampValue class that will be used both by the client and the server to represent an instance of the new TIMESTAMP_NANOS type. The type mimics Impala's TIMESTAMP and is supposed to be memory-format compatible - Meaning one type can be cast to the other and no conversion is required. TimestampValue is very strict about the ranges that it accepts, both when building from "seconds + nanos offset since the unix epoch" and from the "date + time" representations. This to make sure that we don't go into unknown territory when using boost's/libc's time conversion functions. A test is provided that provides good coverage of these edge cases. Future patched will wire this class into the client and the tablet server. Although the format is similar to Impala's it does require that a couple of changes are made in the Impala side to be exacly compatible: - TimestampValue is packed so that it occupies only the stricly required space (12 vs. 16 bytes). Impala's TimestampValue will also have to be packed. - TimestampValue has the 'date_' component first as to make sure that the most significant bits come first. Impala's TimestampValue has the fields reversed. While not a bit deal it makes sense to fix it there since the other TIMESTAMP class (in the udf module) shares kudu's TimestampValue field order. Change-Id: I5a0763d3a28501b7f9fb0b94552e3227bd5b38cc --- M src/kudu/client/CMakeLists.txt M src/kudu/common/CMakeLists.txt A src/kudu/common/timestamp_value-test.cc A src/kudu/common/timestamp_value.cc A src/kudu/common/timestamp_value.h 5 files changed, 697 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/65/5965/4 -- To view, visit http://gerrit.cloudera.org:8080/5965 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5a0763d3a28501b7f9fb0b94552e3227bd5b38cc Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: David Ribeiro Alves <dral...@apache.org> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: David Ribeiro Alves <dral...@apache.org> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>