Alan Heywood
|
1dbd7f619d
|
Update test to demo issue with policy on aggregate
The issue occurs when an aggregate is loaded, and the aggregated
resource itself has a relates_to_actor_via policy.
The following error is produced at test/aggregate_test.exs:42
1) test relates to actor via has_many and with an aggregate (AshPostgres.AggregateTest)
test/aggregate_test.exs:8
** (RuntimeError) Could not determined related for `exists/2` expression.
Context Resource: %{aggregates: %{count_of_comments: #count<comments from #Ash.Query<resource: AshPostgres.Test.Comment>>}, calculations: %{}, data_layer: AshPostgres.DataLayer, public?: false, relationship_path: [], resource: AshPostgres.Test.Post, root_resource: AshPostgres.Test.Post}
Context Relationship Path: []
At Path: []
Path: [:post, :organization, :users]
Related: nil
Expression: exists(post.organization.users, [id: "236f08bc-6a3a-4a78-9911-2c24189dafac"])
code: |> Api.read_one!()
stacktrace:
(ash 2.5.12) lib/ash/filter/filter.ex:2121: Ash.Filter.add_expression_part/3
(ash 2.5.12) lib/ash/filter/filter.ex:2037: anonymous fn/3 in Ash.Filter.parse_expression/2
(elixir 1.14.2) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.2) lib/enum.ex:2514: Enum.reduce_while/3
(ash 2.5.12) lib/ash/filter/filter.ex:295: Ash.Filter.parse/5
(ash 2.5.12) lib/ash/filter/filter.ex:995: Ash.Filter.add_to_filter/6
(ash 2.5.12) lib/ash/query/query.ex:1797: Ash.Query.do_filter/2
(elixir 1.14.2) lib/map.ex:883: Map.update!/3
(ash 2.5.12) lib/ash/engine/request.ex:650: Ash.Engine.Request.apply_filter/4
(ash 2.5.12) lib/ash/engine/request.ex:557: Ash.Engine.Request.do_strict_check/3
(ash 2.5.12) lib/ash/engine/request.ex:518: anonymous fn/2 in Ash.Engine.Request.strict_check/2
(elixir 1.14.2) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.2) lib/enum.ex:2514: Enum.reduce_while/3
(ash 2.5.12) lib/ash/engine/request.ex:255: Ash.Engine.Request.do_next/1
(ash 2.5.12) lib/ash/engine/request.ex:211: Ash.Engine.Request.next/1
(ash 2.5.12) lib/ash/engine/engine.ex:650: Ash.Engine.advance_request/2
(ash 2.5.12) lib/ash/engine/engine.ex:556: Ash.Engine.fully_advance_request/2
(ash 2.5.12) lib/ash/engine/engine.ex:497: Ash.Engine.do_run_iteration/2
(elixir 1.14.2) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
(ash 2.5.12) lib/ash/engine/engine.ex:257: Ash.Engine.run_to_completion/1
(ash 2.5.12) lib/ash/engine/engine.ex:202: Ash.Engine.do_run/2
(ash 2.5.12) lib/ash/engine/engine.ex:141: Ash.Engine.run/2
(ash 2.5.12) lib/ash/actions/read.ex:170: Ash.Actions.Read.do_run/3
(ash 2.5.12) lib/ash/actions/read.ex:90: Ash.Actions.Read.run/3
(ash 2.5.12) lib/ash/api/api.ex:1005: Ash.Api.read_one/3
(ash 2.5.12) lib/ash/api/api.ex:998: Ash.Api.read_one!/3
test/aggregate_test.exs:43: (test)
|
2023-01-30 16:09:48 +10:00 |
|
Alan Heywood
|
f290ae47b8
|
Add failing test for policy + aggregate issue
The conditions for this issue to occur seem to be:
- DataLayer is Postgres
- Resource has a relates_to_actor_via policy on read
- The relates_to_actor_via path includes a has_many relationship
- An aggregate is loaded
The following error is produced:
1) test relates to actor via has_many and with an aggregate (AshPostgres.AggregateTest)
test/aggregate_test.exs:8
** (Ash.Error.Unknown.UnknownError) ** (ArgumentError) No such entity nil found.
code: |> Api.read_one!(actor: user)
stacktrace:
nil.spark_dsl_config()
(spark 0.3.8) lib/spark/dsl/extension.ex:129: Spark.Dsl.Extension.dsl!/1
(spark 0.3.8) lib/spark/dsl/extension.ex:158: Spark.Dsl.Extension.get_persisted/3
(ash 2.5.10) lib/ash/filter/filter.ex:2986: Ash.Filter.do_hydrate_refs/2
(ash 2.5.10) lib/ash/policy/check/relates_to_actor_via.ex:3: Ash.Policy.Check.RelatesToActorVia.try_eval/2
(ash 2.5.10) lib/ash/policy/check/relates_to_actor_via.ex:3: Ash.Policy.Check.RelatesToActorVia.try_strict_check/3
(ash 2.5.10) lib/ash/policy/checker.ex:63: Ash.Policy.Checker.do_strict_check_facts/3
(ash 2.5.10) lib/ash/policy/checker.ex:88: anonymous fn/2 in Ash.Policy.Checker.strict_check_policies/3
(elixir 1.14.2) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.2) lib/enum.ex:2514: Enum.reduce_while/3
(ash 2.5.10) lib/ash/policy/checker.ex:9: anonymous fn/2 in Ash.Policy.Checker.strict_check_facts/1
(elixir 1.14.2) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.2) lib/enum.ex:2514: Enum.reduce_while/3
(ash 2.5.10) lib/ash/policy/authorizer.ex:790: Ash.Policy.Authorizer.do_strict_check_facts/1
(ash 2.5.10) lib/ash/policy/authorizer.ex:372: Ash.Policy.Authorizer.strict_check/2
(ash 2.5.10) lib/ash/engine/request.ex:550: Ash.Engine.Request.do_strict_check/3
(ash 2.5.10) lib/ash/engine/request.ex:518: anonymous fn/2 in Ash.Engine.Request.strict_check/2
(elixir 1.14.2) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.2) lib/enum.ex:2514: Enum.reduce_while/3
(ash 2.5.10) lib/ash/engine/request.ex:255: Ash.Engine.Request.do_next/1
(ash 2.5.10) lib/ash/engine/request.ex:211: Ash.Engine.Request.next/1
(ash 2.5.10) lib/ash/engine/engine.ex:650: Ash.Engine.advance_request/2
(ash 2.5.10) lib/ash/engine/engine.ex:556: Ash.Engine.fully_advance_request/2
(ash 2.5.10) lib/ash/engine/engine.ex:497: Ash.Engine.do_run_iteration/2
(elixir 1.14.2) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
(ash 2.5.10) lib/ash/engine/engine.ex:440: Ash.Engine.run_iteration/1
(ash 2.5.10) lib/ash/engine/engine.ex:257: Ash.Engine.run_to_completion/1
(ash 2.5.10) lib/ash/engine/engine.ex:202: Ash.Engine.do_run/2
(ash 2.5.10) lib/ash/engine/engine.ex:141: Ash.Engine.run/2
(ash 2.5.10) lib/ash/actions/read.ex:170: Ash.Actions.Read.do_run/3
(ash 2.5.10) lib/ash/actions/read.ex:90: Ash.Actions.Read.run/3
(ash 2.5.10) lib/ash/api/api.ex:1005: Ash.Api.read_one/3
(ash 2.5.10) lib/ash/api/api.ex:998: Ash.Api.read_one!/3
test/aggregate_test.exs:44: (test)
|
2023-01-29 16:15:16 +10:00 |
|
Zach Daniel
|
3c496512e2
|
fix: use parent_expr instead of this
fix: various expression & type building fixes
|
2023-01-06 17:05:23 -05:00 |
|
Zach Daniel
|
01d1a8aa5d
|
test: add test confirming embedded array behavior
|
2022-12-18 02:35:42 -05:00 |
|
Zach Daniel
|
a5b1bc8a3f
|
fix: properly add aggregates to query when referenced from calculations
fixes: #127
|
2022-12-18 02:23:39 -05:00 |
|
Alan Heywood
|
df3b4fd82c
|
Add a failing test to repro a bug with calculation loads
|
2022-12-17 22:57:25 +10:00 |
|
Zach Daniel
|
e271a27d3c
|
improvement: avg/min/max/custom aggregate support
fix: fix various problems with the model behind aggregates
|
2022-12-07 20:32:38 -05:00 |
|
Zach Daniel
|
7d0663588f
|
chore: add test with join in many to many
|
2022-12-04 13:39:58 -05:00 |
|
Zach Daniel
|
52fcba79ac
|
improvement: inform users about postgres incompatibility with multidimensional arrays
|
2022-12-01 20:24:49 -05:00 |
|
Darren Black
|
f088601cf9
|
Failing tests for aggregates on arrays (#121)
|
2022-11-30 21:26:58 -05:00 |
|
Zach Daniel
|
059837651d
|
improvement: add unique constraints to changeset for custom unique indexes
improvement: separate out concurrent index creations and do them in a separate transaction
|
2022-11-25 14:06:22 -05:00 |
|
Zach Daniel
|
2451879d46
|
test: add test for code interface
|
2022-10-31 11:53:03 -04:00 |
|
Zach Daniel
|
13413d3cc7
|
feat: support now() in latest Ash
|
2022-10-20 01:08:35 -04:00 |
|
Zach Daniel
|
fb8a13f33d
|
improvement: set lateral join source for latest ash
improvement: use `prepend?: true` option when applying relationship sorts
|
2022-10-15 00:03:16 -05:00 |
|
Zach Daniel
|
7fd1e73baa
|
fix: don't apply filter to array_agg
|
2022-10-10 12:06:54 -04:00 |
|
Zach Daniel
|
fd5ac60072
|
improvement: exists filters necessitate multiple aggregate joins (for now)
|
2022-09-28 18:01:20 -04:00 |
|
Zach Daniel
|
e8643d4aa0
|
fix: properly type cast top level fragments
chore: update tests not to use deprecated helper
|
2022-09-21 13:36:18 -04:00 |
|
Darren Black
|
b0292d66f8
|
improvement: implement Length function (#111)
|
2022-09-15 16:51:49 -04:00 |
|
Zach Daniel
|
11561ea163
|
improvement: support latest ash
|
2022-09-14 12:59:01 -04:00 |
|
Zach Daniel
|
7fc6c91cac
|
improvement: support manual relationships with joins
|
2022-09-13 16:40:12 -04:00 |
|
Zach Daniel
|
4a69edce2d
|
important: update to ash 2.0 branch
|
2022-08-24 12:07:38 -04:00 |
|
Zach Daniel
|
eb2bd267cb
|
improvement: fix typecasting for calculations & embed access
chore: rebuild test migrations
|
2022-08-05 15:27:22 -04:00 |
|
Zach Daniel
|
0f9a433c95
|
improvement: support || and &&
|
2022-07-20 14:19:06 -04:00 |
|
Zach Daniel
|
c52917bca1
|
improvement: set update_defaults on upsert results
|
2022-07-06 14:44:18 -04:00 |
|
Zach Daniel
|
cf212e0d98
|
chore: format
|
2022-07-01 19:18:42 -04:00 |
|
Zach Daniel
|
c352a1f1fa
|
fix: support upsert_identity with base_filter
|
2022-07-01 19:12:14 -04:00 |
|
Zach Daniel
|
da07ed7b6c
|
fix: handle various join bugs
|
2022-06-29 15:08:49 -04:00 |
|
Zach Daniel
|
d04fd201f2
|
fix: test and confirm behavior of schemas
|
2022-05-22 18:30:20 -04:00 |
|
Zach Daniel
|
be15257531
|
fix: use correct bindings for filtered relationships
|
2022-05-22 02:12:07 -04:00 |
|
Zach Daniel
|
d2e5c71a6b
|
fix: cast calcs in query expressions
|
2022-05-20 13:42:20 -04:00 |
|
Zach Daniel
|
4ec454d4f1
|
fix: explicitly type cast aggregate/calc selects
|
2022-05-20 13:22:32 -04:00 |
|
Zach Daniel
|
2a5c7ac4a2
|
improvement: check_migrations, rename to --check
fix: don't use `table` where we should use `schema` in migration generator
|
2022-05-18 13:21:58 -04:00 |
|
Josh Price
|
91a61b488e
|
fix: ensure all single actions are explicitly marked as primary? (#95)
|
2022-05-08 08:08:06 -04:00 |
|
Zach Daniel
|
0c757d5049
|
chore: update for latest ash changes
|
2022-04-19 11:08:44 -04:00 |
|
Zach Daniel
|
efaa7c6cc6
|
fix: properly handle relationship filter bindings
fix: don't consider fields changed with only source -> name changes
|
2022-02-14 17:44:17 -05:00 |
|
Zach Daniel
|
97bd185c17
|
feat: support cast_in_query?/0 and source
|
2022-02-14 11:39:50 -05:00 |
|
Zach Daniel
|
e6ff1d8b4b
|
fix: fix aggregate/base filters
|
2022-02-11 16:06:51 -05:00 |
|
Zach Daniel
|
a6577d5175
|
chore: test enum types
|
2022-02-09 12:13:11 -05:00 |
|
Zach Daniel
|
cd9701a6ea
|
improvement: support referencing aggregates from aggregate filters
fix: don't select more fields than necessary
|
2022-02-09 11:49:19 -05:00 |
|
Zach Daniel
|
e2bd3c5aec
|
improvement: support access syntax
|
2022-02-07 16:48:36 -05:00 |
|
Zach Daniel
|
96c70fcaff
|
fix: properly reverse parameters before/after expansion
|
2022-02-07 15:35:18 -05:00 |
|
Zach Daniel
|
912fab9a96
|
fix: use CiStringWrapper type in ash_postgres
|
2021-12-17 13:25:14 -05:00 |
|
Zach Daniel
|
9a97cb682d
|
chore: work on tests
|
2021-11-13 13:57:00 -05:00 |
|
Frank Dugan III
|
b353b63b82
|
test: Add failing test for calculations load nullable timestamp aggregates compared to a fragment (#76)
|
2021-11-13 13:56:14 -05:00 |
|
Zach Daniel
|
2fdcea7ef8
|
improvement: support default on aggregates
chore: update to latest ash patterns for testing
|
2021-10-25 18:53:34 -04:00 |
|
Zach Daniel
|
be7e2a89bc
|
fix: left_lateral_join for many_to_many aggregates
fix: properly reference nested aggregate fields for join
fix: properly determine fallback table for polymorphic resources
|
2021-07-05 14:12:21 -04:00 |
|
Zach Daniel
|
f13f31330f
|
fix: properly set aggregate query sources
|
2021-07-02 12:41:44 -04:00 |
|
Zach Daniel
|
dae39f5fda
|
feat: support expression based calculations
feat: support concat + if expressions
improvement: various other improvements
|
2021-06-04 01:48:35 -04:00 |
|
Zach Daniel
|
86d9e7e7bd
|
improvement: update to latest ash
|
2021-05-14 01:20:10 -04:00 |
|
Zach Daniel
|
f0b901173c
|
fix: properly group many_to_many aggregates
|
2021-05-12 13:17:26 -04:00 |
|