Skip to content

Latest commit

 

History

History
88 lines (59 loc) · 5.88 KB

CHANGELOG.md

File metadata and controls

88 lines (59 loc) · 5.88 KB

changelog

This file summarizes notable changes for each release, but does not describe internal changes unless they are particularly exciting. For complete details please see the corresponding milestones and their associated issues.

New and Noteworthy for Version 0.2.3

This release includes more performance work and some usability improvements, as well as documentation improvements here and there. This release should be source-compatible for most users, but is not binary compatible with any prior release. Let me know if you run into source compatibilty problems. Special thanks to @mdmoss for build improvements, @fommil and @d6 for help with Sonatype, and everyone else for your continued interest and contributions!

Improvements:

  • doobie is now published on Sonatype and no longer requires a Bintray resolver.
  • The free modules now provide natural transformations of the form FooIO ~> Kleisli[M, Foo, ?] and Foo => FooIO ~> M, which should make life easier when using doobie with existing JDBC resources (your own Connection for example).
  • New optimized column-vector reads and accumulators for IList and standard library collections via CanBuildFrom yield performance generally indistinguishable from raw JDBC. The Query/Query0 operations to, list, and vector are now very fast. Result handling via Process benefits to a lesser extent.

image here

  • Composite instances are now available for shapeless record types.
  • DriverManagerTransactor now includes constructors corresponding to all getConnection methods on DriverManager.
  • free algebras and interpreters have been re-implemented to use method dispatch rather than large match expressions, resulting in minor performance improvements throughout. This completes the work started in 0.2.2.

Big Fixes:

  • The PostGIS dependency was pulling in an old version of the PostgreSQL JDBC driver. This has been fixed.

Upgrades:

  • Updated to Scala 2.10.7
  • Updated to shapeless 2.2.2
  • Updated to scalaz-stream 0.7.1a
  • Updated to specs2-core 3.6
  • Updated to tut 0.4.0 (build-time dependency only)
  • Updated to sbt 0.13.8 (build-time dependency only)

New and Noteworthy for Version 0.2.2

This is another minor release that adds yet more support PostgreSQL-specific features, updates dependencies, and improves performance for resultset processing. Thanks everyone for your continued interest and contributions!

Additions:

  • Added HC.updateManyWithGeneratedKeys and associated syntax on Update to allow batch updates to return updated rows. See Chapter 7 for an example.
  • Added algebras and free monads thereof for PostgreSQL vendor-specific driver APIs, which allows doobie to directly support LISTEN/NOTIFY, COPY FROM STDIN and a number of other interesting features. See Chapter 13 for details and examples.

Improvements:

  • Huge improvements to the implementation of the sql interpolator, courtesy of @milessabin. This removes the last remaining arity limit.
  • Added examples for PostgreSQL-specific error handling combinators. See Chapter 13 for more information.
  • Added Unapply instances to make the Monad instance for FreeC and associated syntax conversions inferrable. For now these are on the doobie.imports module.
  • Significant performance improvements for resultset processing, with .list and .vector now ~4.5x faster and .process ~2.5x faster. This work is ongoing.

Upgrades:

  • Updated to Scala 2.10.5
  • Updated to shapeless 2.2.0 (thanks @milessabin)
  • Updated to scalaz-stream 0.7a
  • Updated to PostgreSQL JDBC driver 9.4-1201-jdbc41
  • Updated to Specs2 3.6 (thanks @etorrebore)

New and Noteworthy for Version 0.2.1

This is a minor follow-up release, primarily to add support for some PostgreSQL features and other odds and ends reported by users. Thanks to users and contributors for their help!

Additions:

  • Added Transactor to wrap an existing DataSource. See Chapter 12 for more information.
  • Added support for PostGIS and PostgreSQL enum types. See Chapter 13 for more information.
  • Added combinators for batch updates. See Chapter 7 for more information.
  • Added Composite support for HList; anywhere you could map a product or tuple type in 0.2.0 you can now also use a shapeless HList.
  • Added Atom support for scalaz.Maybe; anywhere you could map an Option type in 0.2.0 you can now also use Maybe.
  • Added .optionT method on Query and Query0.
  • Added an example that exposes a PostgreSQL NOTIFY channel as an scalaz-stream Process.

Improvements:

  • The 22-parameter limit on the sql interpolator has been increased to 50, and should go away entirely by 0.3.0 at the latest. There are no other arity limits in doobie.
  • All Query and Update constructions are now supported for typechecking with Specs2 and YOLO mode.
  • Many improvements in book of doobie.
  • Tidied up examples a bit.

Upgrades:

  • Updated to Scala 2.11.6.
  • Updated to scalaz 7.1.1 and scalaz-stream 0.6a
  • Updated to tut 0.3.1 (build only; not user-facing).

Bug Fixes:

  • Fixed problem with typechecking BOOLEAN column mappings.
  • Fixed driver classloading problem with HikariTransactor.