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

Commit64b5856

Browse files
committed
Add transport between processes
1 parentb027861 commit64b5856

File tree

5 files changed

+413
-19
lines changed

5 files changed

+413
-19
lines changed

‎contrib/tempscan/expected/basic.out

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,5 +168,75 @@ WHERE t1.x < 10;
168168
Filter: (y = t1.y)
169169
(9 rows)
170170

171+
-- Employ parallel join using CustomScan as an inner
172+
EXPLAIN (COSTS OFF)
173+
SELECT count(*) FROM parallel_test t1 NATURAL JOIN parallel_test_tmp_2 t2
174+
WHERE t1.x < 10;
175+
QUERY PLAN
176+
----------------------------------------------------------------------------------------------
177+
Aggregate
178+
-> Gather
179+
Workers Planned: 3
180+
-> Nested Loop
181+
-> Parallel Seq Scan on parallel_test t1
182+
Filter: (x < 10)
183+
-> Custom Scan (nodeCustomTempScan)
184+
-> Index Scan using parallel_test_tmp_2_x_idx on parallel_test_tmp_2 t2
185+
Index Cond: (x = t1.x)
186+
Filter: (t1.y = y)
187+
(10 rows)
188+
189+
-- Check real execution
190+
EXPLAIN (VERBOSE, COSTS OFF)
191+
SELECT count(*) FROM parallel_test t1 NATURAL JOIN parallel_test_tmp_2 t2;
192+
QUERY PLAN
193+
--------------------------------------------------------------------------
194+
Aggregate
195+
Output: count(*)
196+
-> Gather
197+
Workers Planned: 3
198+
-> Hash Join
199+
Hash Cond: ((t1.x = t2.x) AND (t1.y = t2.y))
200+
-> Parallel Seq Scan on public.parallel_test t1
201+
Output: t1.x, t1.y
202+
-> Hash
203+
Output: t2.x, t2.y
204+
-> Custom Scan (nodeCustomTempScan)
205+
Output: t2.x, t2.y
206+
-> Seq Scan on pg_temp.parallel_test_tmp_2 t2
207+
Output: t2.x, t2.y
208+
(14 rows)
209+
210+
SET max_parallel_workers_per_gather = 0;
211+
SELECT count(*) FROM parallel_test t1 NATURAL JOIN parallel_test_tmp_2 t2;
212+
count
213+
-------
214+
10100
215+
(1 row)
216+
217+
SET max_parallel_workers_per_gather = 3;
218+
EXPLAIN (ANALYZE, COSTS OFF, TIMING OFF, SUMMARY OFF)
219+
SELECT count(*) FROM parallel_test t1 NATURAL JOIN parallel_test_tmp_2 t2;
220+
QUERY PLAN
221+
----------------------------------------------------------------------------------------------
222+
Aggregate (actual rows=1 loops=1)
223+
-> Gather (actual rows=10100 loops=1)
224+
Workers Planned: 3
225+
Workers Launched: 3
226+
-> Hash Join (actual rows=2525 loops=4)
227+
Hash Cond: ((t1.x = t2.x) AND (t1.y = t2.y))
228+
-> Parallel Seq Scan on parallel_test t1 (actual rows=2525 loops=4)
229+
-> Hash (actual rows=10100 loops=4)
230+
Buckets: 16384 Batches: 1 Memory Usage: 571kB
231+
-> Custom Scan (nodeCustomTempScan) (actual rows=10100 loops=4)
232+
-> Seq Scan on parallel_test_tmp_2 t2 (actual rows=10100 loops=1)
233+
(11 rows)
234+
235+
SELECT count(*) FROM parallel_test t1 NATURAL JOIN parallel_test_tmp_2 t2;
236+
count
237+
-------
238+
10100
239+
(1 row)
240+
171241
RESET tempscan.enable;
172242
DROP TABLE parallel_test, parallel_test_tmp;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp