Skip to content

v0.3.0-beta5

Compare
Choose a tag to compare
@takapi327 takapi327 released this 20 Jul 15:43
· 884 commits to master since this release

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 to M[A])
  • handleErrorWith: handle exception (convert M[A] to M[B])
  • attempt: catch exception (convert M[A] to M[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

💪 Enhancement

  • Enhancement/2024 07 sql exception message enhancement by @takapi327 in #246

🧰 Maintenance

🔧 Refactoring

⛓️ Dependency update

Full Changelog: v0.3.0-beta4...v0.3.0-beta5