[
https://issues.apache.org/jira/browse/DRILL-5311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15894920#comment-15894920
]
Laurent Goujon commented on DRILL-5311:
---------------------------------------
Did some testing using querySubmitter:
before:
{noformat}
$ ./querySubmitter type=server connectStr=local=localhost:31010 api=meta
logLevel=trace
Connector:
name:Apache Drill C++ client
version:1.10.0
Server:
name:
version:
Metadata:
all tables are selectable: 0
catalog separator: .
catalog term: catalog
COLLATE support: 0
correlation names: 3
date time functions: CURDATE, CURTIME, NOW, QUARTER
date time literals support: 65278
GROUP BY support: 0
identifier case: 1
identifier quote string: `
max binary literal length: 0
max catalog name length: 1024
max char literal length: 0
max column name length: 1024
max columns in GROUP BY: 1024
max columns in ORDER BY: 0
max columns in SELECT: 0
max cursor name length: 1024
max logical lob size: 0
max row size: 0
max schema name length: 1024
max statement length: 0
max statements: 0
max table name length: 1024
max tables in SELECT: 0
max user name length: 1024
NULL collation: 1
numeric functions: ABS, EXP, LOG, LOG10, MOD, POWER
OUTER JOIN support: 14
quoted identifier case: 1
SQL keywords:
ABS,ALLOW,ARRAY,ASENSITIVE,ASYMMETRIC,ATOMIC,BIGINT,BINARY,BLOB,BOOLEAN,CALL,CALLED,CARDINALITY,CEIL,CEILING,CLOB,COLLECT,CONDITION,CORR,COVAR_POP,COVAR_SAMP,CUBE,CUME_DIST,CURRENT_CATALOG,CURRENT_DEFAULT_TRANSFORM_GROUP,CURRENT_PATH,CURRENT_ROLE,CURRENT_SCHEMA,CURRENT_TRANSFORM_GROUP_FOR_TYPE,CYCLE,DATABASE,DATABASES,DENSE_RANK,DEREF,DETERMINISTIC,DISALLOW,DYNAMIC,EACH,ELEMENT,EVERY,EXP,EXPLAIN,EXTEND,FILES,FILTER,FIRST_VALUE,FLOOR,FREE,FUNCTION,FUSION,GROUPING,HOLD,IF,IMPORT,INOUT,INTERSECTION,LARGE,LAST_VALUE,LATERAL,LIMIT,LN,LOCALTIME,LOCALTIMESTAMP,MEMBER,MERGE,METADATA,METHOD,MOD,MODIFIES,MULTISET,NCLOB,NEW,NONE,NORMALIZE,OFFSET,OLD,OUT,OVER,OVERLAY,PARAMETER,PARTITION,PERCENTILE_CONT,PERCENTILE_DISC,PERCENT_RANK,POWER,RANGE,RANK,READS,RECURSIVE,REF,REFERENCING,REFRESH,REGR_AVGX,REGR_AVGY,REGR_COUNT,REGR_INTERCEPT,REGR_R2,REGR_SLOPE,REGR_SXX,REGR_SXY,REGR_SYY,RELEASE,REPLACE,RESET,RESULT,RETURN,RETURNS,ROLLUP,ROW,ROW_NUMBER,SAVEPOINT,SCHEMAS,SCOPE,SEARCH,SENSITIVE,SHOW,SIMILAR,SPECIFIC,SPECIFICTYPE,SQLEXCEPTION,SQLWARNING,SQRT,START,STATIC,STDDEV_POP,STDDEV_SAMP,STREAM,SUBMULTISET,SYMMETRIC,SYSTEM,TABLES,TABLESAMPLE,TINYINT,TREAT,TRIGGER,UESCAPE,UNNEST,UPSERT,USE,VARBINARY,VAR_POP,VAR_SAMP,WIDTH_BUCKET,WINDOW,WITHIN,WITHOUT
schema term: schema
search escape string: \
special characters:
string functions:
CONCAT,INSERT,LCASE,LENGTH,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
sub query support: 46
system functions:
table term: table
UNION support: 6
BLOB included in max row size: 1
catalog at start: 1
column aliasing supported: 1
LIKE escape clause supported: 1
NULL plus non NULL equals to NULL: 1
read-only: 0
SELECT FOR UPDATE supported: 0
transaction supported: 0
unrelated columns in ORDER BY supported: 1
{noformat}
Note that how the connection didn't fail and it is still possible to query API
(although results are not populated correctly).
after:
{noformat}
$ ./querySubmitter type=server connectStr=local=localhost:31010 api=meta
logLevel=trace
Failed to connect with error: [30015]Handshake Timeout.
(Using:local=localhost:31010)
{noformat}
> C++ connector connect doesn't check handshake result for timeout
> ----------------------------------------------------------------
>
> Key: DRILL-5311
> URL: https://issues.apache.org/jira/browse/DRILL-5311
> Project: Apache Drill
> Issue Type: Bug
> Components: Client - C++
> Reporter: Laurent Goujon
> Assignee: Sudheesh Katkam
> Labels: ready-to-commit
>
> The C++ connector connect methods returns okay as soon as the tcp connection
> is succesfully established between client and server, and the handshake
> message is sent. However it doesn't wait for handshake to have completed.
> The consequence is that if handshake failed, the error is deferred to the
> first query, which might be unexpected by the application.
> I believe that validateHanshake method in drillClientImpl should wait for the
> handshake to complete, as it seems a bit more saner...
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)