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

Commit8c1d9d5

Browse files
committed
Add regression test for04ae11f.
The code in this area needs further revision, and it would be bestnot to re-break the things we've already fixed.Per a gripe from Tom Lane.
1 parent9901d8a commit8c1d9d5

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

‎src/test/regress/expected/select_parallel.out

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
--
22
-- PARALLEL
33
--
4+
create or replace function parallel_restricted(int) returns int as $$
5+
begin
6+
perform * from pg_stat_activity where client_port is null;
7+
if (found) then
8+
raise 'parallel restricted function run in worker';
9+
end if;
10+
return $1;
11+
end$$ language plpgsql parallel restricted;
412
-- Serializable isolation would disable parallel query, so explicitly use an
513
-- arbitrary other level.
614
begin isolation level repeatable read;
715
-- setup parallel test
816
set parallel_setup_cost=0;
917
set parallel_tuple_cost=0;
18+
set max_parallel_workers_per_gather=4;
1019
explain (costs off)
1120
select count(*) from a_star;
1221
QUERY PLAN
@@ -30,6 +39,45 @@ select count(*) from a_star;
3039
50
3140
(1 row)
3241

42+
-- test that parallel_restricted function doesn't run in worker
43+
alter table tenk1 set (parallel_workers = 4);
44+
explain (verbose, costs off)
45+
select parallel_restricted(unique1) from tenk1
46+
where stringu1 = 'GRAAAA' order by 1;
47+
QUERY PLAN
48+
---------------------------------------------------------
49+
Sort
50+
Output: (parallel_restricted(unique1))
51+
Sort Key: (parallel_restricted(tenk1.unique1))
52+
-> Gather
53+
Output: parallel_restricted(unique1)
54+
Workers Planned: 4
55+
-> Parallel Seq Scan on public.tenk1
56+
Output: unique1
57+
Filter: (tenk1.stringu1 = 'GRAAAA'::name)
58+
(9 rows)
59+
60+
select parallel_restricted(unique1) from tenk1
61+
where stringu1 = 'GRAAAA' order by 1;
62+
parallel_restricted
63+
---------------------
64+
448
65+
1124
66+
1800
67+
2476
68+
3152
69+
3828
70+
4504
71+
5180
72+
5856
73+
6532
74+
7208
75+
7884
76+
8560
77+
9236
78+
9912
79+
(15 rows)
80+
3381
set force_parallel_mode=1;
3482
explain (costs off)
3583
select stringu1::int2 from tenk1 where unique1 = 1;

‎src/test/regress/sql/select_parallel.sql

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,36 @@
22
-- PARALLEL
33
--
44

5+
create or replacefunctionparallel_restricted(int) returnsintas $$
6+
begin
7+
perform*from pg_stat_activitywhere client_port isnull;
8+
if (found) then
9+
raise'parallel restricted function run in worker';
10+
end if;
11+
return $1;
12+
end$$ language plpgsql parallel restricted;
13+
514
-- Serializable isolation would disable parallel query, so explicitly use an
615
-- arbitrary other level.
716
begin isolation level repeatable read;
817

918
-- setup parallel test
1019
set parallel_setup_cost=0;
1120
set parallel_tuple_cost=0;
21+
set max_parallel_workers_per_gather=4;
1222

1323
explain (costs off)
1424
selectcount(*)from a_star;
1525
selectcount(*)from a_star;
1626

27+
-- test that parallel_restricted function doesn't run in worker
28+
altertable tenk1set (parallel_workers=4);
29+
explain (verbose, costs off)
30+
select parallel_restricted(unique1)from tenk1
31+
where stringu1='GRAAAA'order by1;
32+
select parallel_restricted(unique1)from tenk1
33+
where stringu1='GRAAAA'order by1;
34+
1735
set force_parallel_mode=1;
1836

1937
explain (costs off)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp