in src/main/java/com/aliyun/odps/jdbc/OdpsStatement.java [859:888]
protected void setResultSetInternal() throws OdpsException, IOException {
if (getExecuteMode() == ExecuteMode.OFFLINE && !enableLimit && resultSizeLimit == null) {
connHandle.log.info(
"Get result by instance tunnel (" + connHandle.getFetchResultThreadNum() + " Thread, "
+ connHandle.getFetchResultSplitSize() + " records per split, cache "
+ connHandle.getFetchResultPreloadSplitNum() + " split in memory" + ").");
executeInstance.waitForSuccess();
Instance instance = executeInstance;
InstanceDataIterator
instanceDataIterator =
new InstanceDataIterator(connHandle.getOdps(), instance, 0, resultCountLimit,
connHandle.getFetchResultSplitSize(),
connHandle.getFetchResultPreloadSplitNum(),
connHandle.getFetchResultThreadNum());
odpsResultSet = new com.aliyun.odps.data.ResultSet(
instanceDataIterator,
instanceDataIterator.getSchema(),
instanceDataIterator.getRecordCount());
} else {
if (sqlExecutor.isUseInstanceTunnel()) {
connHandle.log.info("Get result by instance tunnel.");
odpsResultSet =
sqlExecutor
.getResultSet(0L, resultCountLimit, resultSizeLimit, enableLimit);
} else {
connHandle.log.info("Get result by rest api.");
odpsResultSet = sqlExecutor.getResultSet();
}
}
}