SessionPool { public SessionDataSetWrapper executeQueryStatement(String sql) throws IoTDBConnectionException, StatementExecutionException { for (int i = 0; i < RETRY; i++) { Session session = getSession(); try { SessionDataSet resp = session.executeQueryStatement(sql); SessionDataSetWrapper wrapper = new SessionDataSetWrapper(resp, session, this); occupy(session); return wrapper; } catch (IoTDBConnectionException e) { cleanSessionAndMayThrowConnectionException(session, i, e); } catch (StatementExecutionException e) { putBack(session); throw e; } } return null; } SessionPool(String ip, int port, String user, String password, int maxSize);  SessionPool(String ip, int port, String user, String password, int maxSize,
      boolean enableCompression); @SuppressWarnings("squid:S107")  SessionPool(String ip, int port, String user, String password, int maxSize, int fetchSize,
      long timeout, boolean enableCompression); int currentAvailableSize(); int currentOccupiedSize(); synchronized void close(); void closeResultSet(SessionDataSetWrapper wrapper); void insertTablet(Tablet tablet); void insertTablet(Tablet tablet, boolean sorted); void insertTablets(Map<String, Tablet> tablets); void insertTablets(Map<String, Tablet> tablets, boolean sorted); void insertRecords(List<String> deviceIds, List<Long> times,
      List<List<String>> measurementsList, List<List<TSDataType>> typesList,
      List<List<Object>> valuesList); void insertRecords(List<String> deviceIds, List<Long> times,
      List<List<String>> measurementsList, List<List<String>> valuesList); void insertRecord(String deviceId, long time, List<String> measurements,
      List<TSDataType> types, List<Object> values); void insertRecord(String deviceId, long time, List<String> measurements,
      List<String> values); void testInsertTablet(Tablet tablet); void testInsertTablets(Map<String, Tablet> tablets); void testInsertRecords(List<String> deviceIds, List<Long> times,
      List<List<String>> measurementsList, List<List<String>> valuesList); void testInsertRecords(List<String> deviceIds, List<Long> times,
      List<List<String>> measurementsList, List<List<TSDataType>> typesList,
      List<List<Object>> valuesList); void testInsertRecord(String deviceId, long time, List<String> measurements,
      List<String> values); void testInsertRecord(String deviceId, long time, List<String> measurements,
      List<TSDataType> types, List<Object> values); void deleteTimeseries(String path); void deleteTimeseries(List<String> paths); void deleteData(String path, long time); void deleteData(List<String> paths, long time); void setStorageGroup(String storageGroupId); void deleteStorageGroup(String storageGroup); void deleteStorageGroups(List<String> storageGroup); void createTimeseries(String path, TSDataType dataType, TSEncoding encoding,
      CompressionType compressor); void createTimeseries(String path, TSDataType dataType, TSEncoding encoding,
      CompressionType compressor, Map<String, String> props, Map<String, String> tags,
      Map<String, String> attributes, String measurementAlias); void createMultiTimeseries(List<String> paths, List<TSDataType> dataTypes,
      List<TSEncoding> encodings, List<CompressionType> compressors,
      List<Map<String, String>> propsList, List<Map<String, String>> tagsList,
      List<Map<String, String>> attributesList, List<String> measurementAliasList); boolean checkTimeseriesExists(String path); SessionDataSetWrapper executeQueryStatement(String sql); void executeNonQueryStatement(String sql);  }
@Test public void executeQueryStatement() { SessionPool pool = new SessionPool("127.0.0.1", 6667, "root", "root", 3); correctQuery(pool); pool.close(); }