11 KiB
11 KiB
Change Log
Only accretive/fixative changes will be made from now on.
Unreleased Changes
The following changes have been committed to the master branch since the 1.0.12 release:
- Fix #82 by adding
clojure.java.data-based support for setting arbitrary properties onConnectionandPreparedStatementobjects, post-creation. Note: this uses the Java reflection API under the hood. - Adds
next.jdbc.prepare/statementto createStatementobjects with all the options available toprepareexcept:return-keys. - Update
org.clojure/java.datato 0.1.5 (for property setting).
Stable Builds
-
2019-12-11 -- 1.0.12
- Address #81 by splitting the SQL-building functions out of
next.jdbc.sqlintonext.jdbc.sql.builder. - Fix #80 by avoiding the auto-commit restore after a failed rollback in a failed transaction.
- Address #78 by documenting the
:connectionInitSqlworkaround for HikariCP/PostgreSQL and non-default schemas.
- Address #81 by splitting the SQL-building functions out of
-
2019-12-07 -- 1.0.11
- Fix #76 by avoiding conversions on
java.sql.Dateandjava.sql.Timestamp. - Add testing against Microsoft SQL Server (run tests with environment variables
NEXT_JDBC_TEST_MSSQL=yesandMSSQL_SA_PASSWORDset to your local --127.0.0.1:1433-- SQL Serversauser password; assumes that it can create and dropfruitandfruit_timetables in themodeldatabase). - Add testing against MySQL (run tests with environment variables
NEXT_JDBC_TEST_MYSQL=yesandMYSQL_ROOT_PASSWORDset to your local --127.0.0.1:3306-- MySQLrootuser password; assumes you have already created an empty database calledclojure_test). - Bump several JDBC driver versions for up-to-date testing.
- Minor documentation fixes.
- Fix #76 by avoiding conversions on
-
2019-11-14 -- 1.0.10
- Fix #75 by adding support for
java.sql.Statementtoplan,execute!, andexecute-one!. - Address #74 by making several small changes to satisfy Eastwood.
- Fix #73 by providing a new, optional namespace
next.jdbc.date-timethat can be required if your database driver needs assistance convertingjava.util.Date(PostgreSQL!) or the Java Time types to SQLtimestamp(or SQLdate/time). - Fix link to All The Options in Migration from
clojure.java.jdbc. PR #71 (@laurio). - Address #70 by adding CLOB & BLOB SQL Types to the Tips & Tricks section of Friendly SQL Functions and by adding
next.jdbc.result-set/clob-column-readerandnext.jdbc.result-set/clob->stringhelper to make it easier to deal withCLOBcolumn data. - Clarify what
execute!andexecute-one!produce when the result set is empty ([]andnilrespectively, and there are now tests for this). Similarly forfind-by-keysandget-by-id. - Add MS SQL Server section to Tips & Tricks to note that it returns an empty string for table names by default (so table-qualified column names are not available). Using the
:result-type(scroll) and:concurrencyoptions will cause table names to be returned. - Clarify that Friendly SQL Functions are deliberately simple (hint: they will not be enhanced or expanded -- use
plan,execute!, andexecute-one!instead, with a DSL library if you want!). - Improve migration docs: explicitly recommend the use of a datasource for code that needs to work with both
clojure.java.jdbcandnext.jdbc; add caveats about column name conflicts (in several places). - Improve
datafy/navdocumentation around:schema. - Update
org.clojure/java.datato"0.1.4"(0.1.2 fixes a number of reflection warnings).
- Fix #75 by adding support for
-
2019-10-11 -- 1.0.9
- Address #69 by trying to clarify when to use
execute-one!vsexecute!vsplan. - Address #68 by clarifying that builder functions do not affect the "fake result set" containing
:next.jdbc/update-count. - Fix #67 by adding
:jdbcUrlversion spec. - Add
next.jdbc.optional/as-maps-adapterto provide a way to override the default result set reading behavior of using.getObjectwhen omitting SQLNULLvalues from result set maps.
- Address #69 by trying to clarify when to use
-
2019-09-27 -- 1.0.8
- Fix #66 by adding support for a db-spec hash map format containing a
:jdbcUrlkey (consistent with->pool) so that you can create a datasource from a JDBC URL string and additional options. - Address #65 by adding a HugSQL "quick start" to the Friendly SQL Functions section of the docs.
- Add
next.jdbc.specs/unstrument. PR #64 (@gerred). - Address #63 by improving documentation around qualified column names and
:qualifier(clojure.java.jdbc) migration, with a specific caveat about Oracle not fully supporting.getTableName().
- Fix #66 by adding support for a db-spec hash map format containing a
-
2019-09-09 -- 1.0.7
- Address #60 by supporting simpler schema entry formats:
:table/columnis equivalent to the old[:table :column :one]and[:table/column]is equivalent to the old[:table :column :many]. The older formats will continue to be supported but should be considered deprecated. PR #62 (@seancorfield). - Added test for using
ANY(?)and arrays in PostgreSQL forIN (?,,,?)style queries. Added a Tips & Tricks section to Friendly SQL Functions with database-specific suggestions, that starts with this one. - Improved documentation in several areas.
- Address #60 by supporting simpler schema entry formats:
-
2019-08-24 -- 1.0.6
- Improved documentation around
insert-multi!andexecute-batch!(addresses #57). - Fix #54 by improving documentation around data type conversions (and the
ReadableColumnandSettableParameterprotocols). - Fix #52 by using a US-locale function in the "lower" result set builders to avoid unexpected character changes in column names in locales such as Turkish. If you want the locale-sensitive behavior, pass
clojure.string/lower-caseinto one of the "modified" result set builders. - Add
next.jdbc.result-set/as-maps-adapterandnext.jdbc.result-set/as-arrays-adapterto provide a way to override the default result set reading behavior of using.getObject. - Update
org.clojure/test.checkto"0.10.0".
- Improved documentation around
-
2019-08-05 -- 1.0.5
- Fix #51 by implementing
IPersistentMapfully for the "mapified" result set insideplan. This adds support fordissocandcons(which will both realize a row),count(which returns the column count but does not realize a row),empty(returns an empty hash map without realizing a row), etc. - Improved documentation around connection pooling (HikariCP caveats).
- Fix #51 by implementing
-
2019-07-24 -- 1.0.4
- Fix #50 by adding machinery to test against (embedded) PostgreSQL!
- Improved documentation for connection pooled datasources (including adding a Component example); clarified the recommendations for globally overriding default options (write a wrapper namespace that suits your usage).
- Note: this release is primarily to fix the cljdoc.org documentation via repackaging the JAR file.
-
2019-07-23 -- 1.0.3
- Fix #48 by adding
next.jdbc.connection/->pooland documenting how to use HikariCP and c3p0 in the Getting Started docs (as well as adding tests for both libraries). - Documentation improvements, including examples of extending
ReadableColumnandSettableParameter. - Updated test dependencies (testing against more recent versions of several drivers).
- Fix #48 by adding
-
2019-07-15 -- 1.0.2
- Fix #47 by refactoring database specs to be a single hash map instead of pouring multiple maps into one.
- Fix #46 by allowing
:hostto be:nonewhich tellsnext.jdbcto omit the host/port section of the JDBC URL, so that local databases can be used with:dbtype/:classnamefor database types thatnext.jdbcdoes not know. Also added:dbname-separatorand:host-prefixto the "db-spec" to allow fine-grained control over how the JDBC URL is assembled. - Fix #45 by adding TimesTen driver support.
- Fix #44 so that
insert-multi!with an emptyrowsvector returns[]. - Fix #43 by adjusting the spec for
insert-multi!to "require less" of thecolsandrowsarguments. - Fix #42 by adding specs for
execute-batch!andset-parametersinnext.jdbc.prepare. - Fix #41 by improving docstrings and documentation, especially around prepared statement handling.
- Fix #40 by adding
next.jdbc.prepare/execute-batch!. - Added
asserts innext.jdbc.sqlas more informative errors for cases that would generate SQL exceptions (from malformed SQL). - Added spec for
:order-byto reflect what is actually permitted. - Expose
next.jdbc.connect/dbtypesas a table of known database types and aliases, along with their class name(s), port, and other JDBC string components.
-
2019-07-03 -- 1.0.1
- Fix #37 by adjusting the spec for
with-transactionto "require less" of the:bindingvector. - Fix #36 by adding type hint in
with-transactionmacro. - Fix #35 by explaining the database-specific options needed to ensure
insert-multi!performs a single, batched operation. - Fix #34 by explaining save points (in the Transactions documentation).
- Fix #33 by updating the spec for the example
key-mapinfind-by-keys,update!, anddelete!to reflect that you cannot pass an empty map to these functions (and added tests to ensure the calls fail with spec errors).
- Fix #37 by adjusting the spec for
-
2019-06-12 -- 1.0.0 "gold"
- Address #31 by making
reify'd objects produce a more informative string representation if they are printed (e.g., misusingplanby not reducing it or not mapping an operation over the rows). - Fix #26 by exposing
next.jdbc.result-set/datafiable-result-setso that variousjava.sql.DatabaseMetaDatamethods that return result metadata information inResultSets can be easily turned into a fully realized result set.
- Address #31 by making
-
2019-06-04 -- 1.0.0-rc1:
- Fix #24 by adding return type hints to
next.jdbcfunctions. - Fix #22 by adding
next.jdbc.optionalwith six map builders that omitNULLcolumns from the row hash maps. - Documentation improvements (#27, #28, and #29), including changing "connectable" to "transactable" for the
transactfunction and thewith-transactionmacro (for consistency with the name of the underlying protocol). - Fix #30 by adding
modifiedvariants of column name functions and builders. Thelowervariants have been rewritten in terms of these newmodifiedvariants. This adds:label-fnand:qualifier-fnoptions that mirror:column-fnand:table-fnfor row builders.
- Fix #24 by adding return type hints to
-
2019-05-24 -- 1.0.0-beta1:
- Set up CircleCI testing (just local DBs for now).
- Address #21 by adding
next.jdbc.specsand documenting basic usage. - Fix #19 by caching loaded database driver classes.
- Address #16 by renaming
reducible!toplan(BREAKING CHANGE!). - Address #3 by deciding to maintain this library outside Clojure Contrib.
Alpha Builds
- 2019-05-04 -- 1.0.0-alpha13 -- Fix #18 by removing more keys from properties when creating connections.
- 2019-04-26 -- 1.0.0-alpha12 -- Fix #17 by renaming
:next.jdbc/sql-stringto:next.jdbc/sql-params(BREAKING CHANGE!) and pass whole vector. - 2019-04-24 -- 1.0.0-alpha11 -- Rename
:gen-fnto:builder-fn(BREAKING CHANGE!); Fix #13 by adding documentation fordatafy/nav/:schema; Fix #15 by automatically adding:next.jdbc/sql-string(as of 1.0.0-alpha12::next.jdbc/sql-params) into the options hash map, so custom builders can depend on the SQL string. - 2019-04-22 -- 1.0.0-alpha9 -- Fix #14 by respecting
:gen-fn(as of 1.0.0-alpha11::builder-fn) inexecute-oneforPreparedStatement. - 2019-04-21 -- 1.0.0-alpha8 -- Initial publicly announced release.