[ 
https://issues.apache.org/jira/browse/DRILL-423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14003792#comment-14003792
 ] 

Parth Chandra commented on DRILL-423:
-------------------------------------

ReviewBoard link: https://reviews.apache.org/r/21335/

> 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-updated.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)

Reply via email to