Changelog

Copy Markdown

0.1.6

0.1.5

  • Functions install, uninstall, uninstall_all, merge, create_shared_infrastructure, and install_triggers now require repo to be passed explicitly instead of optionally passing it in opts. This aligns the signatures of the public functions.
  • Removed the get_repo helper, the otp_app repo lookup field, and the NoRepoError module.

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 uninstall_all 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 ➚ 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.