Commit graph

335 commits

Author SHA1 Message Date
Davide Briani
814e7de496
improvement: support on_delete: :nilify for specific columns (#289) 2024-05-16 19:18:17 -05:00
Riccardo Binetti
ad0b1a5c6c
chore: add relationship pagination tests (#265) 2024-05-16 17:28:43 -05:00
Riccardo Binetti
e29aa86870
chore: fix bulk destroy tests (#290)
* chore: fix bulk destroy tests

They were using an :update action

* chore: fix credo error
2024-05-16 15:48:38 -05:00
Zach Daniel
9b3e5d38fb test: update test to run authorization 2024-05-16 09:53:19 -05:00
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