v0.3.0-beta5
ldbc v0.3.0-beta5 is released.
This release adds enhancements to existing features.
Note
ldbc is pre-1.0 software and is still undergoing active development. New versions are not binary compatible with prior versions, although in most cases user code will be source compatible.
The major version will be the stable version.
Dependency changes (Broken change)
Caution
This change is not compatible with previous versions. It constitutes a disruptive change.
Change package name
Previously, the core package was the core package of ldbc. However, ldbc has changed its structure around this core package and the functions provided by the core package are now provided as extra functions.
0.2.x | 0.3.x |
---|---|
ldbc-core | ldbc-schema |
The core package still exists but will be removed in a future version.
Additional Function: Additional error handling functions
All ldbc monads shall provide a MonadError[? [_], Throwable]
and provide an extended Async instance. This means that Executor and others will have the following primitive operations
raiseError
: raise an exception (converts Throwable toM[A]
)handleErrorWith
: handle exception (convertM[A]
toM[B]
)attempt
: catch exception (convertM[A]
toM[Either[Throwable, A]]
)
In other words, any ldbc program can catch an exception by simply adding attempt
.
val program = Executor.pure[IO, Int](1)
program.attempt
// Executor[IO, Either[Throwable, Int]]
Many other operations can be derived from the attempt
and raiseError
combinators, as described in the Cats documentation.
Functional modification: Enhanced error messages
Error messages when an exception occurs in a database operation have been modified to make them more visible and understandable.
==> X ldbc.tests.LdbcSQLStringContextQueryTest.Statement should be able to retrieve BIT type records. 0.146s ldbc.connector.exception.SQLException:
🔥
🔥 MySQL ERROR code 1054 (42S22)
🔥
🔥 Problem: Unknown column 'not found' in 'field list'
🔥
🔥 The statement under consideration is
🔥
🔥 SELECT `bit`, `not found` FROM `connector_test`.`all_types`
🔥
What's Changed
🚀 Features
- Feature/2024 07 enhanced error handling by @takapi327 in #245
💪 Enhancement
- Enhancement/2024 07 sql exception message enhancement by @takapi327 in #246
🧰 Maintenance
- Chore/2024 07 change to deprecated by @takapi327 in #254
- Chore/2024 07 delete docker version by @takapi327 in #255
🔧 Refactoring
- Feature/2024 06 integration of query builder into dsl by @takapi327 in #231
- Refactor/2024 06 modification of core packages by @takapi327 in #242
- Delete unused cats dependencies by @takapi327 in #250
⛓️ Dependency update
- Update mdoc, sbt-mdoc from 2.5.2 to 2.5.3 by @scala-steward in #241
- Update circe-generic from 0.14.7 to 0.14.8 by @scala-steward in #238
- Update circe-yaml from 0.15.1 to 0.15.2 by @scala-steward in #239
- Update circe-generic from 0.14.8 to 0.14.9 by @scala-steward in #244
- Update mdoc, sbt-mdoc from 2.5.3 to 2.5.4 by @scala-steward in #249
- Update circe-yaml from 0.15.2 to 0.15.3 by @scala-steward in #251
Full Changelog: v0.3.0-beta4...v0.3.0-beta5