shard-crystal-db/CHANGELOG.md

10 KiB

v0.13.1 (2023-12-21)

  • Gracefully allow spec helper to fail on older crystal. (#202, thanks @bcardiff)

v0.13.0 (2023-12-11)

  • (breaking-change) Deprecate DB.mapping. (#196, thanks @straight-shoota)
  • (breaking-change) Drop Pool#checkout_some, make PoolStatement a struct. (#200, thanks @bcardiff)
  • Simplifications and performance improvements on pool statements. (#200, thanks @bcardiff)
  • Allow `prepared_statements_cache=false`` option to disable prepared statements cache. (#194, #198, thanks @bcardiff)
  • Add exception cause support to PoolResourceLost and ConnectionLost constructors. (#199, thanks @lachlan)
  • Fix inflight counter on ConnectionRefused. (#184, thanks @jgaskins)
  • Fix max_idle_pool_size race condition. (#186, thanks @bcardiff)
  • Fix DB::DriverSpecs#with_db connection_string query param support. (#192, thanks @lachlan)
  • Update docs regarding ConnectionBuilder. (#188, thanks @bcardiff)
  • Add reference to DB::Serializable in docs. (#197, thanks @straight-shoota)
  • Add link to crystal-tds. (#193, thanks @wonderix)

Notes for driver implementors

  • Use new constructors to preserve the underlying reason of a PoolResourceLost or ConnectionLost constructors (See #199)

v0.12.0 (2023-06-23)

  • (breaking-change) Refactor how drivers create connections. Allow creating Database without URIs. (#181, thanks @bcardiff)
  • Close a transaction when returning from within its block. (#167, thanks @jgaskins)
  • Fix race conditions in multi-thread mode. (#178, thanks @bcardiff)
  • Allow the use of Enums when reading a ResultSet. (#168, thanks @jgaskins)
  • Fix specs for Crystal 1.4 and 1.5. (#163, #173, thanks @straight-shoota)
  • Update README. (#172, #180, thanks @amauryt, @jgaskins)

Note: The breaking-change introduced in this release does not affect consumers of the library, only driver implementors.

v0.11.0 (2022-01-27)

  • Fix Connection#transaction method to return the block value as the result. (#159, #160, thanks @bcardiff)
  • Add DB::ColumnTypeMismatchError error with column and type information. (#156, thanks @jwoertink, @bcardiff)
  • Improve DB::MappingException error. (#129, thanks @straight-shoota)
  • Close connection resource when connection is lost. (#155, thanks @stakach, @bcardiff)
  • Discard closed connections in the pool when they are returned. (#154, thanks @stakach)
  • Fix typo in Mode.from_rs argument type. (#142, thanks @dukeraphaelng)
  • Migrate CI to GitHub Actions. (#147, #152, thanks @oprypin, thanks @straight-shoota)

This release requires Crystal 1.0.0 or later.

Note: For drivers implementations #156 adds a abstract def next_column_index : Int32 to ResultSet so there is a breaking-change that does not affect consumers of the library.

v0.10.1 (2021-03-22)

  • Add docs for DB::Database#setup_connection (#139, thanks @jgaskins)

v0.10.0 (2020-09-30)

  • Fix mutex deadlock in setup_connection. (#128, thanks @straight-shoota)
  • Add logging for executing queries. (#134, thanks @bcardiff)
  • Allow DB::Pool to be used a generic connection pool. (#131, thanks @jgaskins)

This release requires Crystal 0.35.0 or later.

v0.9.0 (2020-04-06)

  • Fix compatibility issues for Crystal 0.34.0. (#124, thanks @bcardiff)
  • Fix readme sample. (#117, thanks @bcardiff)
  • Raise DB::NoResultsError when trying to get data from an empty result (#121, #125, thanks @jwoertink, @bcardiff)

v0.8.0 (2019-12-11)

  • Add DB::Serializable. (#115, thanks @nickbclifford)

This release requires Crystal 0.25.0 or later.

v0.7.0 (2019-09-20)

  • (breaking-change) #exec, #query, #scalar methods require named argument for array values (#110, thanks @straight-shoota)
  • Fix pool issues when creating simultaneous connections. (#109, thanks @bcardiff)
  • Fix compatibility issues for upcoming Crystal 0.31.0. (#111, thanks @bcardiff)
  • Added DB::Pool#stats. (#109, thanks @bcardiff)

v0.6.0 (2019-08-02)

  • Fix compatibility issues for Crystal 0.30.0. (#108, thanks @bcardiff)
  • Fix BeginTransaction#transaction rollback due to protocol error. (#101, thanks @straight-shoota)
  • CI includes Crystal nightly. (#106, thanks @bcardiff)
  • Add the Cassandra driver. (#94, thanks @kaukas)
  • Several docs improvements. (#99, #96, #107, thanks @nickelghost, @greenbigfrog, @MatthiasWinkelmann)

v0.5.1 (2018-11-07)

  • Fix QueryMethods#query_one? handling no rows. (#86, thanks @robdavid)
  • Documentation improvements. (#87, #82, #76, thanks @wontruefree, @Heaven31415, @vtambourine)

v0.5.0 (2017-12-29)

  • Fix compatibility issues for crystal 0.24.0. No changes in the api.

v0.4.4 (2017-12-29)

  • Allow query results to be read as named tuples directly (see #56, thanks @Nephos)
  • Fix sqlite samples in documentation (see #71, thanks @hinrik)

v0.4.3 (2017-11-07)

  • Fix connections were not released when building invalid statements. (see #65, thanks @crisward)
  • Fix some exceptions were not deriving from DB::Error. (see #70, thanks @exts)

v0.4.2 (2017-04-21)

  • Fix compatibility issues for crystal 0.22.0

v0.4.1 (2017-04-10)

  • Add spec helper for drivers. #48
  • Add #query_each. #18
  • Fix #read(T.class) to deal better with unhandled types.

v0.4.0 (2017-03-20)

  • Add DB.connect to create non pooled connections
  • Add Database#checkout to allow explicit checkout/release connection (see #38)
  • Fix Mapping.from_rs closes the result_set
  • Fix Mapping works with nilable types (see #40, thanks @RX14)

v0.3.3 (2016-12-24)

  • Fix compatibility issues for crystal 0.20.3

v0.3.2 (2016-12-16)

  • Allow connection pool retry logic in #scalar queries.

v0.3.1 (2016-12-15)

  • Add ConnectionRefused exception to flag issues when opening new connections.

v0.3.0 (2016-12-14)

  • Add support for non prepared statements. #25

  • Add support for transactions & nested transactions. #27

  • Add Bool and Time to DB::Any.

v0.2.2 (2016-12-06)

This release requires crystal 0.20.1

  • Changed default connection pool size limit is now 0 (unlimited).

  • Fixed allow new connections right away if pool can be increased.

v0.2.1 (2016-12-06) [YANKED]

v0.2.0 (2016-10-20)

  • Fixed release DB connection if an exception occurs during execution of a query (thanks @ggiraldez)

v0.1.1 (2016-09-28) [YANKED]

This release requires crystal 0.19.2

Note: v0.1.1 is yanked since is incompatible with v0.1.0 more.

  • Added connection pool. DB.open works with a underlying connection pool. Use Database#using_connection to ensure the same connection is been used across multiple statements. more

  • Added mappings. JSON/YAML-like mapping macros (thanks @spalladino) more

  • Changed require ResultSet implementors to just implement read, optionally implementing read(T.class).

v0.1.0 (2016-06-24)

  • Initial release