Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Design Considerations

Some areas of concern are listed as tickets in JIRA already. Other areas are not yet well-formed enough to create specific, actionable tickets:

  • DDL support is weak, e.g., JDBC-2 table spec support - DONE; but more DDL support could / should be added
  • Inconsistencies between structmaps, tuples and regular maps (JDBC-3); no longer uses structmap - API is still inconsistent with maps and sequences
  • Global connection variable (db) - will be addressed in upcoming API overall
  • Lack of connection pooling (JDBC-4); better served thru 3rd party pooling, e.g., c3p0 - documented
  • Inability to extend the processing, lack of HOF hooks, e.g., JDBC-6 allow pre-processing of PreparedStatement
  • Updating state is not signified with !
  • API feels imperative, not functional / idiomatic for Clojure

Supported Databases

What databases and versions should support? c.j.j is primarily developed and tested against MySQL 5.0 and MySQL 5.1 but feedback is already coming from users of PostgreSQL and Microsoft SQL Server. Initial thinking is to officially support the following databases and versions:

  • MySQL 5.0 - 5.5 (using the 5.1.6 connector)
  • PostgreSQL - 8.2 upward (tested against 8.4-702.jdbc4 driver)
  • SQL Server - 2008 (should 2005 be supported?) - tested with jtds 1.2.4 and the Microsoft sqljdbc4 3.0 driver
  • Derby (should earlier versions be supported?)
  • H2
  • HSQLDB (should earlier versions be supported?)
  • SQLite 3 (using the org.xerial/sqlite-jdbc 3.7.2 driver)
  • Oracle ????

The build system needs to be updated to run tests against at least some of these. Currently c.j.j is unique in requiring such external resources for testing.