Packages

Builds database trigger logic for incremental updates to a destination table.

Current section

Files

Jump to
sublimate CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
## 0.1.4
- Align `install` and `uninstall` arguments.
- Add optional source discriminator `source_name` to `Sublimate.ProjectionData`'s config. This enables multiple configs against one destination to have distinct distinct trigger and function names.
- Add functions `Sublimate.create_shared_infrastructure/4` and `Sublimate.install_triggers/3` as composable building blocks for installing multiple projections against one shared destination table (advanced use). `Sublimate.install/2` composes them and is unchanged for single-projection use. Note that a working multi-projection setup also requires the strategy to distinguish rows per source (e.g. via a discriminator column); these functions provide the installation primitives, not a complete multi-source solution.
- Add function `Sublimate.uninstall_all/2` that removes the installed infrastructures from a list of `Sublimate.ProjectionData` structs.
- Add `Sublimate.TestHelpers.uninstall_all_artifacts/1` for cleaning up triggers, functions, and deltas tables Sublimate created during tests.
## 0.1.3
Improve identity column type validation.
## 0.1.2
Prevent "identifier too long" errors when trigger names (derived from destination table and joined
table, plus suffixes) exceed the PostreSQL identifier limit. The changed initialisation limits the
trigger name length using a deterministic hash.
## 0.1.1
Republished because of a checksum mismatch.
## 0.1.0
[Refine's ➚](https://hex.pm/packages/refine) trigger logic is split into this standalone
helper library. Sublimate owns incremental maintenance (deltas, triggers, merge scaffolding); Refine
implements the behaviour to project into facet bitmaps.