in connectors/zeppelin-interpreter/src/main/java/org/apache/zeppelin/iotdb/IoTDBInterpreter.java [222:271]
private InterpreterResult executeQuery(IoTDBConnection connection, String cmd) {
StringBuilder stringBuilder = new StringBuilder();
try (Statement statement = connection.createStatement()) {
statement.setFetchSize(fetchSize);
boolean hasResultSet = statement.execute(cmd.trim());
InterpreterResult interpreterResult;
if (hasResultSet) {
try (ResultSet resultSet = statement.getResultSet()) {
boolean printTimestamp =
resultSet instanceof IoTDBJDBCResultSet
&& !((IoTDBJDBCResultSet) resultSet).isIgnoreTimeStamp();
final ResultSetMetaData metaData = resultSet.getMetaData();
final int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
stringBuilder.append(metaData.getColumnLabel(i).trim());
stringBuilder.append(TAB);
}
deleteLast(stringBuilder);
stringBuilder.append(NEWLINE);
while (resultSet.next()) {
for (int i = 1; i <= columnCount; i++) {
if (printTimestamp && i == 1) {
stringBuilder.append(
RpcUtils.formatDatetime(
timeFormat,
RpcUtils.DEFAULT_TIMESTAMP_PRECISION,
resultSet.getLong(TIMESTAMP_STR),
zoneId));
} else {
stringBuilder.append(
Optional.ofNullable(resultSet.getString(i)).orElse(NULL_ITEM).trim());
}
stringBuilder.append(TAB);
}
deleteLast(stringBuilder);
stringBuilder.append(NEWLINE);
}
deleteLast(stringBuilder);
interpreterResult = new InterpreterResult(Code.SUCCESS);
interpreterResult.add(Type.TABLE, stringBuilder.toString());
return interpreterResult;
}
} else {
return new InterpreterResult(Code.SUCCESS, "Sql executed.");
}
} catch (SQLException e) {
return new InterpreterResult(Code.ERROR, "SQLException: " + e.getMessage());
}
}