anchor.diff:       }).toCompletable();
   ```
   
  -= Logging
  +== Logging
   
   Logging is handled by slf4j which bridges to the logging framework of your choice. Add
   the dependency for your logging framework as a maven dependency and you are sorted. See the test scoped log4j example in [rxjava2-jdbc/pom.xml](https://github.com/davidmoten/rxjava2-jdbc/blob/master/pom.xml).
  
positive.code: ```
  Nulls will happily map to Tuples (see the next section) when you have two or more columns.
  
  = Tuple support
  
  When you specify more types in the `getAs` method they are matched to the columns in the returned result set from the query and combined into a `Tuple` instance. Here's an example that returns `Tuple2`:
  
  
negative.code: ```
  While you are processing reactively you should avoid blocking calls but domain boundaries sometimes force this to happen (e.g. accumulate the results and return them as xml over the network from a web service call). Bear in mind also that if you are worried about the complexities of debugging RxJava programs then you might wish to make brief limited forays into reactive code. That's completely fine too. What you lose in efficiency you may gain in simplicity.
  
  == Asynchrony
  The query flowables returned by the `Database` all run asynchronously. This is required because of the use of non-blocking connection pools. When a connection is returned to the pool and then checked-out by another query that checkout must occur on a different thread so that stack overflow does not occur. See the [Non-blocking connection pools](README.md=non-blocking-connection-pools) section for more details.
  
  
  == Nulls
  RxJava2 does not support streams of nulls. If you want to represent nulls in your stream then use `java.util.Optional`.
  
  In the special case where a single nullable column is being returned and mapped to a class via `getAs` you should instead use `getAsOptional`:
  