Commit graph

332 commits

Author SHA1 Message Date
Zach Daniel
203b4ca287 fix: ensure limit/offset triggers joining for update/destroy query 2024-04-27 09:49:47 -04:00
Zach Daniel
c8d9dfa826 fix: only reference sub if a subquery is created 2024-04-27 09:44:35 -04:00
Riccardo Binetti
4bad5990c8
fix: fix argument order in AshSql.Bindings.default_bindings/4 (#251) 2024-04-26 19:32:42 -04:00
Zach Daniel
1524501236 fix: properly honor limit in bulk operations 2024-04-24 10:17:05 -04:00
Zach Daniel
1ad3cd4ba0 fix: undo change that expresses that atomics cant be done without ash-functions 2024-04-23 10:30:13 -04:00
Zach Daniel
d26a189946 improvement: warn on missing ash-functions at compile time
closes #242
2024-04-22 12:08:30 -04:00
Zach Daniel
e976ae5794 fix: update ash_sql, fix credo 2024-04-11 11:39:49 -04:00
Zach Daniel
14edb8ec36 chore: small formatting for task output fix 2024-04-09 20:51:24 -04:00
Zach Daniel
6d4c642522 docs: update docs for mix tasks 2024-04-09 20:49:39 -04:00
Zach Daniel
38eec0ba86 docs: reformat docs and revisit certain guides
improvement: support `mix ash.rollback` with interactive rollback
2024-04-09 20:21:04 -04:00
Zach Daniel
cfaf1f8201 test: fix test application in CI
fix: use proper sql implementation in `default_bindings`
2024-04-06 10:12:31 -04:00
Zach Daniel
eb08fed28b improvement: fixes for 3.0 changes and AshSql changes 2024-04-01 13:58:44 -04:00
Zach Daniel
efcc1a651b improvement: move many internals out to AshSql package 2024-03-31 22:38:12 -04:00
Zach Daniel
3647fc42ee improvement: add default implementation for pg_version, and rename to min_pg_version 2024-03-27 19:20:49 -04:00
Zach Daniel
37cc01957d
improvement!: 3.0 (#227)
* WIP

* chore: fix mix.lock merge issues

* improvement: upgrade to 3.0

* chore: remove `repo.to_tenant`

* chore: continue removal of unnecessary helper

* chore: use `Ash.ToTenant`
2024-03-27 16:52:28 -04:00
Zach Daniel
ec75b41dbe improvement: properly show unsupported error expression 2024-03-22 14:20:38 -04:00
Zach Daniel
2c1381d5e6 fix: encode maps on update using fragments 2024-03-19 00:06:15 -04:00
Zach Daniel
70af9ee5bd fix: always exclude :order_by on bulk updateable query 2024-03-05 09:19:55 -05:00
Zach Daniel
fce0fefe72 fix: don't apply join relationship sort for lateral join
fixes #218
2024-03-04 00:10:57 -05:00
Zach Daniel
2b3b6b0bc9 fix: properly leverage subqueries throughout relationship joining 2024-02-28 21:22:54 -05:00
Zach Daniel
6455bef6ed fix: ensure select is applied (or not) properly in bulk update/destroys 2024-02-25 21:35:33 -05:00
Zach Daniel
b6b2dd1dc6 fix: handle more subquery filter cases for aggregates 2024-02-24 20:20:52 -05:00
Zach Daniel
98f24b1923 Revert "fix: remove buggy global filter extraction"
This reverts commit 7c3b60b942.
2024-02-24 17:35:43 -05:00
Zach Daniel
7c3b60b942 fix: remove buggy global filter extraction 2024-02-24 17:20:03 -05:00
Zach Daniel
8fa10ac6ec fix: only apply filters inside aggregate subquery 2024-02-24 17:10:01 -05:00
Zach Daniel
37cb3825f1 fix: properly handle complex types in lists 2024-02-23 20:53:19 -05:00
Zach Daniel
c185ba80e8 fix: ensure select is properly set on delete_all 2024-02-21 16:37:28 -05:00
Zach Daniel
d0041ce88d improvement: optimize aggregate query filtering 2024-02-21 14:03:28 -05:00
Zach Daniel
2b91ebe488 fix: ensure proper return value for single aggregate runs 2024-02-21 09:56:33 -05:00
Zach Daniel
6e81afb24b fix: don't sort a query that will be used with delete_all
fix: ensure that `exists?` aggregates use `repo.exists?`
2024-02-21 07:54:58 -05:00
Zach Daniel
38d1beb0d8 fix: properly handle to_many joins in aggregates
fix: honor aggregate query filters
2024-02-20 18:38:35 -05:00
Dmitry Maganov
d2500b25f3
fix: properly transfer table names to non-inner wrapper queries (#210) 2024-02-20 11:15:06 -05:00
Zach Daniel
40522aadd8 chore: properly set __ash_bindings__ on bulk updatable query 2024-02-19 13:49:11 -05:00
Zach Daniel
f9a59cc5f6 chore: update style for credo 2024-02-19 13:35:36 -05:00
Zach Daniel
557bc6019c fix: handle non-inner joins in delete_all
fix: handle non-inner joins in update
2024-02-19 13:29:41 -05:00
Zach Daniel
7cbe482fc9 fix: don't update_all or delete_all with order_by 2024-02-19 12:40:26 -05:00
Zach Daniel
0979756b0b fix: handle updating from queries w/ non-inner initial joins 2024-02-19 11:56:48 -05:00
Zach Daniel
930d16a5e9 fix: handle original data not available in destroy_query 2024-02-12 10:08:48 -05:00
Zach Daniel
c72b57ece5 fix: use primary key of source as join key 2024-02-06 12:39:16 -05:00
Zach Daniel
43b576e09d fix: use pkey if error fields is empty 2024-02-01 15:48:23 -05:00
Zach Daniel
4494bf971f chore: changeset.resource -> resource 2024-02-01 15:21:50 -05:00
Zach Daniel
de7d6feaa3 fix: forgot to bind keys to a variable 🤦🏻 2024-02-01 15:12:17 -05:00
Zach Daniel
a940022eba fix: ensure identity keys is never missing 2024-02-01 14:59:49 -05:00
Zach Daniel
d71cb81792 improvement: handle if select is present on query 2024-01-31 16:30:23 -05:00
Zach Daniel
ffafa6c9f5 improvement: support Ash.Changeset.OriginalDataNotAvailable 2024-01-30 12:49:52 -05:00
Zach Daniel
7b9929f07c chore: format 2024-01-29 10:36:20 -05:00
Zach Daniel
98b1d2ad6c improvement: error_fields for custom_index
fix: proper return types for updates from queries
fix: allow atomics to return `nil`
2024-01-27 10:02:57 -05:00
Ryan
64e117603a
fix: Correct the matching used in building a distinct expression (#196) 2024-01-26 15:04:54 -05:00
Zach Daniel
29da61d661 chore: format 2024-01-24 12:49:38 -05:00
Zach Daniel
9926d5cb7c fix: only rollback to savepoint on specific errors 2024-01-24 11:37:24 -05:00
Zach Daniel
445de282c0 fix: remap selected fields, don't subquery in aggregate joins 2024-01-19 20:13:42 -05:00
Zach Daniel
9b5acd98f7 chore: credo, dialyzer, format 2024-01-10 08:34:23 -05:00
Zach Daniel
8bfa3ffa08 fix: don't overwrite manually set schema on lateral join query 2024-01-10 08:19:21 -05:00
Zach Daniel
a60dbf1725 fix: properly configure polymorphic_name option 2024-01-08 08:39:13 -05:00
Zach Daniel
65180ec3ac fix: honor configured schema on bulk create 2024-01-05 10:01:40 -05:00
Zach Daniel
c0c9621534 improvement: support new bulk operations
fix: support encoding errors with expressions in them
2023-12-31 08:40:30 -05:00
Zach Daniel
2a2fd30e33 improvement: support new return_query/2 callback
improvement: support new `:no_rollback` error signal
2023-12-29 21:49:34 -05:00
Zach Daniel
68e2f74fe0 improvement: support aggregates using other aggregates
fix: various fixes for unnecessary aggregate additions
test: added a test to confirm context based multitenancy behavior
2023-12-22 21:14:40 -05:00
Zach Daniel
5d246cc23b chore: take proper args from codegen args 2023-12-22 15:11:49 -05:00
Zach Daniel
9ca9272426 improvement: only start savepoints when necessary 2023-12-21 16:56:57 -05:00
Zach Daniel
61d229c685 fix: use lateral joins when joining to subquery w/ parent reference 2023-12-19 18:15:00 -05:00
Barnabas Jovanovics
c916034931
fix: replace upsert field with source in EXCLUDED fragment (#187) 2023-12-19 15:05:05 +01:00
Zach Daniel
5e0f3c4657 fix: handle strings in get_path 2023-12-15 18:11:18 -05:00
Zach Daniel
407a7163ed improvement: support for error/2 expression 2023-12-14 17:10:11 -05:00
Zach Daniel
51f51d92d2 fix: properly cast lazy update defaults to target type 2023-12-04 14:55:40 -05:00
Zach Daniel
dc984e83c7 fix: avoid empty error on upserts with :nothing
docs: add some small docs for custom extensions
2023-11-27 11:12:22 -05:00
Riccardo Binetti
021b7e4233
improvement: allow specifying multi-column foreign keys (#180)
* improvement: add match_with option on references
* improvement: add match_type option on references
2023-11-20 16:52:50 -05:00
Zach Daniel
39754d1f38 fix: handle no_attributes? flag on aggregates better
fix: properly handle sorted relationships in aggregates
2023-11-16 17:48:39 -05:00
Zach Daniel
4d672ba088 fix: don't append update_defaults automatically if upsert_fields was set 2023-11-15 16:08:44 -05:00
Zach Daniel
db8255e5b1 improvement: support a 2 argument function for the repo option 2023-11-14 10:56:22 -05:00
Zach Daniel
342920a3c4 improvement: support parent in sort expressions 2023-10-26 09:47:56 -04:00
Zach Daniel
0325196a20 improvement: allow for combining AshPostgres.Repo with other repos
fixes #172
2023-10-13 22:47:11 -04:00
Zach Daniel
cd6a7cae69 fix: don't raise all errors 2023-10-11 16:26:48 -04:00
Zach Daniel
1a6e469e57 improvement: support atomics on upserts 2023-10-11 15:17:50 -04:00
Zach Daniel
c6d71d74bf fix: fix type specification for foreign_key_names 2023-10-10 15:47:53 -04:00
Zach Daniel
772c12b5a3 fix: don't run main query if only exists aggs are specified
fixes: #170
2023-10-10 09:43:09 -04:00
Zach Daniel
5fdc81bf06 fix: subquery aggregate if limit is applied 2023-10-03 12:56:44 -04:00
Zach Daniel
99e8029499 improvement: fix upsert_fields behavior for upserts 2023-09-25 15:32:20 -04:00
Zach Daniel
b00dcf20c9 chore: format & fix docs 2023-09-22 17:16:47 -04:00
Zach Daniel
cca5f0244b chore: fix type names I just broke 2023-09-22 17:04:39 -04:00
Zach Daniel
a56f4ef52f docs: overhaul hexdocs 2023-09-22 16:14:25 -04:00
Zach Daniel
49490e6fb4 improvement: support data_layer_context option on transactions
chore: refactor create/upsert to use bulk create
2023-09-22 15:43:17 -04:00
Dmitry Maganov
b03fb51c36
fix: use :wrap_list type instead of custom validaitons (#167) 2023-09-21 15:44:02 -04:00
Zach Daniel
e8a4b41758 improvement: support vector types and vector_cosine_distance 2023-09-11 22:34:51 -04:00
James Harton
6cc88c82b4
improvement: Allow resources to opt out of the primary key requirement. (#166) 2023-09-06 01:18:57 -04:00
Zach Daniel
5182a1c6d0 improvement: implement ash lifecycle tasks 2023-09-04 13:08:14 -04:00
Zach Daniel
3f4f8c1d32 fix: ensure we always select at least one field, and change one field 2023-08-31 16:11:29 -04:00
Zach Daniel
1359068a69 fix: use provided values for updates 2023-08-31 16:03:23 -04:00
Zach Daniel
9f77304b22 fix: don't clobber loaded data on update 2023-08-31 13:04:08 -04:00
Zach Daniel
5a4a52854b
improvement: support atomics (#165) 2023-08-28 16:18:56 -04:00
Zach Daniel
99b2a5631c improvement: support in-line aggregates
fix: support non-atom named aggregates
2023-08-22 14:51:31 -04:00
Zach Daniel
7ce33cac2c fix: handle interaction between distinct, join filters and sort 2023-08-04 22:52:56 -04:00
Zach Daniel
d568ac18a8 improvement: support new from_many? option
improvement: subquery after distinct to handle distinct
2023-08-04 18:53:23 -04:00
Zach Daniel
83e78ad786 fix: properly alter deferrability on attribute alter 2023-07-27 13:57:42 -04:00
Zach Daniel
4146e6c25a improvement: apply sort in subqueries properly 2023-07-26 19:20:19 -04:00
Zach Daniel
b4ec957651 improvement: handle no_attributes? better in more places 2023-07-26 18:50:58 -04:00
Zach Daniel
d2e309c126 improvement: support the new parent/1 expr in relationships 2023-07-26 17:32:09 -04:00
Zach Daniel
9396a9dd2d improvement: explicitly lock the source row 2023-07-25 23:08:56 -04:00
Zach Daniel
c7866c6c16 improvement: support new distinct_sort option 2023-07-19 12:50:05 -04:00
Zach Daniel
442191799e fix: type casting improvements, handle manual relationships in exists 2023-07-19 10:20:37 -04:00