Commit graph

381 commits

Author SHA1 Message Date
Dmitry Maganov
74cead8749
test: add failing test for changing_attributes check for create (#288) 2024-05-16 08:39:47 -05:00
Zach Daniel
6153016080 chore: fix test for ^ref 2024-05-15 11:23:26 -04:00
Alan Heywood
3f00dcbe8e
test: add failing test to demonstrate error using ref (#282)
Filtering on ref in this manner worked up until Ash 3.0. Now, it gives
the following error:

1) test filter with ref (AshPostgres.FilterTest)
     test/filter_test.exs:1076
     ** (FunctionClauseError) no function clause matching in Ash.Filter.check_filterable/2

     The following arguments were given to Ash.Filter.check_filterable/2:

         # 1
         AshPostgres.Test.Organization

         # 2
         :id

     Attempted function clauses (showing 2 out of 2):

         defp check_filterable(_resource, [])
         defp check_filterable(resource, [relationship | rest])

     code: |> Ash.Query.filter(^ref(:id, [:posts, :comments]) == ^comment.id)
     stacktrace:
       (ash 3.0.1) lib/ash/filter/filter.ex:2944: Ash.Filter.check_filterable/2
       (ash 3.0.1) lib/ash/filter/filter.ex:2933: anonymous fn/2 in Ash.Filter.validate_filterable_relationship_paths/2
       (elixir 1.16.2) lib/enum.ex:4316: Enum.find_value_list/3
       (ash 3.0.1) lib/ash/filter/filter.ex:2923: Ash.Filter.validate_refs/3
       (ash 3.0.1) lib/ash/filter/filter.ex:3015: Ash.Filter.resolve_call/2
       (ash 3.0.1) lib/ash/filter/filter.ex:2489: Ash.Filter.add_expression_part/3
       (ash 3.0.1) lib/ash/filter/filter.ex:2427: anonymous fn/3 in Ash.Filter.parse_expression/2
       (elixir 1.16.2) lib/enum.ex:4839: Enumerable.List.reduce/3
       (elixir 1.16.2) lib/enum.ex:2582: Enum.reduce_while/3
       (ash 3.0.1) lib/ash/filter/filter.ex:334: Ash.Filter.parse/3
       (ash 3.0.1) lib/ash/query/query.ex:2574: Ash.Query.do_filter/3
       test/filter_test.exs:1095: (test)
2024-05-15 11:19:29 -04:00
Zach Daniel
6d825792b3 fix: rework the update and destroy query builder to support multiple kinds of joining 2024-05-15 11:15:34 -04:00
Barnabas Jovanovics
e597c39687
add test for rels in atomic updates (#286) 2024-05-15 09:50:36 -04:00
Zach Daniel
11852aec93 chore: update deps and add test 2024-05-14 12:36:16 -04:00
Barnabas Jovanovics
6d0cca1fae
test: show error with calc depending on other exists calc (#280) 2024-05-14 08:35:40 -04:00
Zach Daniel
d0c7984a89 test: add tests for action filters in bulk update/destroy
fix: ensure filter is included in stale record error message
2024-05-12 16:28:48 -04:00
Zach Daniel
f6b1aa3d29 fix: ensure we don't duplicate selects on destroy_query calls
we fixed this by combining the logic for query building for bulk destroys
and bulk updates
2024-05-06 11:27:13 -04:00
Frank Dugan III
bc02a4d23c
feat: add timestamptz types (#266) 2024-05-05 06:08:21 -04:00
Zach Daniel
8eef44951c test additional bulk action tests 2024-05-03 21:26:08 -04:00
Lukas Ender
f405225731
feat: test with calculations using exists (#240) 2024-05-03 12:31:42 -04:00
Zach Daniel
77b824e23d fix: update ash & fix subquery sort references 2024-05-03 00:02:04 -04:00
Zach Daniel
56f3a5eb2f fix: fix calculate when exprs aren't dynamics
test: add test for datetimes
2024-05-02 21:29:21 -04:00
Riccardo Binetti
65f93561d8
chore: add failing test for bulk actions and non-null violations (#260)
- bulk_create returns a Postgrex error instead of Ash.Error.Changes.Required
like the non-bulk create does
- bulk_update with :stream strategy does the same
- bulk_update with :atomic strategy doesn't trim the empty string and writes it
to the database
2024-05-02 20:31:35 -04:00
Zach Daniel
3e95715be8 chore: update ash_sql for bug fix 2024-05-02 01:40:32 -04:00
Zach Daniel
a6c1dedffb test: add tests for fix in ash_sql around actor refs in relationships 2024-05-01 08:27:49 -04:00
Zach Daniel
a2083ff736 fix: update ash_sql for inner join fixes
closes #252

chore: small test fixes
2024-04-26 23:51:29 -04:00
Zach Daniel
1524501236 fix: properly honor limit in bulk operations 2024-04-24 10:17:05 -04:00
Zach Daniel
3c4a3d30a5 fix: handle missing aggregate relationships and fields better in transformers
fix: update ash_sql for bug fixes
2024-04-22 20:42:11 -04:00
32448ea5de
chore: Add failing test for tenanted aggregate bug. (#244) 2024-04-22 19:06:06 -04:00
Zach Daniel
ec91e2ee9b fix: reproduce issue around atomic updates & validations 2024-04-22 18:58:57 -04:00
Zach Daniel
3007ebf1bf chore: update ash_sql dependency 2024-04-22 11:31:13 -04:00
Zach Daniel
7f3661ce42 chore: support adapter option to use AshPostgres.Repo 2024-04-21 11:11:00 -04:00
Zach Daniel
8f1ae86db9 test: add some explicit destroy/soft destroy tests 2024-04-21 09:35:47 -04:00
Zach Daniel
4957ed28f3 fix: ensure that exists with a filter paired with from_many? functions properly 2024-04-20 14:39:53 +01: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
8a505607ab ci: set PG_VERSION better for CI 2024-03-27 17:46:51 -04:00
Zach Daniel
7bd63ffcaf test: update tests with migration changes 2024-03-27 17:28:28 -04:00
Zach Daniel
3ad3f5f5d6 chore: update ash, resources and an error message 2024-03-27 17:03:16 -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
5a513a82c2 fix: handle fully fleshed out aggregate fields 2024-03-22 02:13:07 -04:00
Zach Daniel
a0e2693998 fix: don't fail on aggregate query generation
fixes #225
2024-03-20 18:37:38 -04:00
Jinkyou Son
b60f680ab3
Fix: undo default of nulls_distinct option to true (#223) 2024-03-20 12:01:53 -04:00
Jinkyou Son
e27ce5e074
improvement: Add nulls_distinct option to CustomIndex (#221) 2024-03-12 20:22:34 -04:00
Zach Daniel
40481a17a0 fix: prevent ecto/pg from getting confused about the type of maps 2024-03-06 08:23:56 -05:00
Zach Daniel
43deb00e36 fix: properly handle multiple sorts in aggregate 2024-02-29 13:42:42 -05:00
Zach Daniel
f716e3bb69 fix: simplify(and fix) exists subquery generation 2024-02-28 22:55:53 -05:00
Zach Daniel
23dd650100 test: test improvements, regression test 2024-02-28 21:24:31 -05:00
Zach Daniel
b6b2dd1dc6 fix: handle more subquery filter cases for aggregates 2024-02-24 20:20:52 -05:00
Zach Daniel
f6d029d85b improvement: add test for aggregates 2024-02-24 18:08:00 -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
b5b1077032 chore: fix recursion error in to_many_path? 2024-02-20 22:13:23 -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
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
Minsub Kim
96c367689d
test: filter by has_one from_many? (#209) 2024-02-19 09:04:14 -05:00
Zach Daniel
3fd5a7a907 test: add some tests for atomics 2024-02-15 10:54:20 -05:00
Zach Daniel
2d18c9cbeb fix: properly alter renaming attributes in migration generator
fixes #207
2024-02-15 09:23:48 -05:00
Zach Daniel
256b4d0b9a test: add test for filter policy on bulk actions 2024-02-14 17:54:28 -05:00
Zach Daniel
7a4fe87561 chore: update ash, add tests 2024-02-14 13:56:58 -05:00
Zach Daniel
3146d5f97d chore: update ash, add tests for field policies 2024-02-14 11:04:06 -05:00
Barnabas Jovanovics
be15759de0
test: add test to show problem with field policies in filters (#206) 2024-02-14 10:25:25 -05:00
Zach Daniel
6d0a29f45c chore: credo 2024-02-12 10:24:59 -05:00
Zach Daniel
03b630396c test: update tests to demonstrate streaming update 2024-02-10 18:31:34 -05:00
Barnabas Jovanovics
3f7bdb8fc1
test: add test for parent in relationship filter (#203) 2024-02-06 10:04:35 -05:00
Zach Daniel
b018262637 test: add new test verifying batch destroy behavior
chore: add sobelow warning skip
2024-02-01 13:09:06 -05:00
Zach Daniel
d71cb81792 improvement: handle if select is present on query 2024-01-31 16:30:23 -05:00
Zach Daniel
6ceac063f8 chore: credo 2024-01-30 20:55:13 -05:00
Alan Heywood
745a3b8264
test: add failing test to demo bug with changeset loading related data (#200) 2024-01-30 20:04:42 -05:00
Zach Daniel
5006a195bd test: add test reproducing ash core fix for expression calculations 2024-01-30 16:39:17 -05:00
Zach Daniel
82dd14b953 chore: credo 2024-01-30 15:32:50 -05:00
Zach Daniel
8c43deea9b fix: properly build subqueries when required for relationship queries 2024-01-30 15:21:59 -05:00
Barnabas Jovanovics
fbd41407c3
test: add test that shows subquery error (#199) 2024-01-30 13:17:40 -05:00
Zach Daniel
ffafa6c9f5 improvement: support Ash.Changeset.OriginalDataNotAvailable 2024-01-30 12:49:52 -05:00
Alan Heywood
aad5f9a182
test: add failing test to demonstrate bug with manual updates (#198) 2024-01-30 09:26:39 -05:00
Zach Daniel
4930a69b95 improvement: support count_nils expression 2024-01-29 17:17:32 -05:00
Ryan
64e117603a
fix: Correct the matching used in building a distinct expression (#196) 2024-01-26 15:04:54 -05:00
Dmitry Maganov
8f3100a381
fix: keep fields of custom_index in format that they were provided (#195) 2024-01-22 11:32:34 -05:00
Zach Daniel
f20a07f54b improvement: support latest ash changes 2024-01-19 00:12:50 -05:00
Zach Daniel
97847da734 fix: include explicit schema in snapshot folder name
closes #193
2024-01-16 23:44:49 -05:00
Zach Daniel
b93b1d722b improvement: support all_tenants? option for identities
improvement: support `all_tenants?` option for custom indexes
2024-01-12 10:11:16 -05:00
Zach Daniel
f3ccb78f86 improvement: support join_filters on aggregates
fix: subquery relationships that have filters
2024-01-11 22:30:35 -05:00
Zach Daniel
9b5acd98f7 chore: credo, dialyzer, format 2024-01-10 08:34:23 -05:00
Eduardo B. Alexandre
d5d312de56 feat: Add unit test to check lateral joins
with custom schemas and tables
2024-01-10 08:19:10 -05:00
Zach Daniel
76e23b186f test: add some tests for aggregate refs in calcs 2024-01-10 07:22:25 -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
89a4363c1f improvement: support directly referencing aggregates from aggregates 2023-12-23 10:39:54 -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
9bc5b2af9f improvement: support string_length and string_trim 2023-12-21 19:52:29 -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
ac980a2163 chore: fix error expression 2023-12-15 08:48:20 -05:00
Zach Daniel
407a7163ed improvement: support for error/2 expression 2023-12-14 17:10:11 -05:00
Zach Daniel
07499b6ec0 fix: use maps for composite_type instead of tuples 2023-11-29 10:27:10 -05:00
Zach Daniel
74ef0aa6c3 improvement: support composite_type/2 expression 2023-11-29 09:57:10 -05:00
Zach Daniel
592e79a2f9 improvement: support composite types 2023-11-27 17:47:54 -05:00
Zach Daniel
c53f1733be chore: format 2023-11-22 14:29:47 -05:00
Barnabas Jovanovics
179cee4b24
chore: add test (#184) 2023-11-22 13:37:54 -05:00
Zach Daniel
b133d63edd chore: remove unused aliases 2023-11-21 09:33:29 -05:00
Zach Daniel
3fc3740dde chore: comment out test for now 2023-11-21 09:26:02 -05:00
Daniel Newman
6cc36c9684 Remove test duplicate from merge conflict 2023-11-21 09:25:24 -05:00