use of org.apache.hive.service.rpc.thrift.TProtocolVersion in project hive by apache.
the class ThriftCLIServiceClient method getTables.
/* (non-Javadoc)
* @see org.apache.hive.service.cli.ICLIService#getTables(org.apache.hive.service.cli.SessionHandle, java.lang.String, java.lang.String, java.lang.String, java.util.List)
*/
@Override
public OperationHandle getTables(SessionHandle sessionHandle, String catalogName, String schemaName, String tableName, List<String> tableTypes) throws HiveSQLException {
try {
TGetTablesReq req = new TGetTablesReq(sessionHandle.toTSessionHandle());
req.setTableName(tableName);
req.setTableTypes(tableTypes);
req.setSchemaName(schemaName);
TGetTablesResp resp = cliService.GetTables(req);
checkStatus(resp.getStatus());
TProtocolVersion protocol = sessionHandle.getProtocolVersion();
return new OperationHandle(resp.getOperationHandle(), protocol);
} catch (HiveSQLException e) {
throw e;
} catch (Exception e) {
throw new HiveSQLException(e);
}
}
use of org.apache.hive.service.rpc.thrift.TProtocolVersion in project hive by apache.
the class ThriftCLIServiceClient method getColumns.
/* (non-Javadoc)
* @see org.apache.hive.service.cli.ICLIService#getColumns(org.apache.hive.service.cli.SessionHandle)
*/
@Override
public OperationHandle getColumns(SessionHandle sessionHandle, String catalogName, String schemaName, String tableName, String columnName) throws HiveSQLException {
try {
TGetColumnsReq req = new TGetColumnsReq();
req.setSessionHandle(sessionHandle.toTSessionHandle());
req.setCatalogName(catalogName);
req.setSchemaName(schemaName);
req.setTableName(tableName);
req.setColumnName(columnName);
TGetColumnsResp resp = cliService.GetColumns(req);
checkStatus(resp.getStatus());
TProtocolVersion protocol = sessionHandle.getProtocolVersion();
return new OperationHandle(resp.getOperationHandle(), protocol);
} catch (HiveSQLException e) {
throw e;
} catch (Exception e) {
throw new HiveSQLException(e);
}
}
use of org.apache.hive.service.rpc.thrift.TProtocolVersion in project hive by apache.
the class TestHiveSessionImpl method testLeakOperationHandle.
/**
* Verifying OperationManager.closeOperation(opHandle) is invoked when
* get HiveSQLException during sync query
* @throws HiveSQLException
*/
@Test
public void testLeakOperationHandle() throws HiveSQLException {
//create HiveSessionImpl object
TProtocolVersion protocol = TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V2;
String username = "";
String password = "";
HiveConf serverhiveConf = new HiveConf();
String ipAddress = null;
HiveSessionImpl session = new HiveSessionImpl(null, protocol, username, password, serverhiveConf, ipAddress) {
@Override
protected synchronized void acquire(boolean userAccess, boolean isOperation) {
}
@Override
protected synchronized void release(boolean userAccess, boolean isOperation) {
}
};
//mock operationManager for session
OperationManager operationManager = Mockito.mock(OperationManager.class);
session.setOperationManager(operationManager);
//mock operation and opHandle for operationManager
ExecuteStatementOperation operation = Mockito.mock(ExecuteStatementOperation.class);
OperationHandle opHandle = Mockito.mock(OperationHandle.class);
Mockito.when(operation.getHandle()).thenReturn(opHandle);
Map<String, String> confOverlay = new HashMap<String, String>();
String hql = "drop table if exists table_not_exists";
Mockito.when(operationManager.newExecuteStatementOperation(same(session), eq(hql), (Map<String, String>) Mockito.any(), eq(true), eq(0L))).thenReturn(operation);
try {
//Running a normal async query with no exceptions,then no need to close opHandle
session.open(new HashMap<String, String>());
session.executeStatementAsync(hql, confOverlay);
Mockito.verify(operationManager, Mockito.times(0)).closeOperation(opHandle);
// Throw an HiveSqlException when do async calls
Mockito.doThrow(new HiveSQLException("Fail for clean up test")).when(operation).run();
session.executeStatementAsync(hql, confOverlay);
Assert.fail("HiveSqlException expected.");
} catch (HiveSQLException e) {
if (!"Fail for clean up test".equals(e.getMessage())) {
Assert.fail("unexpected exception:" + e.getMessage());
}
//operationManager.closeOperation() is expected to be invoked once
Mockito.verify(operationManager, Mockito.times(1)).closeOperation(opHandle);
}
}
Aggregations