Skip to content

1.5.0

Choose a tag to compare

@smyrgeorge smyrgeorge released this 21 Nov 22:51
· 189 commits to main since this release

Release: sqlx4k 1.5.0 (2025-11-21)

Highlights

  • Cross-database support for setting transaction isolation level via Connection.setTransactionIsolationLevel(...)
    across MySQL, PostgreSQL, and SQLite.
  • Safer PostgreSQL PGMQ schema: pgmq.topic_bindings.queue_name now has a foreign key with ON DELETE CASCADE.
  • Simplified execution paths leveraging shared encoders; fewer overrides and cleaner internals.
  • Dependency refresh across SQLite JDBC, PostgreSQL R2DBC, Apache Calcite, Spring Boot, and KSP.

New features

  • Transaction isolation levels across databases
    • New API: Connection.setTransactionIsolationLevel(level: IsolationLevel, lock: Boolean = false).
    • Implemented for MySQL, PostgreSQL, and SQLite.
    • Defaults per database.
    • Commits: 22521c80, 165daac6, 1edfaa54, b5670d59.

Behavior and schema changes

  • PostgreSQL PGMQ: add FK on pgmq.topic_bindings(queue_name) with ON DELETE CASCADE for safer cleanup.
    • Commit: 6bfb62d2.
    • Impact: Deleting a queue cascades to its topic bindings.
    • Suggested migration example:
      ALTER TABLE pgmq.topic_bindings
        ADD CONSTRAINT fk_topic_bindings_queue_name
        FOREIGN KEY (queue_name)
        REFERENCES pgmq.queues(queue_name)
        ON DELETE CASCADE;

API changes and refactors

  • Connection interface now includes setTransactionIsolationLevel(...).
    • Maintainors of custom Connection impls must add this method.
    • Commits: 22521c80, 1edfaa54, b5670d59.
  • Unify default execution using encoders; remove DB-specific overrides of execute and fetchAll(Statement).
    • Commits: 4f7e48da, 243627ed.
  • Expose/propagate encoders across modules; remove redundant companion objects.
    • Commit: 243627ed.
  • Internal cleanup: inline isolation level SQL; remove NoQuotingString (internal).
    • Commit: b5670d59.

Documentation

  • README improvements:
    • Added "Running Queries" and "Setting Transaction Isolation Level" sections.
    • Formatting and language updates.
    • Commits: 3df1e91d, f558c75c, a010e079.

Dependency updates

  • SQLite JDBC: org.xerial:sqlite-jdbc 3.50.3.0 → 3.51.0.0 (e57682f0).
  • KSP: 2.2.20-2.0.42.3.0 (1ce65f66), then 2.3.02.3.2 (ea5b9658).
  • PostgreSQL R2DBC: org.postgresql:r2dbc-postgresql 1.1.0.RELEASE → 1.1.1.RELEASE (414075c6).
  • Apache Calcite: 1.40.01.41.0 (ff291302).
  • Spring Boot: 3.5.63.5.7 (2b06e836).

Upgrade notes

  • If you implement custom Connection types, add setTransactionIsolationLevel(...).
  • PostgreSQL PGMQ users: consider applying the FK with cascade delete if you rely on the provided schema SQL.
  • Review dependency bumps for any transitive changes.

Full Changelog: 1.4.1...1.5.0