2020-06-30 14:58:21 +08:00

4.4 KiB

layout title resource nav
todos PostgreSQL JDBC Todo ../media ../

Todo List



Known Bugs

  • [bugs] Deallocating large numbers of server side statements can break the connection by filling network buffers. This is a very, very low probability bug, but it is still possible. ref

Compliance

  • [JDBC1] Implement Statement.setQueryTimeout. →
  • [JDBC2] Sort DatabaseMetaData.getTypeInfo properly (by closest match). →
  • [JDBC2] Implement SQLInput and SQLOutput to allow composite types to be used. →
  • [JDBC3] Implement Statement.getGeneratedKeys. ref2
  • [JDBC3] The JDBC 3 DatabaseMetaData methods sometimes return additional information. Currently we only return JDBC 2 data for these methods. ref
  • [JDBC3] Implement Clob write/position methods. →

Performance

  • [] Add statement pooling to take advantage of server prepared statements. →
  • [] Allow scrollable ResultSets to not fetch all results in one batch. →
  • [] Allow refcursor ResultSets to not fetch all results in one batch. →
  • [] Allow binary data transfers for all datatypes not just bytea. →

PG Extensions

  • [] Allow configuration of GUC parameters via the Connection URL or Datasource. The most obvious example of usefulness is search_path. ref

Other

  • [test] Pass the JDBC CTS (Sun's test suite). →
  • [code] Allow SSL to use client certificates. This can probably be done with our existing SSLSocketFactory customization code, but it would be good to provide an example or other wrapper so a non-expert can set it up. ref1, ref2
  • [code] Currently the internal type cache is not schema aware. →
  • [code] Need a much better lexer/parser than the ad hoc stuff in the driver. ref2

Ideas

  • [] Allow Blob/Clob to operate on bytea/text data. ref
  • [] Allow getByte/getInt/... to work on boolean values ref
  • [] Add a URL parameter to make the driver not force a rollback on error for compatibility with other dbs. The driver can wrap each statement in a Savepoint. ref
  • [] Combine DatabaseMetaData efforts with pl/java. ref
  • [] ResultSetMetaData calls that run queries are cached on a per column basis, but it seems likely that they're going to be called for all columns, so try to issue one query per ResultSet, not per column. →
  • [] Make PGConnection, PGStatement, ... extend java.sql.XXX ref

Documentation

  • [] The PGResultSetMetaData interface is not mentioned. →
  • [] Timestamp +/- Infinity values are not mentioned. →
  • [] Async notifies are more async now. ref

Website

  • [] Setup a cron job somewhere to build and deploy the sight on a daily basis to keep API changes and translations up to date. →
  • [] Add a daily git snapshot build to make the latest updates available. →