Skip to content

Latest commit

 

History

History
203 lines (154 loc) · 11 KB

CHANGES.md

File metadata and controls

203 lines (154 loc) · 11 KB

Changes in 0.3.0-beta2

  • The DSL namespaces introduced in 0.3.0-alpha1 have been retired - see java-jdbc/dsl for a migration path if you wish to continue using the DSL (although it is recommended you switch to another, more expressive DSL).
  • The older API (0.2.3) which was deprecated in earlier 0.3.0 builds has moved to clojure.java.jdbc.deprecated to help streamline the API for 0.3.0 and clean up the documentation.

Changes in 0.3.0-beta1

  • query as-arrays? now allows you to leverage lazy result fetching JDBC-72.
  • "h2" is recognized as a protocol shorthand for org.h2.Driver
  • Tests no longer use :1 literal JDBC-71.
  • Conditional use of javax.naming.InitialContext so it can be compiled on Android JDBC-69.
  • New db-query-with-resultset function replaces private db-with-query-results* and processes a raw ResultSet object JDBC-63.
  • Allow :set-parameters in db-spec to override set-parameters internal function to allow per-DB special handling of SQL parameters values (such as null for Teradata) JDBC-40.

Changes in 0.3.0-alpha5

  • DDL now supports entities naming strategy JDBC-53.

  • Attempt to address potential memory leaks due to closures - see Christophe Grand's blog post on Macros, closures and unexpected object retention.

  • Documentation has moved to Using java.jdbc on Clojure-Doc.org

  • Added Leiningen support for easier development/testing (Maven is still the primary build tool).

  • Added create-index / drop-index DDL JDBC-62 - moquist

  • Make transaction? boolean optional in various db-do-* functions

  • Create clojure.java.jdbc.ddl namespace

  • Add create-table, drop-table, create-index and drop-index

  • Deprecate create-table, create-table-ddl and drop-table in main namespace

  • Update README to clarify PostgreSQL instructions.

  • Fix test suite for PostgreSQL JDBC-59

  • Improve hooks for Oracle data type handling JDBC-57

  • Fix reflection warnings JDBC-55

  • DDL now supports entities naming strategy JDBC-53.

  • Attempt to address potential memory leaks due to closures - see Christophe Grand's blog post on Macros, closures and unexpected object retention.

  • Documentation has moved to Using java.jdbc on Clojure-Doc.org

  • Added Leiningen support for easier development/testing (Maven is still the primary build tool).

  • Added create-index / drop-index DDL JDBC-62 - moquist

  • Make transaction? boolean optional in various db-do-* functions

    • It will ultimately change to a function argument I think when JDBC-37 is dealt with
  • Create clojure.java.jdbc.ddl namespace

    • Add create-table and drop-table
    • Deprecate create-table, create-table-ddl and drop-table in main namespace
    • More DDL is coming soon
  • Update README to clarify PostgreSQL instructions.

  • Fix test suite for PostgreSQL JDBC-59

  • Improve hooks for Oracle data type handling JDBC-57

  • Fix reflection warnings JDBC-55

Changes in 0.3.0-alpha4

  • Fix connection leaks JDBC-54
  • Allow order-by to accept empty sequence (and return empty string)

Changes in 0.3.0-alpha3

  • Fix macro / import interaction by fully qualifying Connection type.

Changes in 0.3.0-alpha2

  • Address JDBC-51 by declaring get-connection returns java.sql.Connection
  • Add IResultSetReadColumn protocol extension point for custom read conversions JDBC-46
  • Add :multi? to execute! so it can be used for repeated operations JDBC-52
  • Reverted specialized handling of NULL values (reopens JDBC-40)
  • Rename :as-arrays to :as-arrays? since it is boolean
  • Add curried version of clojure.java.jdbc.sql/as-quoted-str
  • Officially deprecate resultset-seq

Changes in 0.3.0-alpha1

Major overhaul of the API and deprecation of most of the old API!

  • Add insert!, query, update!, delete! and execute! high-level API JDBC-20
  • Add optional SQL-generating DSL in clojure.java.jdbc.sql (implied by JDBC-20)
  • Add db- prefixed versions of low-level API
  • Add db-transaction macro:
  (db-transaction [t-con db-spec]
    (query t-con (select * :user (where {:id 42}))))
  • Add result-set-seq as replacement for resultset-seq (which will be deprecated)
  • Transaction now correctly rollback on non-Exception Throwables JDBC-43
  • Rewrite old API functions in terms of new API, and deprecate old API JDBC-43
  • Add :as-arrays to query / result-set-seq JDBC-41
  • Better handling of NULL values JDBC-40 and JDBC-18 Note: JDBC-40 has been reverted in 0.3.0-alpha2 because it introduced regressions for PostgreSQL
  • db-do-command allows you to execute SQL without a transaction wrapping it JDBC-38
  • Remove reflection warning from execute-batch
  • Add notes to README about 3rd party database driver dependencies
  • Add optional :identifiers argument to resultset-seq so you can explicitly pass in the naming strategy

Changes in 0.2.3:

  • as-str now treats a.b as two identifiers separated by . so quoting produces [a].[b] instead of [a.b]
  • Add :connection-uri option JDBC-34

Changes in 0.2.2:

  • Handle Oracle unknown row count affected JDBC-33
  • Handle jdbc: prefix in string db-specs JDBC-32
  • Handle empty columns in make column unique (Juergen Hoetzel) JDBC-31

Changes in 0.2.1:

  • Result set performance enhancement (Juergen Hoetzel) JDBC-29
  • Make do-prepared-return-keys (for Korma team) JDBC-30

Changes in 0.2.0:

  • Merge internal namespace into main jdbc namespace and update symbol visibility / naming.

Changes in 0.1.4:

  • Unwrap RTE for nested transaction exception (we already unwrapped top-level transaction RTEs).
  • Remove reflection warning unwrapping RunTimeException (Alan Malloy)

Changes in 0.1.3:

  • Fix JDBC-26 (fully) by adding transaction/generated keys support for SQLite3 (based on patch from Nelson Morris)

Changes in 0.1.2:

  • Fix JDBC-23 by handling prepared statement params correctly (Ghadi Shayban)
  • Fix JDBC-26 by adding support for SQLite3 (based on patch from Nelson Morris)
  • Fix JDBC-27 by replacing replicate with repeat (Jonas Enlund)
  • Ensure MS SQL Server passes tests with both Microsoft and jTDS drivers
  • Build server now tests derby, hsqldb and sqlite by default
  • Update README per Stuart Sierra's outline for contrib projects

Changes in 0.1.1:

  • Fix JDBC-21 by adding support for db-spec as URI (Phil Hagelberg).
  • Fix JDBC-22 by deducing driver class name from subprotocol (Phil Hagelberg).
  • Add Postgres dependency so tests can be automcated (Phil Hagelberg).
  • Add ability to specify test databases via TEST_DBS environment variable (Phil Hagelberg).

Changes in 0.1.0:

  • Fix JDBC-15 by removing dependence on deprecated structmap.

Changes in 0.0.7:

  • Fix JDBC-9 by renaming duplicate columns instead of throwing an exception.
    • thanx to Peter Siewert!
  • Fix JDBC-16 by ensuring do-prepared works with no param-groups provided.
  • Fix JDBC-17 by adding type hints to remove more reflection warnings.
    • thanx to Stuart Sierra! Documentation:
  • Address JDBC-4 by documenting how to do connection pooling.

Changes in 0.0.6:

  • Move former tests to test-utilities namespace - these do not touch a database
  • Convert old "test" examples into real tests against real databases
    • tested locally against MySQL, Apache Derby, HSQLDB
    • build system should run against Apache Derby, HSQLSB
    • will add additional databases later
  • Fix JDBC-12 by removing batch when doing a single update
  • Remove wrapping of exceptions in transactions to make it easier to work with SQLExceptions

Changes in 0.0.5:

  • Add prepare-statement function to ease creation of PreparedStatement with common options:
    • see docstring for details
  • with-query-results now allows the SQL/params vector to be:
    • a PreparedStatement object, followed by any parameters the SQL needs
    • a SQL query string, followed by any parameters it needs
    • options (for prepareStatement), a SQL query string, followed by any parameters it needs
  • Add support for databases that cannot return generated keys (e.g., HSQLDB)
    • insert operations silently return the insert counts instead of generated keys
    • it is the user's responsibility to handle this if you're using such a database!

Changes in 0.0.4:

  • Fix JDBC-2 by allowing :table-spec {string} at the end of create-table arguments: (sql/create-table :foo [:col1 "int"] ["col2" :int] :table-spec "ENGINE=MyISAM")
  • Fix JDBC-8 by removing all reflection warnings
  • Fix JDBC-11 by no longer committing the transaction when an Error occurs
  • Clean up as-... functions to reduce use of (binding)
  • Refactor do-prepared*, separating out return keys logic and parameter setting logic
    • in preparation for exposing more hooks in PreparedStatement creation / manipulation

Changes in 0.0.3:

  • Fix JDBC-10 by using .executeUpdate when generating keys (MS SQL Server, PostgreSQL compatibility issue)

Changes in 0.0.2:

  • Fix JDBC-7 Clojure 1.2 compatibility (thanx to Aaron Bedra!)

Changes in 0.0.1 (compared to clojure.contrib.sql):

  • Exposed print-... functions for exception printing; no longer writes exceptions to out
  • Add clojure.java.jdbc/resultset-seq (to replace clojure.core/resultset-seq which should be deprecated)
  • Add support for naming and quoting strategies - see http://clojure.github.com/java.jdbc/doc/clojure/java/jdbc/NameMapping.html
    • The formatting is a bit borked, Tom F knows about this and is working on an enhancement to auto-doc to improve it
  • Add ability to return generated keys from single insert operations, add insert-record function
  • Clojure 1.3 compatibility