Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitad9d18a

Browse files
committed
improvement: join relationships for aggregate filters
1 parent9769d99 commitad9d18a

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

‎lib/aggregate.ex‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,11 @@ defmodule AshPostgres.Aggregate do
109109
first_relationship.destination,
110110
first_relationship,
111111
query,
112-
[first_relationship.name]
112+
[first_relationship.name],
113+
nil,
114+
nil,
115+
true,
116+
true
113117
),
114118
agg_root_query<-
115119
Map.update!(
@@ -441,7 +445,9 @@ defmodule AshPostgres.Aggregate do
441445
query,
442446
[join_relationship],
443447
nil,
444-
subquery.__ash_bindings__.current
448+
subquery.__ash_bindings__.current,
449+
true,
450+
true
445451
)
446452

447453
field=first_relationship.source_attribute_on_join_resource

‎lib/join.ex‎

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ defmodule AshPostgres.Join do
183183
path\\[],
184184
bindings\\nil,
185185
start_binding\\nil,
186-
is_subquery?\\true
186+
is_subquery?\\true,
187+
join_relationships?\\false
187188
)do
188189
resource
189190
|>Ash.Query.new(nil,base_filter?:false)
@@ -203,6 +204,25 @@ defmodule AshPostgres.Join do
203204
initial_query:initial_query
204205
)do
205206
{:ok,query}->
207+
query=
208+
ifjoin_relationships?do
209+
{:ok,related_filter}=
210+
Ash.Filter.hydrate_refs(
211+
relationship.filter,
212+
%{
213+
resource:relationship.destination,
214+
public?:false
215+
}
216+
)
217+
218+
{:ok,query}=
219+
AshPostgres.Join.join_all_relationships(query,related_filter)
220+
221+
query
222+
else
223+
query
224+
end
225+
206226
query=
207227
query
208228
|>do_base_filter(
@@ -785,8 +805,6 @@ defmodule AshPostgres.Join do
785805
relationship.filter,
786806
%{
787807
resource:relationship.destination,
788-
aggregates:%{},
789-
calculations:%{},
790808
public?:false
791809
}
792810
)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp