Zach Daniel
|
b35f8c715b
|
improvement: add AshPostgres.Tsquery
|
2023-09-20 16:41:32 -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
|
33eb4f9fb7
|
improvement: better error message for missing table config
|
2023-09-04 11:25:03 -04:00 |
|
Zach Daniel
|
eabb745fc3
|
chore: update tests for latest ash atomics support
|
2023-08-31 11:47:15 -04:00 |
|
Zach Daniel
|
5a4a52854b
|
improvement: support atomics (#165)
|
2023-08-28 16:18:56 -04:00 |
|
Zach Daniel
|
cbde3958f3
|
fix: properly handle ensure nsted calls to get_path are jsonb
|
2023-08-23 12:54:25 -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
|
d2e309c126
|
improvement: support the new parent/1 expr in relationships
|
2023-07-26 17:32:09 -04:00 |
|
Zach Daniel
|
c920b09277
|
improvement: support new distinct features from ash core
|
2023-07-18 14:48:35 -04:00 |
|
Zach Daniel
|
ed62006b3f
|
improvement: support unary -/1 operator
|
2023-07-17 22:35:46 -04:00 |
|
Zach Daniel
|
d2e071773e
|
improvement: support exists aggregates
|
2023-07-13 00:13:50 -04:00 |
|
Zach Daniel
|
11ad5f4d1b
|
improvement: support at/2 expression
|
2023-07-12 17:05:33 -04:00 |
|
Zach Daniel
|
c1a630ee16
|
improvement: support string_split
|
2023-07-12 15:16:28 -04:00 |
|
Zach Daniel
|
ce9ca1ced2
|
chore: fix test bad identity
|
2023-06-27 19:14:30 -04:00 |
|
Tommaso Patrizi
|
96165a58ea
|
tests: added test for bulk upsert (#148)
Co-authored-by: Tommaso Patrizi <tommasop@gmail.com>
|
2023-05-26 23:58:04 -04:00 |
|
Zach Daniel
|
4a57a300da
|
fix: handle raised errors in bulk actions
|
2023-05-22 21:17:30 -04:00 |
|
Zach Daniel
|
31fdbec62e
|
chore: credo
|
2023-04-05 12:21:35 -04:00 |
|
Barnabas Jovanovics
|
e2ee0016ea
|
test: add test that reproduces dependent select problem (#136)
|
2023-03-31 12:12:13 -04:00 |
|
Darren Black
|
587182998e
|
improvement: Implement string_join expr (#132)
|
2023-02-21 10:21:53 -05:00 |
|
Zach Daniel
|
49b94fd183
|
fix: don't use :distinct when uniq? is not true
|
2023-02-17 15:21:50 -05:00 |
|
Zach Daniel
|
589fb4d620
|
improvement: better type casting for concat operator
|
2023-02-12 19:09:25 -05:00 |
|
Zach Daniel
|
bbb45f3622
|
fix: sorting on optimized first aggregates
|
2023-02-09 17:49:37 -05:00 |
|
Zach Daniel
|
8e8a308cd2
|
improvement: support new uniq? option on count/list aggregates
|
2023-02-09 16:09:44 -05:00 |
|
Zach Daniel
|
b41d383b47
|
fix: load by __order__ ascending
|
2023-02-07 17:43:53 -05:00 |
|
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 |
|