anchor.diff:  ----
   public static CompletionStage<Fruit> findById(PgPool client, Long id) {
       return client.preparedQuery("SELECT id, name FROM fruits WHERE id = $1", Tuple.of(id)) // <1>
  -            .thenApply(PgRowSet::iterator) // <2>
  +            .thenApply(RowSet::iterator) // <2>
               .thenApply(iterator -> iterator.hasNext() ? from(iterator.next()) : null); // <3>
   }
   ----
   <1> Create a `Tuple` to hold the prepared query parameters.
  -<2> Get an `Iterator` for the `PgRowSet` result.
  +<2> Get an `Iterator` for the `RowSet` result.
   <3> Create a `Fruit` instance from the `Row` if an entity was found.
   
   And in the JAX-RS resource:
  
positive.code: 
  [source,java]
  ----
  CompletionStage<PgRowSet> rowSet = client.query("SELECT id, name FROM fruits ORDER BY name ASC");
  ----
  
  When the operation completes, we will get a `PgRowSet` that has all the rows buffered in memory.
  As an `java.lang.Iterable<Row>`, it can be traversed with a _for-each_ loop:
  
  [source,java]
  
negative.code: 
  TIP: The SQL string can refer to parameters by position, using $1, $2, ...etc.
  
  Like the simple `query` method, `preparedQuery` returns an instance of `CompletionStage<RowSet>`.
  Equipped with this tooling, we are able to safely use an `id` provided by the user to get the details of a particular fruit:
  
  [source,java]
  