The following query seems to work perfectly:
SELECT
"houses"."id",
"houses"."name",
"houses"."address",
ARRAY(
SELECT
"users"."id",
"users"."name"
FROM
"users"
WHERE
"users"."house_id" = "houses"."id"
) AS "users"
FROM
"houses";
However, if I modify the inner ARRAY() query for "users" to be:
SELECT
"users"."id",
"users"."name",
ARRAY(
SELECT
"todos"."id",
"todos"."description"
FROM
"todos"
WHERE
"todos"."user_id" = "users"."id"
) AS "todos"
FROM
"users"
===================================================
Unable to implement EnumerableNestedLoopJoin(condition=[true],
joinType=[inner]): rowcount = 22500.0, cumulative cost = {227855.0 rows,
18242.0 cpu, 0.0 io}, id = 12787
EnumerableTableScan(table=[[example, houses]]): rowcount = 100.0,
cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 12718
EnumerableCollect(field=[x]): rowcount = 225.0, cumulative cost = {2755.0
rows, 18141.0 cpu, 0.0 io}, id = 12785
EnumerableCalc(expr#0..3=[{inputs}], proj#0..1=[{exprs}], todos=[$t3]):
rowcount = 225.0, cumulative cost = {2530.0 rows, 17916.0 cpu, 0.0 io}, id
= 12793
EnumerableCorrelate(correlation=[$cor1], joinType=[inner],
requiredColumns=[{0}]): rowcount = 225.0, cumulative cost = {2305.0 rows,
16341.0 cpu, 0.0 io}, id = 12781
EnumerableCalc(expr#0..2=[{inputs}], expr#3=[$cor0], expr#4=[$t3.id],
expr#5=[=($t2, $t4)], proj#0..2=[{exprs}], $condition=[$t5]): rowcount =
15.0, cumulative cost = {115.0 rows, 1101.0 cpu, 0.0 io}, id = 12789
EnumerableTableScan(table=[[example, users]]): rowcount = 100.0,
cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 12722
EnumerableCollect(field=[x]): rowcount = 15.0, cumulative cost =
{130.0 rows, 1016.0 cpu, 0.0 io}, id = 12779
EnumerableCalc(expr#0..2=[{inputs}], expr#3=[$cor1], expr#4=[$
t3.id], expr#5=[=($t1, $t4)], id=[$t0], description=[$t2],
$condition=[$t5]): rowcount = 15.0, cumulative cost = {115.0 rows, 1001.0
cpu, 0.0 io}, id = 12797
EnumerableTableScan(table=[[example, todos]]): rowcount =
100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 12728
(state=,code=0)