[
https://issues.apache.org/jira/browse/DRILL-261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jacques Nadeau resolved DRILL-261.
----------------------------------
Resolution: Fixed
> Implement support for DECIMAL type
> ----------------------------------
>
> Key: DRILL-261
> URL: https://issues.apache.org/jira/browse/DRILL-261
> Project: Apache Drill
> Issue Type: Task
> Reporter: Ben Becker
>
> Many functions and operators in Drill need to handle decimal types. This may
> mean two formats; an expanded format for use during processing, and a compact
> format for efficient representation on disk.
> Postgres' compact (on-disk) format for the decimal types NumericShort and
> NumericLong generally fit into a 64 bits:
> {noformat}
> 1 bit for sign
> 6 bits for scale in NumericShort; 16 bits in NumericLong
> 7 bits for weight in NumericShort; 16 bits in NumericLong
> 16 bits for the digits
> {noformat}
> The expanded (in-memory) format in Postgres is defined in {{numeric.c}} as
> follows:
> {noformat}
> typedef struct NumericVar
> {
> int ndigits; /* # of digits in digits[] - can be 0! */
> int weight; /* weight of first digit */
> int sign; /* NUMERIC_POS, NUMERIC_NEG, or NUMERIC_NAN */
> int dscale; /* display scale */
> NumericDigit *buf; /* start of palloc'd space for digits[] */
> NumericDigit *digits; /* base-NBASE digits */
> } NumericVar;
> {noformat}
> Additional notes and links to related published papers are in the
> aforementioned source file.
--
This message was sent by Atlassian JIRA
(v6.2#6252)