You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jacques Nadeau (JIRA)" <ji...@apache.org> on 2014/05/29 17:46:11 UTC
[jira] [Resolved] (DRILL-262) Implement support for DATETIME and
TIMESTAMP types
[ https://issues.apache.org/jira/browse/DRILL-262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jacques Nadeau resolved DRILL-262.
----------------------------------
Resolution: Fixed
> Implement support for DATETIME and TIMESTAMP types
> --------------------------------------------------
>
> Key: DRILL-262
> URL: https://issues.apache.org/jira/browse/DRILL-262
> Project: Apache Drill
> Issue Type: Task
> Reporter: Ben Becker
>
> Many functions and operators in Drill need to handle DATETIME and TIMESTAMP types. This may require two formats; the most important of which is an expanded format for use during processing:
> {code}
> struct pg_tm
> {
> int tm_sec;
> int tm_min;
> int tm_hour;
> int tm_mday;
> int tm_mon; /* origin 0, not 1 */
> int tm_year; /* relative to 1900 */
> int tm_wday;
> int tm_yday;
> int tm_isdst;
> long int tm_gmtoff;
> const char *tm_zone;
> };
> {code}
> Note that:
> - Fractions of seconds are stored in an auxiliary 32-bit integer (thus internal time functions usually take both pg_tm and fsec_t arguments).
> - Resolution is guaranteed to the microsecond, with a date range of 4713 BC - 294276 AD.
> - MySQL stores datetime values as simple unix time format (second resolution, 1970 - 2038 date range)
> In Postgres, the TIMESTAMP type is encoded into 64 bits for storage as follows:
> - The date portion is packed in the upper 28 bits as the delta of years, months and days since postgres epoch (1/1/2000).
> - The time portion is packed in the lower 36 bits as hours, minutes, seconds and fsecs (fractions of a second).
> - The specific encoding logic can be found in {{src/backend/utils/adt/timestamp.c}} in {{tm2timestamp()}}, {{date2j()}} and {{time2t()}}.
--
This message was sent by Atlassian JIRA
(v6.2#6252)