Packages

ash_postgres

2.2.0
2.10.0 2.9.1 2.9.0 2.8.0 2.7.0 2.6.32 2.6.31 2.6.30 2.6.29 2.6.28 2.6.27 2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.1 2.6.0 2.5.22 2.5.21 2.5.20 2.5.19 2.5.18 2.5.17 2.5.16 2.5.15 2.5.14 2.5.13 2.5.12 2.5.11 2.5.10 2.5.9 2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 2.5.3 2.5.2 2.5.1 2.5.0 2.4.21 2.4.20 2.4.19 2.4.18 2.4.17 2.4.16 2.4.15 2.4.14 2.4.13 2.4.12 2.4.11 2.4.10 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4.0 2.3.1 2.3.0 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.19 2.1.18 2.1.17 2.1.15 2.1.14 2.1.13 2.1.12 2.1.11 2.1.10 2.1.9 2.1.8 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.12 2.0.11 2.0.10 2.0.9 2.0.8 2.0.7 2.0.6 2.0.5 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 2.0.0-rc.15 2.0.0-rc.14 2.0.0-rc.13 2.0.0-rc.12 2.0.0-rc.11 2.0.0-rc.10 2.0.0-rc.9 2.0.0-rc.8 2.0.0-rc.7 2.0.0-rc.6 2.0.0-rc.5 2.0.0-rc.4 2.0.0-rc.3 2.0.0-rc.2 2.0.0-rc.1 2.0.0-rc.0 1.5.30 1.5.29 1.5.28 1.5.27 1.5.26 1.5.25 1.5.24 1.5.23 1.5.22 1.5.21 1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.14 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.0 1.3.68 1.3.67 1.3.66 1.3.65 1.3.64 1.3.63 1.3.62 1.3.61 1.3.60 1.3.59 1.3.58 1.3.56 1.3.55 1.3.54 1.3.53 1.3.52 1.3.51 1.3.50 1.3.49 1.3.48 1.3.47 1.3.46 1.3.45 1.3.44 1.3.43 1.3.42 1.3.41 1.3.40 1.3.39 1.3.38 1.3.37 1.3.36 1.3.35 1.3.34 1.3.33 1.3.32 1.3.31 1.3.30 1.3.29 1.3.28 1.3.26 1.3.25 1.3.24 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 1.3.18 1.3.17 1.3.16 1.3.15 1.3.14 1.3.12 1.3.11 1.3.10 1.3.9 1.3.8 1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.3.0-rc.4 1.3.0-rc.3 1.3.0-rc.2 1.3.0-rc.0 1.2.6 1.2.5 1.2.4 1.2.3 1.2.2 1.2.1 1.2.0 1.2.0-rc.1 1.2.0-rc.0 1.1.3 1.1.2 1.1.1 1.1.0 1.0.0 1.0.0-rc.9 1.0.0-rc.8 1.0.0-rc.7 1.0.0-rc.6 1.0.0-rc.5 1.0.0-rc.4 1.0.0-rc.3 1.0.0-rc.2 1.0.0-rc.1 1.0.0-rc.0 1.0.0-pre.3 1.0.0-pre.2 1.0.0-pre.1 1.0.0-pre.0 0.43.0 0.42.0-rc.7 0.42.0-rc.6 0.42.0-rc.5 0.42.0-rc.4 0.42.0-rc.3 0.42.0-rc.1 0.42.0-rc.0 0.41.7 0.41.6 0.41.5 0.41.4 0.41.3 0.41.2 0.41.1 0.41.0-rc0 retired 0.41.0-rc.9 0.41.0-rc.8 0.41.0-rc.7 0.41.0-rc.6 0.41.0-rc.5 0.41.0-rc.4 0.41.0-rc.3 0.41.0-rc.2 0.41.0-rc.1 0.41.0-rc.0 0.40.11 0.40.10 0.40.9 0.40.8 0.40.7 0.40.6 0.40.5 0.40.4 0.40.3 0.40.2 0.40.1 0.40.0-rc5 0.40.0-rc4 0.40.0-rc3 0.40.0-rc2 0.40.0-rc1 0.39.0-rc0 0.38.11 0.38.10 0.38.9 0.38.8 0.38.7 0.38.6 0.38.5 0.38.4 0.38.3 0.38.2 0.38.1 0.38.0 0.37.8 0.37.7 0.37.6 0.37.5 0.37.4 0.37.3 0.37.2 0.37.1 0.37.0 0.36.5 0.36.4 0.36.3 0.36.2 0.36.1 0.36.0 0.35.5 0.35.4 0.35.3 0.35.1 0.34.5 0.34.4 0.34.3 0.34.2 0.34.1 0.34.0 0.33.1 0.33.0 0.32.2 0.32.1 0.32.0 0.31.1 0.30.1 0.29.6 0.29.5 0.29.4 0.29.3 0.29.2 0.29.1 0.28.1 0.28.0 0.27.0 0.26.2 0.26.1 0.26.0 0.25.5 0.25.4 0.25.3 0.25.2 0.25.1 0.25.0 0.24.0 0.23.2 0.23.1 0.23.0 0.22.1 0.22.0 0.21.0 0.20.1 0.20.0 0.19.0 0.18.0 0.17.0 0.16.1 0.15.0 0.14.0 0.13.0 0.12.1 0.12.0 0.11.2 0.10.0 0.9.0 0.8.0 0.7.0 0.6.0 0.5.0 0.4.0 0.3.0 0.2.1 0.2.0 0.1.4 0.1.3 0.1.2 0.1.1 0.1.1-rc.2 0.1.1-rc.1 0.1.1-rc.0 0.1.0

The PostgreSQL data layer for Ash Framework

Security advisory: This version has known vulnerabilities. View advisories

Current section

Files

Jump to
ash_postgres CHANGELOG.md
Raw

CHANGELOG.md

# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](Https://conventionalcommits.org) for commit guidelines.
<!-- changelog -->
## [v2.2.0](https://github.com/ash-project/ash_postgres/compare/v2.1.19...v2.2.0) (2024-08-13)
### Bug Fixes:
- [`AshPostgres.Repo`] remove `Agent` "convenience" for determining min pg version
We need to require that users provide this function. To that end we're
adding a warning in a minor release branch telling users to define this.
The agent was acting as a bottleneck that all queries must go through,
causing nontrivial performance issues at scale.
- [upserts] handle filter condition on create (#368)
## [v2.1.19](https://github.com/ash-project/ash_postgres/compare/v2.1.18...v2.1.19) (2024-08-12)
### Bug Fixes:
- [ecto compatibility] we missed a change when preparing for ecto 3.12 parameterized type changes
- [exists aggregates] update ash_sql for exists aggregate fixes
## [v2.1.18](https://github.com/ash-project/ash_postgres/compare/v2.1.17...v2.1.18) (2024-08-09)
### Improvements:
- [`ash_postgres.gen.migration`] dynamically select and allow setting a repo
## [v2.1.17](https://github.com/ash-project/ash_postgres/compare/v2.1.16...v2.1.17) (2024-07-27)
### Improvements:
- [`ash_sql`] update ash & ash_sql for various fixes
## [v2.1.16](https://github.com/ash-project/ash_postgres/compare/v2.1.15...v2.1.16) (2024-07-25)
### Bug Fixes:
- [updates] don't overwrite non-updated fields on update
- [`mix ash_postgres.generate_migrations`] ensure app is compiled before using repo modules
### Improvements:
- [`ash_sql`] update ash_sql for cleaner queries
## [v2.1.15](https://github.com/ash-project/ash_postgres/compare/v2.1.14...v2.1.15) (2024-07-23)
### Bug Fixes:
- [query building] use a subquery if any exists aggregates are in play
## [v2.1.14](https://github.com/ash-project/ash_postgres/compare/v2.1.13...v2.1.14) (2024-07-22)
### Bug Fixes:
- [multitenancy] properly convert tenant to string when building lateral join
## [v2.1.13](https://github.com/ash-project/ash_postgres/compare/v2.1.12...v2.1.13) (2024-07-22)
### Bug Fixes:
- [atomic validations] update ash & ash_sql for fixes, test atomic validations in destroys
## [v2.1.12](https://github.com/ash-project/ash_postgres/compare/v2.1.11...v2.1.12) (2024-07-19)
### Bug Fixes:
- [`mix ash_postgres.install`] properly add prod config in installer
### Bug Fixes:
- [`mix ash_postgres.install`] properly perform or don't perform configuration modification code
- [`has_many` relationships] allow non-unique has_many source_attributes (#355)
### Improvements:
- [`mix ash_postgres.install`] prepend `:postgres` to section order
- [`mix ash.patch.extend`] pluralize table name in extender
## [v2.1.10](https://github.com/ash-project/ash_postgres/compare/v2.1.9...v2.1.10) (2024-07-18)
### Bug Fixes:
- [lateral joins] allow non-unique has_many source_attributes (#355)
## [v2.1.9](https://github.com/ash-project/ash_postgres/compare/v2.1.8...v2.1.9) (2024-07-18)
### Bug Fixes:
### Improvements:
- [`mix ash.gen.resource`] pluralize table name in extender
## [v2.1.8](https://github.com/ash-project/ash_postgres/compare/v2.1.7...v2.1.8) (2024-07-17)
### Bug Fixes:
- [aggregates] update ash_sql & ash for include_nil? fix (and test it)
- [aggregates] ensure synthesized query aggregates have context set
### Improvements:
- [installers] update igniter dependencies
- [expressions] add `binding()` expression, for referring to the current table
## [v2.1.7](https://github.com/ash-project/ash_postgres/compare/v2.1.6...v2.1.7) (2024-07-17)
### Bug Fixes:
- update to latest ash version for aggregate fix
- update ash_sql for include_nil? fix and test it
- ensure synthesized query aggregates have context set
### Improvements:
- update ash/igniter dependencies
- add `binding()` expression
- use latest type casting code from ash
- support new type determination code
## [v2.1.6](https://github.com/ash-project/ash_postgres/compare/v2.1.5...v2.1.6) (2024-07-16)
### Bug Fixes:
- ensure synthesized query aggregates have context set
### Improvements:
- update ash/igniter dependencies
- add `binding()` expression
- use latest type casting code from ash
- support new type determination code
## [v2.1.5](https://github.com/ash-project/ash_postgres/compare/v2.1.4...v2.1.5) (2024-07-15)
### Bug Fixes:
- ensure synthesized query aggregates have context set
### Improvements:
- [`Ash.Expr`] add `binding()` expression to refer to current table
- [`Ash.Expr`] use latest type casting code from ash
## [v2.1.4](https://github.com/ash-project/ash_postgres/compare/v2.1.3...v2.1.4) (2024-07-14)
### Improvements:
- [`Ash.Expr`] use latest type casting code from ash
## [v2.1.3](https://github.com/ash-project/ash_postgres/compare/v2.1.2...v2.1.3) (2024-07-14)
### Improvements:
- [`Ash.Expr`] support new type determination code
## [v2.1.2](https://github.com/ash-project/ash_postgres/compare/v2.1.1...v2.1.2) (2024-07-13)
- [query builder] update ash & improve type casting behavior
## [v2.1.1](https://github.com/ash-project/ash_postgres/compare/v2.1.0...v2.1.1) (2024-07-10)
### Bug Fixes:
- [mix ash_postgres.install] properly interpolate module names in installer
## [v2.1.0](https://github.com/ash-project/ash_postgres/compare/v2.0.12...v2.1.0) (2024-07-10)
### Features:
- [AshPostgres.DataLayer] add `storage_types` configuration (#342)
- [generators] add `mix ash_postgres.install` (`mix igniter.install ash_postgres`)
### Bug Fixes:
- [AshPostgres.DataLayer] ensure that `from_many?` relationships in lateral join have a limit applied
- [migration generator] properly delete args passed from migrate to ecto
### Improvements:
- [Ash.Type.UUIDv7] add support for `:uuid_v7` type (#333)
- [migration generator] order keys in snapshot json (#339)
## [v2.0.12](https://github.com/ash-project/ash_postgres/compare/v2.0.11...v2.0.12) (2024-06-20)
### Bug Fixes:
- [migration generator] only add references indexes if they've changed
## [v2.0.11](https://github.com/ash-project/ash_postgres/compare/v2.0.10...v2.0.11) (2024-06-19)
### Bug Fixes:
- [AshPostgres.DataLayer] rework expression type detection
- [migration generator] ensure index keys are atoms in generated migrations (#332)
## [v2.0.10](https://github.com/ash-project/ash_postgres/compare/v2.0.9...v2.0.10) (2024-06-18)
### Bug Fixes:
- [AshPostgres.DataLayer] update ash_sql to fix query generation issues
- [migration generator] ensure that parens are always added to calculation generated SQL
- [migration generator] properly get calculation sql
### Improvements:
- [AshPostgres.DataLayer] better type handling using new type inference
- [identities] identities w/ calculations and where clauses in upserts
## [v2.0.9](https://github.com/ash-project/ash_postgres/compare/v2.0.8...v2.0.9) (2024-06-13)
### Features:
- [migration generator] autogenerate index in references (#321)
### Bug Fixes:
- [AshPostgres.DataLayer] fix invalid select on sorting by some calculations
- [AshPostgres.DataLayer] fix error message displaying in identity verifier
- [lateral joining] ensure that context multitenancy is properly applied to lateral many-to-many joins
- [migration generator] don't assume old snapshots have `index?` key for attributes
- [ash.rollback] `list_tenants` -> `all_tenants`
- [ash.rollback] when checking for roll back-able migrations, only check `Path.basename`
### Improvements:
- [migration generator] don't sort identity keys.
## [v2.0.8](https://github.com/ash-project/ash_postgres/compare/v2.0.7...v2.0.8) (2024-06-06)
## [v2.0.7](https://github.com/ash-project/ash_postgres/compare/v2.0.6...v2.0.7) (2024-06-06)
### Bug Fixes:
- [fix] update ash_sql and fix issues retaining lateral join context
- [fix] ensure that all current attribute values are selected on bulk update shifted root query
## [v2.0.6](https://github.com/ash-project/ash_postgres/compare/v2.0.5...v2.0.6) (2024-05-29)
### Bug Fixes:
- [atomic updates] properly support aggregate references in atomic updates
- [migration generator] ensure that identities are dropped when where/nils_distinct? are changed
- [migration generator] ensure that `where` is wrapped in parenthesis
- [ecto compatibility] support old/new parameterized type format
### Improvements:
- [identities] require clarification of index names > 63 characters
- [mix ash_postgres.squash_snapshots] add `ash_postgres.squash_snapshots` mix task (#302)
## [v2.0.5](https://github.com/ash-project/ash_postgres/compare/v2.0.4...v2.0.5) (2024-05-24)
### Improvements:
- [idenities] update `ash` and support new `identity` features
## [v2.0.4](https://github.com/ash-project/ash_postgres/compare/v2.0.3...v2.0.4) (2024-05-23)
### Bug Fixes:
[updates] ensure update's reselect all changing values
## [v2.0.3](https://github.com/ash-project/ash_postgres/compare/v2.0.2...v2.0.3) (2024-05-22)
### Bug Fixes:
[updates] handle complex maps/list on update
[Ash.Query] support anonymous aggregates in sorts
[exists] ensure parent_as bindings properly reference binding names
[migration generator] add and remove custom indexes in tandem properly
### Improvements:
[references] support `on_delete: :nilify` for specific columns (#289)
## [v2.0.2](https://github.com/ash-project/ash_postgres/compare/v2.0.1...v2.0.2) (2024-05-15)
### Bug Fixes:
- [update_query/destroy_query] rework the update and destroy query builder to support multiple kinds of joining
- [mix ash_postgres.migrate] remove duplicate repo flags (#285)
- [Ash.Error.Changes.StaleRecord] ensure filter is included in stale record error messages we return
- [AshPostgres.MigrationGenerator] properly parse previous version from migration generation
## [v2.0.1](https://github.com/ash-project/ash_postgres/compare/v2.0.0...v2.0.1) (2024-05-12)
### Bug Fixes:
- [AshPostgres.MigrationGenerator] properly parse previous version of custom extensions when generating migrations
## [v2.0.0](https://github.com/ash-project/ash_postgres/compare/v2.0.0...2.0)
The changelog is starting over. Please see `/documentation/1.0-CHANGELOG.md` in GitHub for previous changelogs.
### Breaking Changes:
- [Ash.Type.UUID] change defaults in migrations for uuids to `gen_random_uuid()`
- [Ash.Type.DateTime] Use UTC for default generated timestamps (#131)
- [AshPostgres.DataLayer] must now know the min_pg_version that will be used. By default we check this at repo startup by asking the database, but you can also define it yourself.
- [AshPostgres.DataLayer] Now requires postgres version 14 or higher
### Features:
- [AshPostgres.Timestamptz] add timestamptz types (#266)
- [AshPostgres.Repo] add `create?` and `drop?` callbacks to `AshPostgres.Repo` (#143)
- [AshPostgres.DataLayer] support `c:AshDataLayer.calculate/3` capability
### Bug Fixes:
- [AshPostgres.MigrationGenerator] honor dry_run option in extension migrations
- [AshPostgres.MigrationGenerator] don't wait for shell input when checking migrations
- [AshPostgres.DataLayer] ensure limit/offset triggers joining for update/destroy query
- [AshPostgres.DataLayer] properly honor `limit` in bulk operations
- [AshPostgres.DataLayer] ensure that `exists` with a filter paired with `from_many?` functions properly
### Improvements:
- [AshPostgres.Repo] warn on missing ash-functions at compile time
- [AshPostgres.Repo] add default implementation for pg_version, and rename to `min_pg_version`
- [mix ash.rollback] support `mix ash.rollback` with interactive rollback
- [AshSql] move many internals out to `AshSql` package to be shared