lenchv / hive-driver

Driver for connection to Apache Hive via Thrift API
MIT License
40 stars 9 forks source link

Required field statement is unset #37

Closed ntallapa12 closed 2 years ago

ntallapa12 commented 3 years ago

On 2.3.8 version of apache hive, I am getting this error error_stack="TProtocolException: Required field statement is unset! at new module.exports.TExecuteStatementReq (/Users/ntalla/Git/UDL/core-api/node_modules/hive-driver/thrift/gen-nodejs/TCLIService_types.js:3671:13) at ExecuteStatementCommand.execute (/Users/ntalla/Git/UDL/core-api/node_modules/hive-driver/dist/hive/Commands/ExecuteStatementCommand.js:26:23) at HiveDriver.executeStatement (/Users/ntalla/Git/UDL/core-api/node_modules/hive-driver/dist/hive/HiveDriver.js:44:24) at HiveSession.executeStatement (/Users/ntalla/Git/UDL/core-api/node_modules/hive-driver/dist/HiveSession.js:41:28) I tried using HIVE_CLI_SERVICE_PROTOCOL_V10 (V7 V8, V9 and V10), didnt resolve the issue. Appreciate if you have any inputs on this.

Thank you!

lenchv commented 3 years ago

Hi @ntallapa12 !

I've just tried to execute a statement on Hive 2.3.8 with hive-driver and everything works as expected. I can reproduce only if I do not provide the statement to the session method executeStatement:

const session = await client.openSession({
        client_protocol: TCLIService_types.TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V10
});

const createTableOperation = await session.executeStatement(/* HERE MUST BE HQL STATEMENT AS STRING */);

Could you provide the code that leads to this error?