Skip to content

Update sadu to v2.4.2 - #266

Merged
yannicklamprecht merged 1 commit into
mainfrom
renovate/sadu
Nov 7, 2026
Merged

yannicklamprecht merged 1 commit into
mainfrom
renovate/sadu

Conversation

@renovate

@renovate renovate Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
de.chojo.sadu:sadu-postgresql 2.3.9 → 2.4.2 age confidence
de.chojo.sadu:sadu-datasource 2.3.9 → 2.4.2 age confidence
de.chojo.sadu:sadu-updater 2.3.9 → 2.4.2 age confidence
de.chojo.sadu:sadu-queries 2.3.9 → 2.4.2 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

rainbowdashlabs/sadu (de.chojo.sadu:sadu-postgresql)

v2.4.2: 2.4.2

SADU 2.4.2

Rows that cannot be mapped now reach your exception handler like every other query error.

Before updating
  • Behaviour change: with setThrowExceptions(false) (the default), a read whose rows cannot be mapped no longer throws MappingException at the caller. It returns an empty result, and the error goes to the exception handler and the result's exceptions. Code that caught MappingException around a query will not see it any more.
Bugfixes
  • MappingException skipped the exception handler: errors from mapAs and map are passed to the handler set with setExceptionHandler, follow setThrowExceptions and show up in hasExceptions() and exceptions() of the result.
Improvements
  • Dependencies: sqlite-jdbc 3.54.1.0 and jspecify 1.0.1.
Developer notes
  • The handler receives a QueryException whose getCause() is the MappingException, and whose message contains the SQL of the query. Check the cause to tell mapping errors apart from database errors.
  • With setThrowExceptions(true), the error is thrown as WrappedQueryExecutionException, with the QueryException as its cause.
  • QueryException passes SQL state and error code to SQLException. getSQLState() and getErrorCode() return the same values as before for database errors and null and 0 for mapping errors.

v2.4.1: 2.4.1

SADU 2.4.1

A small one: mappers marked with @MappingProvider("") map rows again, as they did before 2.4.0.

Bugfixes
  • MappingException: No mapper present for columns … with @MappingProvider(""): a mapping with a blank column is a wildcard again and is used for every result.
Improvements
  • Blank column names given to @MappingProvider, addColumn or addColumns are ignored with a warning in the log.
Developer notes
  • @MappingProvider takes no columns by default. A bare @MappingProvider declares a wildcard mapping and is the preferred form over @MappingProvider("").
  • Since 2.4.0, a mapper whose columns are not all in the result is no longer picked. If no mapper fits and there is no wildcard, mapAs throws MappingException. This release does not change that.

v2.4.0: 2.4.0

SADU 2.4.0

A big cleanup release: SADU now needs Java 21, its docs moved to docs.chojo.dev, and more than twenty bugs found while rewriting those docs are fixed. Transactions, batches and mappers now do what the docs always said they do.

Before updating
  • Java 21: SADU is built for Java 21 now (it was 17).
  • sadu-testing uses JUnit 6: projects using sadu-testing need JUnit 6 on their test class path.
  • Behaviour changes: some fixes change what existing code does. Check the Improvements and Bugfixes below if you use atomic batches, setAtomic(false), withConnection, PatchChecks or mapAs.
Features
  • Driver properties for MariaDB and SQLite: connection parameters reach these drivers unchanged, so values with /, spaces, & or = work. Read them with the new driverProperties().
  • UUID columns on PostgreSQL: uuid columns map to UUID (new PostgreSqlTypes.UUID).
  • sslpassword(String): replaces sslpassword(int), which is deprecated.
Improvements
  • Docs: everything moved to docs.chojo.dev/sadu, rewritten against the code, with the Javadoc next to it.
  • Root artifact: de.chojo.sadu:sadu now contains every module except sadu-testing, including sadu-queries.
  • Snapshots on EldoNexus: every push to main publishes a -SNAPSHOT build; releases go to Maven Central and EldoNexus.
  • Clearer update errors: a missing database/version or patch file names the file before any patch runs, and PatchChecks reports a file missing for one database.
  • Atomic batches stop at the first failed call and roll back; non-atomic batches skip the failed call.
  • setAtomic(false) means auto commit again, as in 1.x, and failed atomic work is rolled back.
  • withConnection sets auto commit from the atomic setting before the first query, and only commits or rolls back when auto commit is off.
  • mapAs uses a wildcard mapper or throws MappingException instead of picking a mapper whose columns don't fit.
  • sadu-testing jar no longer ships its own test files.
Bugfixes
  • hasExceptions() and isSuccess() see the query's exceptions.
  • Appended queries are only formatted when format arguments are given.
  • Named parameters after line breaks or other whitespace are found.
  • INSTANT_FROM_MILLIS and INSTANT_FROM_SECONDS return null for NULL.
  • PostgreSQL serial columns (smallserial, serial, bigserial) map to numbers; integer aliases are int2, int4 and int8, and count(*) read as Integer keeps working.
  • MariaDB/MySQL Byte[] reads BINARY, VARBINARY and BLOB columns.
  • ArrayConverter.toSet returns the elements, and Row.getList and the other list methods allow NULL elements.
  • @MappingProvider constructors that throw keep their exception as the cause.
  • Registering the same method mapping twice no longer fails, and registration is thread-safe.
  • Version writes of setup.sql and each patch happen inside their own transaction.
  • The missing-driver error names #driverClass.
  • Null shorts and bytes are bound as SMALLINT and TINYINT.
Developer notes
  • MariaDbJdbc#jdbcUrl() and SqLiteJdbc#jdbcUrl() no longer contain the parameters; callers outside DataSourceCreator need driverProperties(). With withHikariConfig you replace the driver properties too.
  • isSuccess() can now return false where it returned true before, and PatchChecks can fail on projects that passed before.
  • Built with Gradle 9.8.2 and Java 25 for release 21; dependencies updated (Testcontainers 2.0.5, MariaDB driver 4.0.0, HikariCP 7.1.0, JUnit 6.1.3).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot changed the title Update sadu to v2.4.1 Update sadu to v2.4.2 Nov 7, 2026
@yannicklamprecht
yannicklamprecht merged commit e7ae069 into main Nov 7, 2026
2 checks passed
@renovate
renovate Bot deleted the renovate/sadu branch November 8, 2026 01:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant