Skip to content

Commit 4765c6e

Browse files
author
William Wilkinson
committed
Convert cross lateral join test to cross lateral join with fragment
test.
1 parent 1fe785c commit 4765c6e

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

test/ecto/adapters/postgres_test.exs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,16 +1162,22 @@ defmodule Ecto.Adapters.PostgresTest do
11621162
~s{WHERE ((s0."id" > 0) AND (s0."id" < $2))}
11631163
end
11641164

1165-
test "cross join" do
1166-
query = from(p in Schema, cross_join: c in Schema2, select: {p.id, c.id}) |> plan()
1165+
test "cross lateral join with fragment" do
1166+
query = Schema
1167+
|> join(:cross_lateral, [p], q in fragment("SELECT * FROM schema2 AS s2 WHERE s2.id = ? AND s2.field = ?", p.x, ^10))
1168+
|> select([p, q], {p.id, q.z})
1169+
|> where([p], p.id > 0 and p.id < ^100)
1170+
|> plan()
11671171
assert all(query) ==
1168-
"SELECT s0.\"id\", s1.\"id\" FROM \"schema\" AS s0 CROSS JOIN \"schema2\" AS s1"
1172+
~s{SELECT s0."id", f1."z" FROM "schema" AS s0 CROSS JOIN LATERAL } <>
1173+
~s{(SELECT * FROM schema2 AS s2 WHERE s2.id = s0."x" AND s2.field = $1) AS f1 ON TRUE } <>
1174+
~s{WHERE ((s0."id" > 0) AND (s0."id" < $2))}
11691175
end
11701176

1171-
test "cross lateral join" do
1172-
query = from(p in Schema, cross_lateral_join: c in Schema2, select: {p.id, c.id}) |> plan()
1177+
test "cross join" do
1178+
query = from(p in Schema, cross_join: c in Schema2, select: {p.id, c.id}) |> plan()
11731179
assert all(query) ==
1174-
"SELECT s0.\"id\", s1.\"id\" FROM \"schema\" AS s0 CROSS JOIN LATERAL \"schema2\" AS s1"
1180+
"SELECT s0.\"id\", s1.\"id\" FROM \"schema\" AS s0 CROSS JOIN \"schema2\" AS s1"
11751181
end
11761182

11771183
test "cross join with fragment" do

0 commit comments

Comments
 (0)