[
https://issues.apache.org/jira/browse/DRILL-423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Parth Chandra updated DRILL-423:
--------------------------------
Attachment: drillclient-impl-reviewed-final.diff
C++ client. Reviewed and approved
> Need a C++ client for Drill
> ---------------------------
>
> Key: DRILL-423
> URL: https://issues.apache.org/jira/browse/DRILL-423
> Project: Apache Drill
> Issue Type: New Feature
> Reporter: Parth Chandra
> Attachments: drillclient-impl-reviewed-final.diff
>
>
> WE need a C++ client for drill that can be used to write an ODBC driver.
> The API should include
> 1) Connect
> 2) Handshake
> 3) Execute Query
> 4) Fetch Results
> The API needs to provide interfaces to decode the RPC messages into
> RecordBatches and ValueVectors and provide accessors to get values from
> ValueVectors.
> Initial implementation of the ValueVectors interface will probably not
> support mutators for ValueVectors.
> Not all datatypes will be supported. In particular MAP and REPEATMAP will not
> be supported. Nullable and repeat types will be supported. The following is
> the list of datatypes for which support is planned (defined in Types.proto)
> {code}
> LATE = 0; // late binding type
> MAP = 1; // an empty map column. Useful for conceptual setup.
> Children listed within here
> REPEATMAP = 2; // a repeated map column (means that multiple children
> sit below this)
> TINYINT = 3; // single byte signed integer
> SMALLINT = 4; // two byte signed integer
> INT = 5; // four byte signed integer
> BIGINT = 6; // eight byte signed integer
> DECIMAL9 = 7; // a decimal supporting precision between 1 and 9
> DECIMAL18 = 8; // a decimal supporting precision between 10 and 18
> DECIMAL28SPARSE = 9; // a decimal supporting precision between 19 and
> 28
> DECIMAL38SPARSE = 10; // a decimal supporting precision between 29 and
> 38
> MONEY = 11; // signed decimal with two digit precision
> DATE = 12; // days since 4713bc
> TIME = 13; // time in micros before or after 2000/1/1
> TIMETZ = 14; // time in micros before or after 2000/1/1 with timezone
> TIMESTAMPTZ = 15; // unix epoch time in millis
> TIMESTAMP = 16; // TBD
> INTERVAL = 17; // TBD
> FLOAT4 = 18; // 4 byte ieee 754
> FLOAT8 = 19; // 8 byte ieee 754
> BIT = 20; // single bit value (boolean)
> FIXEDCHAR = 21; // utf8 fixed length string, padded with spaces
> FIXED16CHAR = 22;
> FIXEDBINARY = 23; // fixed length binary, padded with 0 bytes
> VARCHAR = 24; // utf8 variable length string
> VAR16CHAR = 25; // utf16 variable length string
> VARBINARY = 26; // variable length binary
> UINT1 = 29; // unsigned 1 byte integer
> UINT2 = 30; // unsigned 2 byte integer
> UINT4 = 31; // unsigned 4 byte integer
> UINT8 = 32; // unsigned 8 byte integer
> DECIMAL28DENSE = 33; // dense decimal representation, supporting
> precision between 19 and 28
> DECIMAL38DENSE = 34; // dense decimal representation, supporting
> precision between 28 and 38
> NULL = 37; // a value of unknown type (e.g. a missing reference).
> INTERVALYEAR = 38; // Interval type specifying YEAR to MONTH
> INTERVALDAY = 39; // Interval type specifying DAY to SECONDS
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)