We discovered a restriction in JDBC today. The JDBC spec states that when reading columns from a row in a result set, the rows must be read left-to-right and no rows may be read twice. The spec says that this restriction is for compatibility for some underlying databases. Presumably, this restriction is in place so that a driver may use a stream to retrieve results, which makes a lot of sense when there is a prospect of BLOBs etc. in the result set. This problem surfaced when Larry was processing metadata result sets from SQLServer.