[ 
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)

Reply via email to