private InterpreterResult executeQuery()

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());
    }
  }