use of org.apache.hive.service.cli.GetInfoValue in project cdap by caskdata.
the class BaseHiveExploreService method getInfo.
@Override
public MetaDataInfo getInfo(MetaDataInfo.InfoType infoType) throws ExploreException, SQLException {
startAndWait();
try {
MetaDataInfo ret = infoType.getDefaultValue();
if (ret != null) {
return ret;
}
SessionHandle sessionHandle = null;
Map<String, String> sessionConf = startSession();
try {
sessionHandle = openHiveSession(sessionConf);
// Convert to GetInfoType
GetInfoType hiveInfoType = null;
for (GetInfoType t : GetInfoType.values()) {
if (t.name().equals("CLI_" + infoType.name())) {
hiveInfoType = t;
break;
}
}
if (hiveInfoType == null) {
// Should not come here, unless there is a mismatch between Explore and Hive info types.
LOG.warn("Could not find Hive info type %s", infoType);
return null;
}
GetInfoValue val = cliService.getInfo(sessionHandle, hiveInfoType);
LOG.trace("Retrieving info: {}, got value {}", infoType, val);
return new MetaDataInfo(val.getStringValue(), val.getShortValue(), val.getIntValue(), val.getLongValue());
} finally {
closeInternal(getQueryHandle(sessionConf), new ReadOnlyOperationInfo(sessionHandle, null, sessionConf, "", ""));
}
} catch (HiveSQLException e) {
throw getSqlException(e);
} catch (Throwable e) {
throw new ExploreException(e);
}
}
use of org.apache.hive.service.cli.GetInfoValue in project hive by apache.
the class ThriftCLIServiceClient method getInfo.
/* (non-Javadoc)
* @see org.apache.hive.service.cli.ICLIService#getInfo(org.apache.hive.service.cli.SessionHandle, java.util.List)
*/
@Override
public GetInfoValue getInfo(SessionHandle sessionHandle, GetInfoType infoType) throws HiveSQLException {
try {
// FIXME extract the right info type
TGetInfoReq req = new TGetInfoReq(sessionHandle.toTSessionHandle(), infoType.toTGetInfoType());
TGetInfoResp resp = cliService.GetInfo(req);
checkStatus(resp.getStatus());
return new GetInfoValue(resp.getInfoValue());
} catch (HiveSQLException e) {
throw e;
} catch (Exception e) {
throw new HiveSQLException(e);
}
}
use of org.apache.hive.service.cli.GetInfoValue in project hive by apache.
the class ThriftCLIService method GetInfo.
@Override
public TGetInfoResp GetInfo(TGetInfoReq req) throws TException {
TGetInfoResp resp = new TGetInfoResp();
try {
GetInfoValue getInfoValue = cliService.getInfo(new SessionHandle(req.getSessionHandle()), GetInfoType.getGetInfoType(req.getInfoType()));
resp.setInfoValue(getInfoValue.toTGetInfoValue());
resp.setStatus(OK_STATUS);
} catch (Exception e) {
LOG.warn("Error getting info: ", e);
resp.setStatus(HiveSQLException.toTStatus(e));
}
return resp;
}
Aggregations