While the current implementation of many of the classes in the JDBC driver implementation are practical to get the driver to work they do not always obey the documented semantics for the associated interfaces. I am proposing making a pass over the involved implementation members to start the "tightening" process that will need to happen to use this driver in other tools an programs that expect stricter adherence than is currently present.
Broad areas of attention are:
- Use of SQLFeatureNotSupportedException not UnsupportedOperationException for methods that The Cassandra Implementation does not support.
- Checking in appropriate methods for the prescribed throwing of SQLException if the method is called on a closed connection.
- providing method implementations for all methods that are not optional even it it is to return NULL (as prescribed in the Interface description.)
I will cut additional JIRA tickets for other components in the suite.