Current section

Files

Jump to
ash_sql 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 -->
## [v0.2.83](https://github.com/ash-project/ash_sql/compare/v0.2.82...v0.2.83) (2025-06-25)
### Bug Fixes:
* ensure calculations are properly type cast by [@zachdaniel](https://github.com/zachdaniel)
## [v0.2.82](https://github.com/ash-project/ash_sql/compare/v0.2.81...v0.2.82) (2025-06-18)
### Improvements:
* optimize/simplify boolean functions like && and || by [@zachdaniel](https://github.com/zachdaniel)
## [v0.2.81](https://github.com/ash-project/ash_sql/compare/v0.2.80...v0.2.81) (2025-06-17)
### Improvements:
* fix another double-type-casting issue by [@zachdaniel](https://github.com/zachdaniel)
## [v0.2.80](https://github.com/ash-project/ash_sql/compare/v0.2.79...v0.2.80) (2025-06-12)
### Bug Fixes:
* don't double cast literals by [@zachdaniel](https://github.com/zachdaniel)
## [v0.2.79](https://github.com/ash-project/ash_sql/compare/v0.2.78...v0.2.79) (2025-06-10)
### Bug Fixes:
* ensure that subqueries have prefix set on atomic update selection by [@zachdaniel](https://github.com/zachdaniel)
* apply subquery schema on many-to-many relationships (#143) by kernel-io
## [v0.2.78](https://github.com/ash-project/ash_sql/compare/v0.2.77...v0.2.78) (2025-06-05)
### Bug Fixes:
* always cast operator types, even simple ones
* undo change that prevents casting literals
## [v0.2.77](https://github.com/ash-project/ash_sql/compare/v0.2.76...v0.2.77) (2025-06-04)
### Bug Fixes:
* clean up a whole slew of ecto hacks that arent necessary
* don't implicitly cast all values
### Improvements:
* reduce cases of double-typecasting
## [v0.2.76](https://github.com/ash-project/ash_sql/compare/v0.2.75...v0.2.76) (2025-05-23)
### Bug Fixes:
* retain constraints when type casting
## [v0.2.75](https://github.com/ash-project/ash_sql/compare/v0.2.74...v0.2.75) (2025-05-06)
### Bug Fixes:
* use higher start bindings to avoid shadowing (#133)
* fix calculation remapping post-distinct
### Improvements:
* support combination queries (#131)
* support combination queries
* Support rem through fragment (#130)
## [v0.2.74](https://github.com/ash-project/ash_sql/compare/v0.2.73...v0.2.74) (2025-05-01)
### Bug Fixes:
* don't group aggregates w/ parent refs
## [v0.2.73](https://github.com/ash-project/ash_sql/compare/v0.2.72...v0.2.73) (2025-04-29)
### Bug Fixes:
* prefix subqueries for atomic validations
* change start_of_day
## [v0.2.72](https://github.com/ash-project/ash_sql/compare/v0.2.71...v0.2.72) (2025-04-22)
### Bug Fixes:
* prefix subqueries for atomic validations
* change start_of_day
## [v0.2.71](https://github.com/ash-project/ash_sql/compare/v0.2.70...v0.2.71) (2025-04-17)
### Bug Fixes:
* convert tz properly for start_of_day
## [v0.2.70](https://github.com/ash-project/ash_sql/compare/v0.2.69...v0.2.70) (2025-04-17)
### Bug Fixes:
* handle query aggregate in aggregate field properly
## [v0.2.69](https://github.com/ash-project/ash_sql/compare/v0.2.68...v0.2.69) (2025-04-15)
### Bug Fixes:
* pass correct operation to split_statements (#121)
## [v0.2.68](https://github.com/ash-project/ash_sql/compare/v0.2.67...v0.2.68) (2025-04-15)
### Bug Fixes:
* duplicate aggregate pruning was pruning non-duplicates
* handle map type logic natively in ash_sql instead of extensions
## [v0.2.67](https://github.com/ash-project/ash_sql/compare/v0.2.66...v0.2.67) (2025-04-09)
### Bug Fixes:
* we do need to set the binding, but can just give it a unique name
* remove explicitly set binding.
## [v0.2.66](https://github.com/ash-project/ash_sql/compare/v0.2.65...v0.2.66) (2025-03-26)
### Bug Fixes:
* set proper `refs_at_path` for `exists` queries
## [v0.2.65](https://github.com/ash-project/ash_sql/compare/v0.2.64...v0.2.65) (2025-03-26)
### Bug Fixes:
* call `.to_tenant` on the ash query, not the ecto query
## [v0.2.64](https://github.com/ash-project/ash_sql/compare/v0.2.63...v0.2.64) (2025-03-26)
### Improvements:
* use new fill_template fn (#115)
## [v0.2.63](https://github.com/ash-project/ash_sql/compare/v0.2.62...v0.2.63) (2025-03-25)
### Bug Fixes:
* handle embeds typed as json/jsonb/map
## [v0.2.62](https://github.com/ash-project/ash_sql/compare/v0.2.61...v0.2.62) (2025-03-18)
### Bug Fixes:
* support aggregate queries that are against aggregates or calcs
* add handling for multidimensional arrays in `IN` operator
## [v0.2.61](https://github.com/ash-project/ash_sql/compare/v0.2.60...v0.2.61) (2025-03-11)
### Bug Fixes:
* don't use embedded resources as expressions
* hydrate aggregate expressions at the target
## [v0.2.60](https://github.com/ash-project/ash_sql/compare/v0.2.59...v0.2.60) (2025-03-03)
### Bug Fixes:
* properly join to parent paths in aggregate filters
## [v0.2.59](https://github.com/ash-project/ash_sql/compare/v0.2.58...v0.2.59) (2025-02-27)
### Bug Fixes:
* wrap strpos comparison in parenthesis
## [v0.2.58](https://github.com/ash-project/ash_sql/compare/v0.2.57...v0.2.58) (2025-02-25)
### Bug Fixes:
* various binding index fixes
* use new functions in `ash` for proper expansion
* use `count()` when no field is provided for count aggregate
## [v0.2.57](https://github.com/ash-project/ash_sql/compare/v0.2.56...v0.2.57) (2025-02-17)
### Bug Fixes:
* rewrite loaded calculations in distinct subqueries
* ensure literal maps are casted to maps in atomic update select
* cast complex types in operator signatures
## [v0.2.56](https://github.com/ash-project/ash_sql/compare/v0.2.55...v0.2.56) (2025-02-11)
### Bug Fixes:
* more consistent tz handling in `start_of_day`
## [v0.2.55](https://github.com/ash-project/ash_sql/compare/v0.2.54...v0.2.55) (2025-02-11)
### Improvements:
* add StringPosition expression (#98) (#99)
## [v0.2.54](https://github.com/ash-project/ash_sql/compare/v0.2.53...v0.2.54) (2025-02-08)
### Bug Fixes:
* properly join to aggregates in `parent` exprs in relationships
* handle non-utc timezoned databases
* join requirements in parent exprs in first relationship of aggregates
## [v0.2.53](https://github.com/ash-project/ash_sql/compare/v0.2.52...v0.2.53) (2025-02-05)
### Bug Fixes:
* simplify lateral join source
## [v0.2.52](https://github.com/ash-project/ash_sql/compare/v0.2.51...v0.2.52) (2025-02-04)
### Bug Fixes:
* ensure single agg query has bindings
## [v0.2.51](https://github.com/ash-project/ash_sql/compare/v0.2.50...v0.2.51) (2025-02-03)
### Bug Fixes:
* don't attempt to cast to `nil`
* Use modified query instead of original when calling add_single_aggs (#94)
## [v0.2.50](https://github.com/ash-project/ash_sql/compare/v0.2.49...v0.2.50) (2025-01-31)
### Bug Fixes:
* properly handle database time zones in `start_of_day/1-2`
## [v0.2.49](https://github.com/ash-project/ash_sql/compare/v0.2.48...v0.2.49) (2025-01-30)
### Improvements:
* support `start_of_day/1-2`
## [v0.2.48](https://github.com/ash-project/ash_sql/compare/v0.2.47...v0.2.48) (2025-01-23)
### Bug Fixes:
* handle nested many to many binding overlaps
## [v0.2.47](https://github.com/ash-project/ash_sql/compare/v0.2.46...v0.2.47) (2025-01-22)
### Bug Fixes:
* properly fetch source query for many to many rels
## [v0.2.46](https://github.com/ash-project/ash_sql/compare/v0.2.45...v0.2.46) (2025-01-20)
### Improvements:
* support `no_cast?` in bindings while expr parsing
## [v0.2.45](https://github.com/ash-project/ash_sql/compare/v0.2.44...v0.2.45) (2025-01-14)
### Bug Fixes:
* ensure that referenced fields are joined in agg queries
## [v0.2.44](https://github.com/ash-project/ash_sql/compare/v0.2.43...v0.2.44) (2025-01-06)
### Bug Fixes:
* filter query by source record ids when lateral joining
* use `normalize` for string length
* use right value for resource aggregate default in sort (#85)
* handle resource aggregate with function default in sort (#84)
## [v0.2.43](https://github.com/ash-project/ash_sql/compare/v0.2.42...v0.2.43) (2024-12-26)
### Bug Fixes:
* return `{:empty, query}` on empty atomic changes
## [v0.2.42](https://github.com/ash-project/ash_sql/compare/v0.2.41...v0.2.42) (2024-12-20)
### Bug Fixes:
* properly bind many to many relationships in aggregates
## [v0.2.41](https://github.com/ash-project/ash_sql/compare/v0.2.40...v0.2.41) (2024-12-12)
### Bug Fixes:
* apply attribute multitenancy on joined resources
* use lateral join for parent_expr many to many joins
* ensure join binding is available for join resource in exists
* add missing pattern for setting group context
## [v0.2.40](https://github.com/ash-project/ash_sql/compare/v0.2.39...v0.2.40) (2024-12-06)
### Improvements:
* various fixes to the methodology behind type determination
## [v0.2.39](https://github.com/ash-project/ash_sql/compare/v0.2.38...v0.2.39) (2024-11-04)
### Bug Fixes:
* properly reference `from_many?` source binding while joining
## [v0.2.38](https://github.com/ash-project/ash_sql/compare/v0.2.37...v0.2.38) (2024-10-29)
### Bug Fixes:
* ensure we join on parent expressions when joining filtered relationships
## [v0.2.37](https://github.com/ash-project/ash_sql/compare/v0.2.36...v0.2.37) (2024-10-28)
### Bug Fixes:
* properly determine join style for parent expressions
* count: use asterisk if not distinct by field is given (#72)
## [v0.2.36](https://github.com/ash-project/ash_sql/compare/v0.2.35...v0.2.36) (2024-10-08)
### Bug Fixes:
* properly handle parent bindings in aggregate references
## [v0.2.35](https://github.com/ash-project/ash_sql/compare/v0.2.34...v0.2.35) (2024-10-07)
### Bug Fixes:
* properly group aggregates together
* don't attempt to add multiple filter statements to a single aggregate
## [v0.2.34](https://github.com/ash-project/ash_sql/compare/v0.2.33...v0.2.34) (2024-09-27)
### Bug Fixes:
* use `NULL` for cases where we get `nil` values. We actually want `nil` here.
## [v0.2.33](https://github.com/ash-project/ash_sql/compare/v0.2.32...v0.2.33) (2024-09-26)
### Bug Fixes:
* don't reorder selects when modifying for subquery presence
## [v0.2.25](https://github.com/ash-project/ash_sql/compare/v0.2.24...v0.2.25) (2024-07-22)
### Bug Fixes:
* track subqueries while selecting atomics
## [v0.2.24](https://github.com/ash-project/ash_sql/compare/v0.2.23...v0.2.24) (2024-07-17)
### Bug Fixes:
* properly determine `parent_as` bindings for nested joins
## [v0.2.23](https://github.com/ash-project/ash_sql/compare/v0.2.22...v0.2.23) (2024-07-17)
### Bug Fixes:
* fix build
* properly expand resource calculation/aggregates in fields
## [v0.2.22](https://github.com/ash-project/ash_sql/compare/v0.2.21...v0.2.22) (2024-07-16)
### Bug Fixes:
* properly adjust calculation expressions before adding to query
* properly traverse nested maps in non-select contexts
* pass correct resource down when adding calculation fields
## [v0.2.21](https://github.com/ash-project/ash_sql/compare/v0.2.20...v0.2.21) (2024-07-16)
### Bug Fixes:
* move `FILTER` outside of `array_agg` aggregation
* properly honor `include_nil?` option on sorted first aggregates
## [v0.2.20](https://github.com/ash-project/ash_sql/compare/v0.2.19...v0.2.20) (2024-07-15)
### Bug Fixes:
* don't set load on anonymous aggregates
## [v0.2.19](https://github.com/ash-project/ash_sql/compare/v0.2.18...v0.2.19) (2024-07-15)
### Bug Fixes:
* match on old return types for `determine_types` code
## [v0.2.18](https://github.com/ash-project/ash_sql/compare/v0.2.17...v0.2.18) (2024-07-15)
### Bug Fixes:
* properly set aggregate query context
## [v0.2.17](https://github.com/ash-project/ash_sql/compare/v0.2.16...v0.2.17) (2024-07-14)
### Improvements:
* use `determine_types/3` in callback
## [v0.2.16](https://github.com/ash-project/ash_sql/compare/v0.2.15...v0.2.16) (2024-07-14)
### Bug Fixes:
* cast atomics when creating expressions
### Improvements:
* support latest format for type determination type
## [v0.2.15](https://github.com/ash-project/ash_sql/compare/v0.2.14...v0.2.15) (2024-07-13)
### Bug Fixes:
* use original field for type signal when selecting atomics
## [v0.2.14](https://github.com/ash-project/ash_sql/compare/v0.2.13...v0.2.14) (2024-07-13)
### Improvements:
* use explicit `NULL` fragment in error type hints
## [v0.2.13](https://github.com/ash-project/ash_sql/compare/v0.2.12...v0.2.13) (2024-07-12)
### Bug Fixes:
* use expression type for atomic updates
## [v0.2.12](https://github.com/ash-project/ash_sql/compare/v0.2.11...v0.2.12) (2024-07-12)
### Bug Fixes:
* properly handle nested `nil` filters in boolean statements
## [v0.2.11](https://github.com/ash-project/ash_sql/compare/v0.2.10...v0.2.11) (2024-07-11)
### Improvements:
* select pkey so data layers don't have to
## [v0.2.10](https://github.com/ash-project/ash_sql/compare/v0.2.9...v0.2.10) (2024-07-08)
### Bug Fixes:
* ensure selected atomics are also reversed
## [v0.2.9](https://github.com/ash-project/ash_sql/compare/v0.2.8...v0.2.9) (2024-07-08)
### Bug Fixes:
* retain original order for atomics statements
## [v0.2.8](https://github.com/ash-project/ash_sql/compare/v0.2.7...v0.2.8) (2024-07-06)
### Improvements:
* handle `{:array, :map}` stored as `:map`
## [v0.2.7](https://github.com/ash-project/ash_sql/compare/v0.2.6...v0.2.7) (2024-06-27)
### Bug Fixes:
* prefer resource's static prefix over current query's prefix
## [v0.2.6](https://github.com/ash-project/ash_sql/compare/v0.2.5...v0.2.6) (2024-06-18)
### Bug Fixes:
* ensure we always honor `atomics_at_binding` option from data layer
## [v0.2.5](https://github.com/ash-project/ash_sql/compare/v0.2.4...v0.2.5) (2024-06-13)
### Bug Fixes:
* properly remap selects on nested subqueries
## [v0.2.4](https://github.com/ash-project/ash_sql/compare/v0.2.3...v0.2.4) (2024-06-13)
### Bug Fixes:
* remap nested selects when sort requires a subquery
* don't create dynamics for map atomics where there are no expressions
### Improvements:
* only use `jsonb_build_object` for expressions, not literals
## [v0.2.3](https://github.com/ash-project/ash_sql/compare/v0.2.2...v0.2.3) (2024-06-06)
### Bug Fixes:
* various fixes to retain lateral join context
## [v0.2.2](https://github.com/ash-project/ash_sql/compare/v0.2.1...v0.2.2) (2024-06-05)
### Bug Fixes:
* carry over tenant in joined queries
## [v0.2.1](https://github.com/ash-project/ash_sql/compare/v0.2.0...v0.2.1) (2024-06-02)
### Improvements:
* select dynamics uses `__new_` prefix
## [v0.2.0](https://github.com/ash-project/ash_sql/compare/v0.1.3...v0.2.0) (2024-05-29)
### Features:
* add auto dispatch of dynamic_expr calls to behaviour module (#33)
* add auto dispatch of dynamic_expr calls to behaviour module
### Bug Fixes:
* match on new & old parameterized types
### Improvements:
* support selecting atomic results into a subquery, and using those as the atomic values
## [v0.1.3](https://github.com/ash-project/ash_sql/compare/v0.1.2...v0.1.3) (2024-05-22)
### Bug Fixes:
* handle anonymous sorting aggregates
* properly set aggregate source binding when adding aggregate calculations
* use period notation to access aggregate context fields (#30)
* use SQL standard = instead of non standard == (#28)
## [v0.1.2](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.20...v0.1.2) (2024-05-10)
## [v0.1.1-rc.20](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.19...v0.1.1-rc.20) (2024-05-08)
### Bug Fixes:
* don't use `fragment("1")` because ecto requires a proper select
## [v0.1.1-rc.19](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.18...v0.1.1-rc.19) (2024-05-05)
### Bug Fixes:
* use calculation context, and set calculation constraints for aggregates
## [v0.1.1-rc.18](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.17...v0.1.1-rc.18) (2024-05-05)
### Bug Fixes:
* don't use `ilike` if its not supported
* use type for now expr if available
## [v0.1.1-rc.17](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.16...v0.1.1-rc.17) (2024-05-02)
### Bug Fixes:
* use manual relationship impl for exists subqueries
## [v0.1.1-rc.16](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.15...v0.1.1-rc.16) (2024-05-01)
### Bug Fixes:
* hydrate & fill template for related queries
## [v0.1.1-rc.15](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.14...v0.1.1-rc.15) (2024-04-29)
### Bug Fixes:
* properly support custom expressions
## [v0.1.1-rc.14](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.13...v0.1.1-rc.14) (2024-04-29)
### Bug Fixes:
* fix argument order in AshSql.Bindings.default_bindings/4
* query_with_atomics pattern matching error
* fix argument order in AshSql.Bindings.default_bindings/4
## [v0.1.1-rc.13](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.12...v0.1.1-rc.13) (2024-04-27)
### Improvements:
* better inner-join-ability detection
## [v0.1.1-rc.12](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.11...v0.1.1-rc.12) (2024-04-26)
### Improvements:
* better type casting logic
## [v0.1.1-rc.11](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.10...v0.1.1-rc.11) (2024-04-23)
### Bug Fixes:
* ensure tenant is properly set in aggregates
* properly pass context through when expanding calculations in aggregates
## [v0.1.1-rc.10](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.9...v0.1.1-rc.10) (2024-04-22)
### Improvements:
* optimize `contains` when used with literal strings
## [v0.1.1-rc.9](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.8...v0.1.1-rc.9) (2024-04-22)
### Bug Fixes:
* make `strpos_function` overridable (sqlite uses `instr`)
## [v0.1.1-rc.8](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.7...v0.1.1-rc.8) (2024-04-22)
### Bug Fixes:
* handle non-literal lists in string join
## [v0.1.1-rc.7](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.6...v0.1.1-rc.7) (2024-04-20)
### Bug Fixes:
* ensure that `from_many?` is properly honored
* ensure applied query gets joined
* apply related filter inside of related subquery
## [v0.1.1-rc.6](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.5...v0.1.1-rc.6) (2024-04-12)
### Improvements:
* apply aggregate filters on first join aggregates
## [v0.1.1-rc.5](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.4...v0.1.1-rc.5) (2024-04-11)
### Bug Fixes:
* don't use to_tenant
* loosen elixir requirements
### Improvements:
* automatically wrap fragments in parenthesis
* remove unnecessary parenthesis from builtin fragments
## [v0.1.1-rc.4](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.3...v0.1.1-rc.4) (2024-04-05)
### Improvements:
* loosen ash rc restriction
## [v0.1.1-rc.3](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.2...v0.1.1-rc.3) (2024-04-01)
### Bug Fixes:
* fixes for `ash_postgres`
## [v0.1.1-rc.2](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.1...v0.1.1-rc.2) (2024-04-01)
### Improvements:
* refactoring out and parameterization to support ash_sqlite
## [v0.1.1-rc.1](https://github.com/ash-project/ash_sql/compare/v0.1.1-rc.0...v0.1.1-rc.1) (2024-04-01)
### Improvements:
* remove postgres-specific copy-pasta
## [v0.1.1-rc.0](https://github.com/ash-project/ash_sql/compare/v0.1.0...v0.1.1-rc.0) (2024-04-01)
## [v0.1.0](https://github.com/ash-project/ash_sql/compare/v0.1.0...v0.1.0) (2024-04-01)
### Improvements:
* extract a bunch of things out of AshPostgres