Skip to content

Releases: pointfreeco/swift-structured-queries

0.25.1

30 Oct 18:42

Choose a tag to compare

What's Changed

  • Fixed: Improve error messaging for invalid @DatabaseFunction applications (#219).
  • Fixed: Resolved an issue where tables with enum selections may fail to decode in certain scenarios (#220).

Full Changelog: 0.25.0...0.25.1

0.25.0

27 Oct 20:41
1447ea2

Choose a tag to compare

What's Changed

  • Added: @Columns now supports as parameter (#214).
  • Fixed: Allow values to be bound in createTemporaryView statements (#215).
  • Deprecated: Hard-deprecate SQLite OR conflict resolution (#212).
  • Infrastructure: Docs fixes (thanks @ScottPlease, #213; @juliensagot, #217).
  • Infrastructure: Add test coverage for enum selections (thanks @acosmicflamingo, #216).

New Contributors

Full Changelog: 0.24.0...0.25.0

0.24.0

16 Oct 16:34

Choose a tag to compare

What's Changed

  • Added: You can now define your own aggregate functions (#207).

Full Changelog: 0.23.2...0.24.0

0.23.2

15 Oct 16:57
b4fadef

Choose a tag to compare

What's Changed

  • Fixed: Fix macro-generated code for Swift <6.2 (#211).

Full Changelog: 0.23.1...0.23.2

0.23.1

10 Oct 21:31

Choose a tag to compare

What's Changed

  • Fixed: Address issue where an enum @Selection macro was generating incorrect query-building code for its nested Table.Columns type (#208).

Full Changelog: 0.23.0...0.23.1

0.23.0

08 Oct 20:01
edb84b3

Choose a tag to compare

What's Changed

Important

This release contains a breaking change (#203) that is necessary to avoid bugs related to subquery comparison operations, as well as bugs in synthesized Equatable conformances on Table types. Please start a discussion if this release introduces breaking changes that you need help fixing.

  • Added: New APIs for creating temporary triggers that "touch" columns (#202).
    -Reminder.createTemporaryTrigger(afterInsertTouch: { new in
    +Reminder.createTemporaryTrigger(after: .insert { new in
       new.position =
         Reminder
         .where { $0.remindersListID.eq(new.remindersListID) }
         .select { $0.position.max() + 1 }
         ?? 0
     })
    
    -Reminder.createTemporaryTrigger(afterUpdateTouch: \.updatedAt)
    +Reminder.createTemporaryTrigger(after: .update(touch: \.updatedAt))
    The old APIs have been deprecated in favor of these newer, more flexible APIs.
  • Fixed: Statement no longer inherits from Hashable (#203).
  • Fixed: Generate database functions as nonisolated for default main actor support (#205).

Full Changelog: 0.22.3...0.23.0

0.22.3

08 Oct 17:49
9bbfc44

Choose a tag to compare

What's Changed

  • Fixed: Add conditional conformances for selection protocol (#204).
  • Infrastructure: Add note to draft docs about conformances (#201).

Full Changelog: 0.22.2...0.22.3

0.22.2

06 Oct 18:22
603bcbf

Choose a tag to compare

What's Changed

  • Fixed: Restore default main actor isolation + Swift 6 language mode support, which regressed in 0.22.0 due to newly generated macro code (#200).
  • Infrastructure: reduce churn in trigger tests (#197).

Full Changelog: 0.22.1...0.22.2

0.22.1

03 Oct 18:29
9eaafed

Choose a tag to compare

What's Changed

  • Fixed: Improve performance of macro-expanded code to avoid complex expression compilation sluggishness in larger tables (#196).

Full Changelog: 0.22.0...0.22.1

0.22.0

02 Oct 18:11
49ce85d

Choose a tag to compare

What's Changed

  • Added: @Table/@Selection improvements for better composition, including nested column groupings, enums, and more (#184).
  • Fixed: @Table should not fail with comments on properties with defaults (#194).
  • Infrastructure: documentation improvements (thanks @Narsail, #188).

New Contributors

Full Changelog: 0.21.0...0.22.0