|
|
@ -526,7 +526,7 @@ EXPLAIN (VERBOSE, COSTS OFF)
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: t3.c1
|
|
|
|
Output: t3.c1
|
|
|
|
Relations: (public.ft1 t2) INNER JOIN (public.ft2 t3)
|
|
|
|
Relations: (public.ft1 t2) INNER JOIN (public.ft2 t3)
|
|
|
|
Remote SQL: SELECT r3."C 1" FROM ("S 1"."T 1" r2 INNER JOIN "S 1"."T 1" r3 ON (((r2."C 1" = r3."C 1")))) ORDER BY r2."C 1" ASC NULLS LAST
|
|
|
|
Remote SQL: SELECT r3."C 1" FROM ("S 1"."T 1" r2 INNER JOIN "S 1"."T 1" r3 ON (((r3."C 1" = r2."C 1")))) ORDER BY r2."C 1" ASC NULLS LAST
|
|
|
|
-> Index Only Scan using t1_pkey on "S 1"."T 1" t1
|
|
|
|
-> Index Only Scan using t1_pkey on "S 1"."T 1" t1
|
|
|
|
Output: t1."C 1"
|
|
|
|
Output: t1."C 1"
|
|
|
|
(12 rows)
|
|
|
|
(12 rows)
|
|
|
@ -740,7 +740,7 @@ EXPLAIN (VERBOSE, COSTS OFF)
|
|
|
|
Index Cond: (a."C 1" = 47)
|
|
|
|
Index Cond: (a."C 1" = 47)
|
|
|
|
-> Foreign Scan on public.ft2 b
|
|
|
|
-> Foreign Scan on public.ft2 b
|
|
|
|
Output: b.c1, b.c2, b.c3, b.c4, b.c5, b.c6, b.c7, b.c8
|
|
|
|
Output: b.c1, b.c2, b.c3, b.c4, b.c5, b.c6, b.c7, b.c8
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (($1::integer = "C 1"))
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (("C 1" = $1::integer))
|
|
|
|
(8 rows)
|
|
|
|
(8 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT * FROM ft2 a, ft2 b WHERE a.c1 = 47 AND b.c1 = a.c2;
|
|
|
|
SELECT * FROM ft2 a, ft2 b WHERE a.c1 = 47 AND b.c1 = a.c2;
|
|
|
@ -763,7 +763,7 @@ EXPLAIN (VERBOSE, COSTS OFF)
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE ((c2 = 6))
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE ((c2 = 6))
|
|
|
|
-> Foreign Scan on public.ft2 b
|
|
|
|
-> Foreign Scan on public.ft2 b
|
|
|
|
Output: b.c1, b.c2, b.c3, b.c4, b.c5, b.c6, b.c7, b.c8
|
|
|
|
Output: b.c1, b.c2, b.c3, b.c4, b.c5, b.c6, b.c7, b.c8
|
|
|
|
Filter: (upper((a.c7)::text) = (b.c7)::text)
|
|
|
|
Filter: ((b.c7)::text = upper((a.c7)::text))
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (($1::integer = "C 1"))
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (($1::integer = "C 1"))
|
|
|
|
(10 rows)
|
|
|
|
(10 rows)
|
|
|
|
|
|
|
|
|
|
|
@ -1220,7 +1220,7 @@ SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.c1, t2.c1, t1.c3
|
|
|
|
Output: t1.c1, t2.c1, t1.c3
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3 FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3 FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10;
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10;
|
|
|
@ -1246,7 +1246,7 @@ SELECT t1.c1, t2.c2, t3.c3 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) JOIN ft4 t
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.c1, t2.c2, t3.c3, t1.c3
|
|
|
|
Output: t1.c1, t2.c2, t3.c3, t1.c3
|
|
|
|
Relations: ((public.ft1 t1) INNER JOIN (public.ft2 t2)) INNER JOIN (public.ft4 t3)
|
|
|
|
Relations: ((public.ft1 t1) INNER JOIN (public.ft2 t2)) INNER JOIN (public.ft4 t3)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2.c2, r4.c3, r1.c3 FROM (("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) INNER JOIN "S 1"."T 3" r4 ON (((r1."C 1" = r4.c1)))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 10::bigint
|
|
|
|
Remote SQL: SELECT r1."C 1", r2.c2, r4.c3, r1.c3 FROM (("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) INNER JOIN "S 1"."T 3" r4 ON (((r1."C 1" = r4.c1)))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 10::bigint
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c2, t3.c3 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) JOIN ft4 t3 ON (t3.c1 = t1.c1) ORDER BY t1.c3, t1.c1 OFFSET 10 LIMIT 10;
|
|
|
|
SELECT t1.c1, t2.c2, t3.c3 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) JOIN ft4 t3 ON (t3.c1 = t1.c1) ORDER BY t1.c3, t1.c1 OFFSET 10 LIMIT 10;
|
|
|
@ -1861,7 +1861,7 @@ SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR UPDATE OF r1
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR UPDATE OF r1
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR UPDATE OF t1;
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR UPDATE OF t1;
|
|
|
@ -1886,7 +1886,7 @@ SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR UPDATE OF r1 FOR UPDATE OF r2
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR UPDATE OF r1 FOR UPDATE OF r2
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR UPDATE;
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR UPDATE;
|
|
|
@ -1912,7 +1912,7 @@ SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR SHARE OF r1
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR SHARE OF r1
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR SHARE OF t1;
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR SHARE OF t1;
|
|
|
@ -1937,7 +1937,7 @@ SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Output: t1.c1, t2.c1, t1.c3, t1.*, t2.*
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR SHARE OF r1 FOR SHARE OF r2
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint FOR SHARE OF r1 FOR SHARE OF r2
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR SHARE;
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10 FOR SHARE;
|
|
|
@ -1966,7 +1966,7 @@ WITH t (c1_1, c1_3, c2_1) AS MATERIALIZED (SELECT t1.c1, t1.c3, t2.c1 FROM ft1 t
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: t1.c1, t1.c3, t2.c1
|
|
|
|
Output: t1.c1, t1.c3, t2.c1
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r1.c3, r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1"))))
|
|
|
|
Remote SQL: SELECT r1."C 1", r1.c3, r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1"))))
|
|
|
|
-> Sort
|
|
|
|
-> Sort
|
|
|
|
Output: t.c1_1, t.c2_1, t.c1_3
|
|
|
|
Output: t.c1_1, t.c2_1, t.c1_3
|
|
|
|
Sort Key: t.c1_3, t.c1_1
|
|
|
|
Sort Key: t.c1_3, t.c1_1
|
|
|
@ -1997,7 +1997,7 @@ SELECT t1.ctid, t1, t2, t1.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) ORDER B
|
|
|
|
Foreign Scan
|
|
|
|
Foreign Scan
|
|
|
|
Output: t1.ctid, t1.*, t2.*, t1.c1, t1.c3
|
|
|
|
Output: t1.ctid, t1.*, t2.*, t1.c1, t1.c3
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1.ctid, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END, r1."C 1", r1.c3 FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint
|
|
|
|
Remote SQL: SELECT r1.ctid, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END, r1."C 1", r1.c3 FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")))) ORDER BY r1.c3 ASC NULLS LAST, r1."C 1" ASC NULLS LAST LIMIT 10::bigint OFFSET 100::bigint
|
|
|
|
(4 rows)
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
|
|
-- SEMI JOIN, not pushed down
|
|
|
|
-- SEMI JOIN, not pushed down
|
|
|
@ -2216,7 +2216,7 @@ SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) WHERE t1.c8 = t2.
|
|
|
|
Output: t1.c1, t2.c1, t1.c3
|
|
|
|
Output: t1.c1, t2.c1, t1.c3
|
|
|
|
Filter: (t1.c8 = t2.c8)
|
|
|
|
Filter: (t1.c8 = t2.c8)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, r1.c8, r2.c8 FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1"))))
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1", r1.c3, r1.c8, r2.c8 FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1"))))
|
|
|
|
(10 rows)
|
|
|
|
(10 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) WHERE t1.c8 = t2.c8 ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10;
|
|
|
|
SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) WHERE t1.c8 = t2.c8 ORDER BY t1.c3, t1.c1 OFFSET 100 LIMIT 10;
|
|
|
@ -2254,11 +2254,11 @@ SELECT t1c1, avg(t1c1 + t2c1) FROM (SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: t1.c1, t2.c1
|
|
|
|
Output: t1.c1, t2.c1
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1"))))
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1"))))
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: t1_1.c1, t2_1.c1
|
|
|
|
Output: t1_1.c1, t2_1.c1
|
|
|
|
Relations: (public.ft1 t1_1) INNER JOIN (public.ft2 t2_1)
|
|
|
|
Relations: (public.ft1 t1_1) INNER JOIN (public.ft2 t2_1)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1"))))
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1"))))
|
|
|
|
(20 rows)
|
|
|
|
(20 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1c1, avg(t1c1 + t2c1) FROM (SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) UNION SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1)) AS t (t1c1, t2c1) GROUP BY t1c1 ORDER BY t1c1 OFFSET 100 LIMIT 10;
|
|
|
|
SELECT t1c1, avg(t1c1 + t2c1) FROM (SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1) UNION SELECT t1.c1, t2.c1 FROM ft1 t1 JOIN ft2 t2 ON (t1.c1 = t2.c1)) AS t (t1c1, t2c1) GROUP BY t1c1 ORDER BY t1c1 OFFSET 100 LIMIT 10;
|
|
|
@ -2297,7 +2297,7 @@ SELECT t1."C 1" FROM "S 1"."T 1" t1, LATERAL (SELECT DISTINCT t2.c1, t3.c1 FROM
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: t2.c1, t3.c1
|
|
|
|
Output: t2.c1, t3.c1
|
|
|
|
Relations: (public.ft1 t2) INNER JOIN (public.ft2 t3)
|
|
|
|
Relations: (public.ft1 t2) INNER JOIN (public.ft2 t3)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")) AND ((r1.c2 = $1::integer))))
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")) AND ((r1.c2 = $1::integer))))
|
|
|
|
(17 rows)
|
|
|
|
(17 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT t1."C 1" FROM "S 1"."T 1" t1, LATERAL (SELECT DISTINCT t2.c1, t3.c1 FROM ft1 t2, ft2 t3 WHERE t2.c1 = t3.c1 AND t2.c2 = t1.c2) q ORDER BY t1."C 1" OFFSET 10 LIMIT 10;
|
|
|
|
SELECT t1."C 1" FROM "S 1"."T 1" t1, LATERAL (SELECT DISTINCT t2.c1, t3.c1 FROM ft1 t2, ft2 t3 WHERE t2.c1 = t3.c1 AND t2.c2 = t1.c2) q ORDER BY t1."C 1" OFFSET 10 LIMIT 10;
|
|
|
@ -2415,7 +2415,7 @@ SELECT * FROM ft1, ft2, ft4, ft5, local_tbl WHERE ft1.c1 = ft2.c1 AND ft1.c2 = f
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.c1, ft2.c2, ft2.c3, ft2.c4, ft2.c5, ft2.c6, ft2.c7, ft2.c8, ft2.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.*
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.c1, ft2.c2, ft2.c3, ft2.c4, ft2.c5, ft2.c6, ft2.c7, ft2.c8, ft2.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.*
|
|
|
|
Relations: (((public.ft1) INNER JOIN (public.ft2)) INNER JOIN (public.ft4)) INNER JOIN (public.ft5)
|
|
|
|
Relations: (((public.ft1) INNER JOIN (public.ft2)) INNER JOIN (public.ft4)) INNER JOIN (public.ft5)
|
|
|
|
Remote SQL: SELECT r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END, r3.c1, r3.c2, r3.c3, CASE WHEN (r3.*)::text IS NOT NULL THEN ROW(r3.c1, r3.c2, r3.c3) END, r4.c1, r4.c2, r4.c3, CASE WHEN (r4.*)::text IS NOT NULL THEN ROW(r4.c1, r4.c2, r4.c3) END FROM ((("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1")) AND ((r2."C 1" < 100)) AND ((r1."C 1" < 100)))) INNER JOIN "S 1"."T 3" r3 ON (((r1.c2 = r3.c1)))) INNER JOIN "S 1"."T 4" r4 ON (((r1.c2 = r4.c1)))) ORDER BY r1.c2 ASC NULLS LAST FOR UPDATE OF r1 FOR UPDATE OF r2 FOR UPDATE OF r3 FOR UPDATE OF r4
|
|
|
|
Remote SQL: SELECT r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2."C 1", r2.c2, r2.c3, r2.c4, r2.c5, r2.c6, r2.c7, r2.c8) END, r3.c1, r3.c2, r3.c3, CASE WHEN (r3.*)::text IS NOT NULL THEN ROW(r3.c1, r3.c2, r3.c3) END, r4.c1, r4.c2, r4.c3, CASE WHEN (r4.*)::text IS NOT NULL THEN ROW(r4.c1, r4.c2, r4.c3) END FROM ((("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1")) AND ((r2."C 1" < 100)) AND ((r1."C 1" < 100)))) INNER JOIN "S 1"."T 3" r3 ON (((r1.c2 = r3.c1)))) INNER JOIN "S 1"."T 4" r4 ON (((r1.c2 = r4.c1)))) ORDER BY r1.c2 ASC NULLS LAST FOR UPDATE OF r1 FOR UPDATE OF r2 FOR UPDATE OF r3 FOR UPDATE OF r4
|
|
|
|
-> Merge Join
|
|
|
|
-> Merge Join
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.c1, ft2.c2, ft2.c3, ft2.c4, ft2.c5, ft2.c6, ft2.c7, ft2.c8, ft2.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.*
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.c1, ft2.c2, ft2.c3, ft2.c4, ft2.c5, ft2.c6, ft2.c7, ft2.c8, ft2.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.*
|
|
|
|
Merge Cond: (ft1.c2 = ft5.c1)
|
|
|
|
Merge Cond: (ft1.c2 = ft5.c1)
|
|
|
@ -2491,7 +2491,7 @@ SELECT * FROM local_tbl LEFT JOIN (SELECT ft1.*, COALESCE(ft1.c3 || ft2.c3, 'foo
|
|
|
|
-> Foreign Scan
|
|
|
|
-> Foreign Scan
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*, COALESCE((ft1.c3 || ft2.c3), 'foobar'::text)
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*, COALESCE((ft1.c3 || ft2.c3), 'foobar'::text)
|
|
|
|
Relations: (public.ft1) INNER JOIN (public.ft2)
|
|
|
|
Relations: (public.ft1) INNER JOIN (public.ft2)
|
|
|
|
Remote SQL: SELECT r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8, CASE WHEN (r4.*)::text IS NOT NULL THEN ROW(r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8) END, CASE WHEN (r5.*)::text IS NOT NULL THEN ROW(r5."C 1", r5.c2, r5.c3, r5.c4, r5.c5, r5.c6, r5.c7, r5.c8) END, r5.c3 FROM ("S 1"."T 1" r4 INNER JOIN "S 1"."T 1" r5 ON (((r4."C 1" = r5."C 1")) AND ((r4."C 1" < 100)))) ORDER BY r4."C 1" ASC NULLS LAST
|
|
|
|
Remote SQL: SELECT r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8, CASE WHEN (r4.*)::text IS NOT NULL THEN ROW(r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8) END, CASE WHEN (r5.*)::text IS NOT NULL THEN ROW(r5."C 1", r5.c2, r5.c3, r5.c4, r5.c5, r5.c6, r5.c7, r5.c8) END, r5.c3 FROM ("S 1"."T 1" r4 INNER JOIN "S 1"."T 1" r5 ON (((r5."C 1" = r4."C 1")) AND ((r4."C 1" < 100)))) ORDER BY r4."C 1" ASC NULLS LAST
|
|
|
|
-> Result
|
|
|
|
-> Result
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*, ft2.c3
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*, ft2.c3
|
|
|
|
-> Sort
|
|
|
|
-> Sort
|
|
|
@ -2529,7 +2529,7 @@ SELECT * FROM local_tbl LEFT JOIN (SELECT ft1.* FROM ft1 INNER JOIN ft2 ON (ft1.
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*
|
|
|
|
Filter: (ft1.c1 = postgres_fdw_abs(ft2.c2))
|
|
|
|
Filter: (ft1.c1 = postgres_fdw_abs(ft2.c2))
|
|
|
|
Relations: (public.ft1) INNER JOIN (public.ft2)
|
|
|
|
Relations: (public.ft1) INNER JOIN (public.ft2)
|
|
|
|
Remote SQL: SELECT r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8, CASE WHEN (r4.*)::text IS NOT NULL THEN ROW(r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8) END, CASE WHEN (r5.*)::text IS NOT NULL THEN ROW(r5."C 1", r5.c2, r5.c3, r5.c4, r5.c5, r5.c6, r5.c7, r5.c8) END, r5.c2 FROM ("S 1"."T 1" r4 INNER JOIN "S 1"."T 1" r5 ON (((r4."C 1" = r5."C 1")) AND ((r4."C 1" < 100)))) ORDER BY r4.c3 ASC NULLS LAST
|
|
|
|
Remote SQL: SELECT r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8, CASE WHEN (r4.*)::text IS NOT NULL THEN ROW(r4."C 1", r4.c2, r4.c3, r4.c4, r4.c5, r4.c6, r4.c7, r4.c8) END, CASE WHEN (r5.*)::text IS NOT NULL THEN ROW(r5."C 1", r5.c2, r5.c3, r5.c4, r5.c5, r5.c6, r5.c7, r5.c8) END, r5.c2 FROM ("S 1"."T 1" r4 INNER JOIN "S 1"."T 1" r5 ON (((r5."C 1" = r4."C 1")) AND ((r4."C 1" < 100)))) ORDER BY r4.c3 ASC NULLS LAST
|
|
|
|
-> Sort
|
|
|
|
-> Sort
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*, ft2.c2
|
|
|
|
Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft2.*, ft2.c2
|
|
|
|
Sort Key: ft1.c3
|
|
|
|
Sort Key: ft1.c3
|
|
|
@ -2771,7 +2771,7 @@ select sum(t1.c1), count(t2.c1) from ft1 t1 inner join ft2 t2 on (t1.c1 = t2.c1)
|
|
|
|
Output: t1.c1, t2.c1
|
|
|
|
Output: t1.c1, t2.c1
|
|
|
|
Filter: (((((t1.c1 * t2.c1) / (t1.c1 * t2.c1)))::double precision * random()) <= '1'::double precision)
|
|
|
|
Filter: (((((t1.c1 * t2.c1) / (t1.c1 * t2.c1)))::double precision * random()) <= '1'::double precision)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Relations: (public.ft1 t1) INNER JOIN (public.ft2 t2)
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r1."C 1" = r2."C 1"))))
|
|
|
|
Remote SQL: SELECT r1."C 1", r2."C 1" FROM ("S 1"."T 1" r1 INNER JOIN "S 1"."T 1" r2 ON (((r2."C 1" = r1."C 1"))))
|
|
|
|
(7 rows)
|
|
|
|
(7 rows)
|
|
|
|
|
|
|
|
|
|
|
|
-- GROUP BY clause having expressions
|
|
|
|
-- GROUP BY clause having expressions
|
|
|
@ -3973,7 +3973,7 @@ EXPLAIN (VERBOSE, COSTS OFF) EXECUTE st2(10, 20);
|
|
|
|
Sort Key: t1.c1
|
|
|
|
Sort Key: t1.c1
|
|
|
|
-> Nested Loop Semi Join
|
|
|
|
-> Nested Loop Semi Join
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Join Filter: (t1.c3 = t2.c3)
|
|
|
|
Join Filter: (t2.c3 = t1.c3)
|
|
|
|
-> Foreign Scan on public.ft1 t1
|
|
|
|
-> Foreign Scan on public.ft1 t1
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (("C 1" < 20))
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (("C 1" < 20))
|
|
|
@ -4007,7 +4007,7 @@ EXPLAIN (VERBOSE, COSTS OFF) EXECUTE st3(10, 20);
|
|
|
|
Sort Key: t1.c1
|
|
|
|
Sort Key: t1.c1
|
|
|
|
-> Nested Loop Semi Join
|
|
|
|
-> Nested Loop Semi Join
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Join Filter: (t1.c3 = t2.c3)
|
|
|
|
Join Filter: (t2.c3 = t1.c3)
|
|
|
|
-> Foreign Scan on public.ft1 t1
|
|
|
|
-> Foreign Scan on public.ft1 t1
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Output: t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (("C 1" < 20))
|
|
|
|
Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (("C 1" < 20))
|
|
|
@ -4502,7 +4502,7 @@ explain (verbose, costs off) select * from ft3 f, loct3 l
|
|
|
|
Index Cond: (l.f1 = 'foo'::text)
|
|
|
|
Index Cond: (l.f1 = 'foo'::text)
|
|
|
|
-> Foreign Scan on public.ft3 f
|
|
|
|
-> Foreign Scan on public.ft3 f
|
|
|
|
Output: f.f1, f.f2, f.f3
|
|
|
|
Output: f.f1, f.f2, f.f3
|
|
|
|
Remote SQL: SELECT f1, f2, f3 FROM public.loct3 WHERE (($1::character varying(10) = f3))
|
|
|
|
Remote SQL: SELECT f1, f2, f3 FROM public.loct3 WHERE ((f3 = $1::character varying(10)))
|
|
|
|
(8 rows)
|
|
|
|
(8 rows)
|
|
|
|
|
|
|
|
|
|
|
|
-- can't be sent to remote
|
|
|
|
-- can't be sent to remote
|
|
|
@ -10899,13 +10899,13 @@ SELECT * FROM local_tbl, async_pt WHERE local_tbl.a = async_pt.a AND local_tbl.c
|
|
|
|
-> Append
|
|
|
|
-> Append
|
|
|
|
-> Async Foreign Scan on public.async_p1 async_pt_1
|
|
|
|
-> Async Foreign Scan on public.async_p1 async_pt_1
|
|
|
|
Output: async_pt_1.a, async_pt_1.b, async_pt_1.c
|
|
|
|
Output: async_pt_1.a, async_pt_1.b, async_pt_1.c
|
|
|
|
Remote SQL: SELECT a, b, c FROM public.base_tbl1 WHERE (($1::integer = a))
|
|
|
|
Remote SQL: SELECT a, b, c FROM public.base_tbl1 WHERE ((a = $1::integer))
|
|
|
|
-> Async Foreign Scan on public.async_p2 async_pt_2
|
|
|
|
-> Async Foreign Scan on public.async_p2 async_pt_2
|
|
|
|
Output: async_pt_2.a, async_pt_2.b, async_pt_2.c
|
|
|
|
Output: async_pt_2.a, async_pt_2.b, async_pt_2.c
|
|
|
|
Remote SQL: SELECT a, b, c FROM public.base_tbl2 WHERE (($1::integer = a))
|
|
|
|
Remote SQL: SELECT a, b, c FROM public.base_tbl2 WHERE ((a = $1::integer))
|
|
|
|
-> Seq Scan on public.async_p3 async_pt_3
|
|
|
|
-> Seq Scan on public.async_p3 async_pt_3
|
|
|
|
Output: async_pt_3.a, async_pt_3.b, async_pt_3.c
|
|
|
|
Output: async_pt_3.a, async_pt_3.b, async_pt_3.c
|
|
|
|
Filter: (local_tbl.a = async_pt_3.a)
|
|
|
|
Filter: (async_pt_3.a = local_tbl.a)
|
|
|
|
(15 rows)
|
|
|
|
(15 rows)
|
|
|
|
|
|
|
|
|
|
|
|
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
|
|
|
|
EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
|
|
|
@ -10920,7 +10920,7 @@ SELECT * FROM local_tbl, async_pt WHERE local_tbl.a = async_pt.a AND local_tbl.c
|
|
|
|
-> Async Foreign Scan on async_p1 async_pt_1 (never executed)
|
|
|
|
-> Async Foreign Scan on async_p1 async_pt_1 (never executed)
|
|
|
|
-> Async Foreign Scan on async_p2 async_pt_2 (actual rows=1 loops=1)
|
|
|
|
-> Async Foreign Scan on async_p2 async_pt_2 (actual rows=1 loops=1)
|
|
|
|
-> Seq Scan on async_p3 async_pt_3 (never executed)
|
|
|
|
-> Seq Scan on async_p3 async_pt_3 (never executed)
|
|
|
|
Filter: (local_tbl.a = a)
|
|
|
|
Filter: (a = local_tbl.a)
|
|
|
|
(9 rows)
|
|
|
|
(9 rows)
|
|
|
|
|
|
|
|
|
|
|
|
SELECT * FROM local_tbl, async_pt WHERE local_tbl.a = async_pt.a AND local_tbl.c = 'bar';
|
|
|
|
SELECT * FROM local_tbl, async_pt WHERE local_tbl.a = async_pt.a AND local_tbl.c = 'bar';
|
|
|
|