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