- Allow
Enumerablefor query args instead ofArray(#207, thanks @lwakefield) - Replaced deprecated splat operator (#211, thanks @BigBoyBarney)
- Fix docs typo. (#208, thanks @jphaward)
- Update formatting (#209, thanks @straight-shoota)
- Gracefully allow spec helper to fail on older crystal. (#202, thanks @bcardiff)
- (breaking-change) Deprecate
DB.mapping. (#196, thanks @straight-shoota) - (breaking-change) Drop
Pool#checkout_some, makePoolStatementa 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
PoolResourceLostandConnectionLostconstructors. (#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_dbconnection_stringquery param support. (#192, thanks @lachlan) - Update docs regarding
ConnectionBuilder. (#188, thanks @bcardiff) - Add reference to
DB::Serializablein docs. (#197, thanks @straight-shoota) - Add link to crystal-tds. (#193, thanks @wonderix)
- Use new constructors to preserve the underlying reason of a
PoolResourceLostorConnectionLostconstructors (See #199)
- (breaking-change) Refactor how drivers create connections. Allow creating
DatabasewithoutURIs. (#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 aResultSet. (#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.
- Fix
Connection#transactionmethod to return the block value as the result. (#159, #160, thanks @bcardiff) - Add
DB::ColumnTypeMismatchErrorerror with column and type information. (#156, thanks @jwoertink, @bcardiff) - Improve
DB::MappingExceptionerror. (#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_rsargument 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.
- Add docs for
DB::Database#setup_connection(#139, thanks @jgaskins)
- Fix mutex deadlock in setup_connection. (#128, thanks @straight-shoota)
- Add logging for executing queries. (#134, thanks @bcardiff)
- Allow
DB::Poolto be used a generic connection pool. (#131, thanks @jgaskins)
This release requires Crystal 0.35.0 or later.
- Fix compatibility issues for Crystal 0.34.0. (#124, thanks @bcardiff)
- Fix readme sample. (#117, thanks @bcardiff)
- Raise
DB::NoResultsErrorwhen trying to get data from an empty result (#121, #125, thanks @jwoertink, @bcardiff)
- Add
DB::Serializable. (#115, thanks @nickbclifford)
This release requires Crystal 0.25.0 or later.
- (breaking-change)
#exec,#query,#scalarmethods 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)
- Fix compatibility issues for Crystal 0.30.0. (#108, thanks @bcardiff)
- Fix
BeginTransaction#transactionrollback 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)
- Fix
QueryMethods#query_one?handling no rows. (#86, thanks @robdavid) - Documentation improvements. (#87, #82, #76, thanks @wontruefree, @Heaven31415, @vtambourine)
- Fix compatibility issues for crystal 0.24.0. No changes in the api.
- Allow query results to be read as named tuples directly (see #56, thanks @Nephos)
- Fix sqlite samples in documentation (see #71, thanks @hinrik)
- 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)
- Fix compatibility issues for crystal 0.22.0
- Add spec helper for drivers. #48
- Add
#query_each. #18 - Fix
#read(T.class)to deal better with unhandled types.
- Add
DB.connectto create non pooled connections - Add
Database#checkoutto allow explicit checkout/release connection (see #38) - Fix
Mapping.from_rscloses the result_set - Fix
Mappingworks with nilable types (see #40, thanks @RX14)
- Fix compatibility issues for crystal 0.20.3
- Allow connection pool retry logic in
#scalarqueries.
- Add ConnectionRefused exception to flag issues when opening new connections.
-
Add support for non prepared statements. #25
-
Add support for transactions & nested transactions. #27
-
Add
BoolandTimetoDB::Any.
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.
- Fixed release DB connection if an exception occurs during execution of a query (thanks @ggiraldez)
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.openworks with a underlying connection pool. UseDatabase#using_connectionto 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 implementingread(T.class).
- Initial release