test_class.declarator: query     = "SELECT 1"
test_class.original_string: String    query     = "SELECT 1";
test_class.type: String
test_class.var_name: query
test_class.declarator: statement = "DELETE FROM T"
test_class.original_string: String    statement = "DELETE FROM T";
test_class.type: String
test_class.var_name: statement
test_class.declarator: timeout   = Duration.ofSeconds(1)
test_class.original_string: Duration  timeout   = Duration.ofSeconds(1);
test_class.type: Duration
test_class.var_name: timeout
test_class.declarator: rows      = new ArrayList<>()
test_class.original_string: List<Row> rows      = new ArrayList<>();
test_class.type: List<Row>
test_class.var_name: rows
test_class.file: ndbc-core/src/test/java/io/trane/ndbc/datasource/PooledDataSourceTest.java
test_class.identifier: PooledDataSourceTest
test_class.superclass: extends PoolEnv
test_case.body: @Test
    public void query() throws CheckedFutureException {
      final Connection c = new TestConnection() {
        @Override
        public Future<List<Row>> query(final String query) {
          assertEquals(PooledDataSourceTest.this.query, query);
          return Future.value(rows);
        }
      };
  
      assertEquals(rows, ds(c).query(query).get(timeout));
    }
test_case.class_method_signature: PooledDataSourceTest.query()
test_case.full_signature: @Test public void query()
test_case.identifier: query
test_case.invocations: assertEquals value assertEquals get query ds
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void query()
focal_class.declarator: pool
focal_class.modifier: private final
focal_class.original_string: private final Pool<Connection> pool;
focal_class.type: Pool<Connection>
focal_class.var_name: pool
focal_class.declarator: currentTransaction
focal_class.modifier: private final
focal_class.original_string: private final Local<Connection> currentTransaction;
focal_class.type: Local<Connection>
focal_class.var_name: currentTransaction
focal_class.declarator: config
focal_class.modifier: private final
focal_class.original_string: private final Config config;
focal_class.type: Config
focal_class.var_name: config
focal_class.file: ndbc-core/src/main/java/io/trane/ndbc/datasource/PooledDataSource.java
focal_class.identifier: PooledDataSource
focal_class.interfaces: implements DataSource<PreparedStatement, Row>
focal_class.class_method_signature: PooledDataSource.PooledDataSource(final Pool<Connection> pool, final Config config)
focal_class.full_signature: public  PooledDataSource(final Pool<Connection> pool, final Config config)
focal_class.identifier: PooledDataSource
focal_class.modifiers: public
focal_class.parameters: (final Pool<Connection> pool, final Config config)
focal_class.signature:  PooledDataSource(final Pool<Connection> pool, final Config config)
focal_class.class_method_signature: PooledDataSource.query(final String query)
focal_class.full_signature: @Override public final Future<List<Row>> query(final String query)
focal_class.identifier: query
focal_class.modifiers: @Override public final
focal_class.parameters: (final String query)
focal_class.return: Future<List<Row>>
focal_class.signature: Future<List<Row>> query(final String query)
focal_class.class_method_signature: PooledDataSource.execute(final String statement)
focal_class.full_signature: @Override public final Future<Long> execute(final String statement)
focal_class.identifier: execute
focal_class.modifiers: @Override public final
focal_class.parameters: (final String statement)
focal_class.return: Future<Long>
focal_class.signature: Future<Long> execute(final String statement)
focal_class.class_method_signature: PooledDataSource.query(final PreparedStatement query)
focal_class.full_signature: @Override public final Future<List<Row>> query(final PreparedStatement query)
focal_class.identifier: query
focal_class.modifiers: @Override public final
focal_class.parameters: (final PreparedStatement query)
focal_class.return: Future<List<Row>>
focal_class.signature: Future<List<Row>> query(final PreparedStatement query)
focal_class.class_method_signature: PooledDataSource.stream(PreparedStatement query)
focal_class.full_signature: @Override public Flow<Row> stream(PreparedStatement query)
focal_class.identifier: stream
focal_class.modifiers: @Override public
focal_class.parameters: (PreparedStatement query)
focal_class.return: Flow<Row>
focal_class.signature: Flow<Row> stream(PreparedStatement query)
focal_class.class_method_signature: PooledDataSource.execute(final PreparedStatement statement)
focal_class.full_signature: @Override public final Future<Long> execute(final PreparedStatement statement)
focal_class.identifier: execute
focal_class.modifiers: @Override public final
focal_class.parameters: (final PreparedStatement statement)
focal_class.return: Future<Long>
focal_class.signature: Future<Long> execute(final PreparedStatement statement)
focal_class.class_method_signature: PooledDataSource.transactional(final Supplier<Future<T>> supplier)
focal_class.full_signature: @Override public final Future<T> transactional(final Supplier<Future<T>> supplier)
focal_class.identifier: transactional
focal_class.modifiers: @Override public final
focal_class.parameters: (final Supplier<Future<T>> supplier)
focal_class.return: Future<T>
focal_class.signature: Future<T> transactional(final Supplier<Future<T>> supplier)
focal_class.class_method_signature: PooledDataSource.transactional()
focal_class.full_signature: @Override public TransactionalDataSource<PreparedStatement, Row> transactional()
focal_class.identifier: transactional
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: TransactionalDataSource<PreparedStatement, Row>
focal_class.signature: TransactionalDataSource<PreparedStatement, Row> transactional()
focal_class.class_method_signature: PooledDataSource.close()
focal_class.full_signature: @Override public final Future<Void> close()
focal_class.identifier: close
focal_class.modifiers: @Override public final
focal_class.parameters: ()
focal_class.return: Future<Void>
focal_class.signature: Future<Void> close()
focal_class.class_method_signature: PooledDataSource.withConnection(final Function<Connection, Future<T>> f)
focal_class.full_signature: private final Future<T> withConnection(final Function<Connection, Future<T>> f)
focal_class.identifier: withConnection
focal_class.modifiers: private final
focal_class.parameters: (final Function<Connection, Future<T>> f)
focal_class.return: Future<T>
focal_class.signature: Future<T> withConnection(final Function<Connection, Future<T>> f)
focal_class.class_method_signature: PooledDataSource.config()
focal_class.full_signature: @Override public Config config()
focal_class.identifier: config
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Config
focal_class.signature: Config config()
focal_method.body: @Override
  	public final Future<List<Row>> query(final String query) {
  		return withConnection(c -> c.query(query));
  	}
focal_method.class_method_signature: PooledDataSource.query(final String query)
focal_method.full_signature: @Override public final Future<List<Row>> query(final String query)
focal_method.identifier: query
focal_method.invocations: withConnection query
focal_method.modifiers: @Override public final
focal_method.parameters: (final String query)
focal_method.return: Future<List<Row>>
focal_method.signature: Future<List<Row>> query(final String query)