in backend/src/main/java/org/apache/iotdb/admin/service/impl/IotDBServiceImpl.java [4310:4353]
private SqlResultVO executeQuery(SessionPool sessionPool, String sql, Boolean closePool)
throws BaseException {
SqlResultVO sqlResultVO = new SqlResultVO();
List<List<String>> valuelist = new ArrayList<>();
SessionDataSetWrapper sessionDataSetWrapper = null;
try {
sessionDataSetWrapper = sessionPool.executeQueryStatement(sql);
long start = System.currentTimeMillis();
List<String> columnNames = sessionDataSetWrapper.getColumnNames();
sqlResultVO.setMetaDataList(columnNames);
int batchSize = sessionDataSetWrapper.getBatchSize();
long count = 0;
if (batchSize > 0) {
while (sessionDataSetWrapper.hasNext()) {
List<String> strList = new ArrayList<>();
RowRecord rowRecord = sessionDataSetWrapper.next();
count++;
for (org.apache.iotdb.tsfile.read.common.Field field : rowRecord.getFields()) {
strList.add(field.toString());
}
valuelist.add(strList);
}
long end = System.currentTimeMillis();
double time = (end - start + 0.0d) / 1000;
String queryTime = time + "s";
sqlResultVO.setQueryTime(queryTime);
sqlResultVO.setLine(count);
sqlResultVO.setValueList(valuelist);
}
return sqlResultVO;
} catch (IoTDBConnectionException e) {
logger.error(e.getMessage());
throw new BaseException(ErrorCode.SQL_EP, ErrorCode.SQL_EP_MSG);
} catch (StatementExecutionException e) {
logger.error(e.getMessage());
throw new BaseException(ErrorCode.SQL_EP, ErrorCode.SQL_EP_MSG);
} finally {
closeResultSet(sessionDataSetWrapper);
if (sessionPool != null && closePool) {
sessionPool.close();
}
}
}