-
Notifications
You must be signed in to change notification settings - Fork 106
Open
Description
currently arrayAgg from Database.Esqueleto.PostgreSQL allows to aggregate Values.
It would be nice if it was possible also to aggregate entities.
For example, consider a 1:n relation between tables foo and bar. IT would be nice to write
data Baz = Baz
{ bazFoo :: Entity Foo
, bazBars :: [Entity Bar]
}
$(deriveEsqueletoRecord ''Baz)
query :: FooId -> SqlPersistT m [Baz]
query fooId =
select $ do
foo :& bar <-
from $
table @Foo
`leftJoin` table @Bar
`on` (\(foo :& bar) -> just foo.id ==. bar.foo)
where_ $ foo.id = val fooId
groupBy foo.id
pure $
SqlBaz
{ bazFoo = foo
, bazBars = arrayAgg bar
}
or something analogous
Metadata
Metadata
Assignees
Labels
No labels