• R/O
  • HTTP
  • SSH
  • HTTPS

pg_hint_plan: コミット

firtst release


コミットメタ情報

リビジョン5da6c043e1dec61215d395f6698e302456688980 (tree)
日時2017-02-21 09:11:44
作者Kyotaro Horiguchi <horiguchi.kyotaro@lab....>
コミッターKyotaro Horiguchi

ログメッセージ

Fix parallel hint error handling.

Some kind of error of a parallel hint resulted confusing log
output. Addition to that, due to improper assumption of .conf file,
ordinary setup of max_worker_processes caused failure of ut-W. Fixed
them.

変更サマリ

差分

--- a/expected/ut-W.out
+++ b/expected/ut-W.out
@@ -16,11 +16,11 @@ SET parallel_setup_cost to 0;
1616 SET parallel_tuple_cost to 0;
1717 SET min_parallel_relation_size to 0;
1818 SET max_parallel_workers_per_gather to DEFAULT;
19-/*+Parallel(t1 10)*/
19+/*+Parallel(t1 8)*/
2020 EXPLAIN (COSTS false) SELECT * FROM s1.t1;
2121 LOG: pg_hint_plan:
2222 used hint:
23-Parallel(t1 10 soft)
23+Parallel(t1 8 soft)
2424 not used hint:
2525 duplication hint:
2626 error hint:
@@ -32,11 +32,11 @@ error hint:
3232 -> Parallel Seq Scan on t1
3333 (3 rows)
3434
35-/*+Parallel(t1 10 soft)*/
35+/*+Parallel(t1 8 soft)*/
3636 EXPLAIN (COSTS false) SELECT * FROM s1.t1;
3737 LOG: pg_hint_plan:
3838 used hint:
39-Parallel(t1 10 soft)
39+Parallel(t1 8 soft)
4040 not used hint:
4141 duplication hint:
4242 error hint:
@@ -48,11 +48,11 @@ error hint:
4848 -> Parallel Seq Scan on t1
4949 (3 rows)
5050
51-/*+Parallel(t1 10 hard)*/
51+/*+Parallel(t1 8 hard)*/
5252 EXPLAIN (COSTS false) SELECT * FROM s1.t1;
5353 LOG: pg_hint_plan:
5454 used hint:
55-Parallel(t1 10 hard)
55+Parallel(t1 8 hard)
5656 not used hint:
5757 duplication hint:
5858 error hint:
@@ -60,7 +60,7 @@ error hint:
6060 QUERY PLAN
6161 -------------------------------
6262 Gather
63- Workers Planned: 10
63+ Workers Planned: 8
6464 -> Parallel Seq Scan on t1
6565 (3 rows)
6666
@@ -68,11 +68,11 @@ error hint:
6868 SET parallel_setup_cost to 0;
6969 SET parallel_tuple_cost to 0;
7070 SET min_parallel_relation_size to 0;
71-/*+Parallel(p1 10)*/
71+/*+Parallel(p1 8)*/
7272 EXPLAIN (COSTS false) SELECT * FROM p1;
7373 LOG: pg_hint_plan:
7474 used hint:
75-Parallel(p1 10 soft)
75+Parallel(p1 8 soft)
7676 not used hint:
7777 duplication hint:
7878 error hint:
@@ -96,11 +96,11 @@ error hint:
9696 SET parallel_setup_cost to DEFAULT;
9797 SET parallel_tuple_cost to DEFAULT;
9898 SET min_parallel_relation_size to DEFAULT;
99-/*+Parallel(p1 10 hard)*/
99+/*+Parallel(p1 8 hard)*/
100100 EXPLAIN (COSTS false) SELECT * FROM p1;
101101 LOG: pg_hint_plan:
102102 used hint:
103-Parallel(p1 10 hard)
103+Parallel(p1 8 hard)
104104 not used hint:
105105 duplication hint:
106106 error hint:
@@ -108,7 +108,7 @@ error hint:
108108 QUERY PLAN
109109 -------------------------------------------
110110 Gather
111- Workers Planned: 10
111+ Workers Planned: 8
112112 -> Append
113113 -> Parallel Seq Scan on p1
114114 -> Parallel Seq Scan on p1_c1
@@ -122,11 +122,11 @@ error hint:
122122 (12 rows)
123123
124124 -- hinting on children makes the whole inheritance parallel
125-/*+Parallel(p1_c1 10 hard)*/
125+/*+Parallel(p1_c1 8 hard)*/
126126 EXPLAIN (COSTS false) SELECT * FROM p1;
127127 LOG: pg_hint_plan:
128128 used hint:
129-Parallel(p1_c1 10 hard)
129+Parallel(p1_c1 8 hard)
130130 not used hint:
131131 duplication hint:
132132 error hint:
@@ -134,7 +134,7 @@ error hint:
134134 QUERY PLAN
135135 -------------------------------------------
136136 Gather
137- Workers Planned: 10
137+ Workers Planned: 8
138138 -> Append
139139 -> Parallel Seq Scan on p1
140140 -> Parallel Seq Scan on p1_c1
@@ -158,11 +158,11 @@ EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c
158158 -> Seq Scan on p2_c1_c1
159159 (5 rows)
160160
161-/*+Parallel(p1_c1_c1 10 hard)*/
161+/*+Parallel(p1_c1_c1 8 hard)*/
162162 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
163163 LOG: pg_hint_plan:
164164 used hint:
165-Parallel(p1_c1_c1 10 hard)
165+Parallel(p1_c1_c1 8 hard)
166166 not used hint:
167167 duplication hint:
168168 error hint:
@@ -174,18 +174,18 @@ error hint:
174174 -> Seq Scan on p2_c1_c1
175175 -> Hash
176176 -> Gather
177- Workers Planned: 10
177+ Workers Planned: 8
178178 -> Parallel Seq Scan on p1_c1_c1
179179 (7 rows)
180180
181181 SET parallel_setup_cost to 0;
182182 SET parallel_tuple_cost to 0;
183183 SET min_parallel_relation_size to 0;
184-/*+Parallel(p1_c1_c1 10 soft) Parallel(p2_c1_c1 0)*/
184+/*+Parallel(p1_c1_c1 8 soft) Parallel(p2_c1_c1 0)*/
185185 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
186186 LOG: pg_hint_plan:
187187 used hint:
188-Parallel(p1_c1_c1 10 soft)
188+Parallel(p1_c1_c1 8 soft)
189189 Parallel(p2_c1_c1 0 soft)
190190 not used hint:
191191 duplication hint:
@@ -202,11 +202,11 @@ error hint:
202202 -> Seq Scan on p2_c1_c1
203203 (7 rows)
204204
205-/*+Parallel(p1_c1_c1 10 hard) Parallel(p2_c1_c1 0)*/
205+/*+Parallel(p1_c1_c1 8 hard) Parallel(p2_c1_c1 0)*/
206206 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
207207 LOG: pg_hint_plan:
208208 used hint:
209-Parallel(p1_c1_c1 10 hard)
209+Parallel(p1_c1_c1 8 hard)
210210 Parallel(p2_c1_c1 0 soft)
211211 not used hint:
212212 duplication hint:
@@ -215,7 +215,7 @@ error hint:
215215 QUERY PLAN
216216 ------------------------------------------------
217217 Gather
218- Workers Planned: 10
218+ Workers Planned: 8
219219 -> Hash Join
220220 Hash Cond: (p1_c1_c1.id = p2_c1_c1.id)
221221 -> Parallel Seq Scan on p1_c1_c1
@@ -223,12 +223,12 @@ error hint:
223223 -> Seq Scan on p2_c1_c1
224224 (7 rows)
225225
226-/*+Parallel(p1_c1_c1 10 hard) Parallel(p2_c1_c1 10 hard)*/
226+/*+Parallel(p1_c1_c1 8 hard) Parallel(p2_c1_c1 8 hard)*/
227227 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
228228 LOG: pg_hint_plan:
229229 used hint:
230-Parallel(p1_c1_c1 10 hard)
231-Parallel(p2_c1_c1 10 hard)
230+Parallel(p1_c1_c1 8 hard)
231+Parallel(p2_c1_c1 8 hard)
232232 not used hint:
233233 duplication hint:
234234 error hint:
@@ -238,11 +238,11 @@ error hint:
238238 Hash Join
239239 Hash Cond: (p1_c1_c1.id = p2_c1_c1.id)
240240 -> Gather
241- Workers Planned: 10
241+ Workers Planned: 8
242242 -> Parallel Seq Scan on p1_c1_c1
243243 -> Hash
244244 -> Gather
245- Workers Planned: 10
245+ Workers Planned: 8
246246 -> Parallel Seq Scan on p2_c1_c1
247247 (9 rows)
248248
@@ -250,11 +250,11 @@ error hint:
250250 SET parallel_setup_cost to 0;
251251 SET parallel_tuple_cost to 0;
252252 SET min_parallel_relation_size to 0;
253-/*+Parallel(p1 10)*/
253+/*+Parallel(p1 8)*/
254254 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
255255 LOG: pg_hint_plan:
256256 used hint:
257-Parallel(p1 10 soft)
257+Parallel(p1 8 soft)
258258 not used hint:
259259 duplication hint:
260260 error hint:
@@ -290,11 +290,11 @@ error hint:
290290 -> Parallel Seq Scan on p2_c3_c2
291291 (27 rows)
292292
293-/*+Parallel(p1 10)Parallel(p2 0)*/
293+/*+Parallel(p1 8)Parallel(p2 0)*/
294294 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
295295 LOG: pg_hint_plan:
296296 used hint:
297-Parallel(p1 10 soft)
297+Parallel(p1 8 soft)
298298 Parallel(p2 0 soft)
299299 not used hint:
300300 duplication hint:
@@ -332,11 +332,11 @@ error hint:
332332 SET parallel_setup_cost to DEFAULT;
333333 SET parallel_tuple_cost to DEFAULT;
334334 SET min_parallel_relation_size to DEFAULT;
335-/*+Parallel(p2 10 hard)*/
335+/*+Parallel(p2 8 hard)*/
336336 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
337337 LOG: pg_hint_plan:
338338 used hint:
339-Parallel(p2 10 hard)
339+Parallel(p2 8 hard)
340340 not used hint:
341341 duplication hint:
342342 error hint:
@@ -344,40 +344,40 @@ error hint:
344344 QUERY PLAN
345345 -------------------------------------------------------
346346 Hash Join
347- Hash Cond: (p1.id = p2.id)
347+ Hash Cond: (p2.id = p1.id)
348348 -> Gather
349- Workers Planned: 1
349+ Workers Planned: 8
350350 -> Append
351- -> Parallel Seq Scan on p1
352- -> Parallel Seq Scan on p1_c1
353- -> Parallel Seq Scan on p1_c2
354- -> Parallel Seq Scan on p1_c3
355- -> Parallel Seq Scan on p1_c4
356- -> Parallel Seq Scan on p1_c1_c1
357- -> Parallel Seq Scan on p1_c1_c2
358- -> Parallel Seq Scan on p1_c3_c1
359- -> Parallel Seq Scan on p1_c3_c2
351+ -> Parallel Seq Scan on p2
352+ -> Parallel Seq Scan on p2_c1
353+ -> Parallel Seq Scan on p2_c2
354+ -> Parallel Seq Scan on p2_c3
355+ -> Parallel Seq Scan on p2_c4
356+ -> Parallel Seq Scan on p2_c1_c1
357+ -> Parallel Seq Scan on p2_c1_c2
358+ -> Parallel Seq Scan on p2_c3_c1
359+ -> Parallel Seq Scan on p2_c3_c2
360360 -> Hash
361361 -> Gather
362- Workers Planned: 10
362+ Workers Planned: 1
363363 -> Append
364- -> Parallel Seq Scan on p2
365- -> Parallel Seq Scan on p2_c1
366- -> Parallel Seq Scan on p2_c2
367- -> Parallel Seq Scan on p2_c3
368- -> Parallel Seq Scan on p2_c4
369- -> Parallel Seq Scan on p2_c1_c1
370- -> Parallel Seq Scan on p2_c1_c2
371- -> Parallel Seq Scan on p2_c3_c1
372- -> Parallel Seq Scan on p2_c3_c2
364+ -> Parallel Seq Scan on p1
365+ -> Parallel Seq Scan on p1_c1
366+ -> Parallel Seq Scan on p1_c2
367+ -> Parallel Seq Scan on p1_c3
368+ -> Parallel Seq Scan on p1_c4
369+ -> Parallel Seq Scan on p1_c1_c1
370+ -> Parallel Seq Scan on p1_c1_c2
371+ -> Parallel Seq Scan on p1_c3_c1
372+ -> Parallel Seq Scan on p1_c3_c2
373373 (27 rows)
374374
375-/*+Parallel(p2 10 hard) Parallel(p1 5 hard) */
375+/*+Parallel(p2 8 hard) Parallel(p1 5 hard) */
376376 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
377377 LOG: pg_hint_plan:
378378 used hint:
379379 Parallel(p1 5 hard)
380-Parallel(p2 10 hard)
380+Parallel(p2 8 hard)
381381 not used hint:
382382 duplication hint:
383383 error hint:
@@ -385,42 +385,42 @@ error hint:
385385 QUERY PLAN
386386 -------------------------------------------------------
387387 Hash Join
388- Hash Cond: (p1.id = p2.id)
388+ Hash Cond: (p2.id = p1.id)
389389 -> Gather
390- Workers Planned: 5
390+ Workers Planned: 8
391391 -> Append
392- -> Parallel Seq Scan on p1
393- -> Parallel Seq Scan on p1_c1
394- -> Parallel Seq Scan on p1_c2
395- -> Parallel Seq Scan on p1_c3
396- -> Parallel Seq Scan on p1_c4
397- -> Parallel Seq Scan on p1_c1_c1
398- -> Parallel Seq Scan on p1_c1_c2
399- -> Parallel Seq Scan on p1_c3_c1
400- -> Parallel Seq Scan on p1_c3_c2
392+ -> Parallel Seq Scan on p2
393+ -> Parallel Seq Scan on p2_c1
394+ -> Parallel Seq Scan on p2_c2
395+ -> Parallel Seq Scan on p2_c3
396+ -> Parallel Seq Scan on p2_c4
397+ -> Parallel Seq Scan on p2_c1_c1
398+ -> Parallel Seq Scan on p2_c1_c2
399+ -> Parallel Seq Scan on p2_c3_c1
400+ -> Parallel Seq Scan on p2_c3_c2
401401 -> Hash
402402 -> Gather
403- Workers Planned: 10
403+ Workers Planned: 5
404404 -> Append
405- -> Parallel Seq Scan on p2
406- -> Parallel Seq Scan on p2_c1
407- -> Parallel Seq Scan on p2_c2
408- -> Parallel Seq Scan on p2_c3
409- -> Parallel Seq Scan on p2_c4
410- -> Parallel Seq Scan on p2_c1_c1
411- -> Parallel Seq Scan on p2_c1_c2
412- -> Parallel Seq Scan on p2_c3_c1
413- -> Parallel Seq Scan on p2_c3_c2
405+ -> Parallel Seq Scan on p1
406+ -> Parallel Seq Scan on p1_c1
407+ -> Parallel Seq Scan on p1_c2
408+ -> Parallel Seq Scan on p1_c3
409+ -> Parallel Seq Scan on p1_c4
410+ -> Parallel Seq Scan on p1_c1_c1
411+ -> Parallel Seq Scan on p1_c1_c2
412+ -> Parallel Seq Scan on p1_c3_c1
413+ -> Parallel Seq Scan on p1_c3_c2
414414 (27 rows)
415415
416416 -- Mixture with a scan hint
417417 -- p1 can be parallel
418-/*+Parallel(p1 10 hard) IndexScan(p2) */
418+/*+Parallel(p1 8 hard) IndexScan(p2) */
419419 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
420420 LOG: pg_hint_plan:
421421 used hint:
422422 IndexScan(p2)
423-Parallel(p1 10 hard)
423+Parallel(p1 8 hard)
424424 not used hint:
425425 duplication hint:
426426 error hint:
@@ -430,7 +430,7 @@ error hint:
430430 Hash Join
431431 Hash Cond: (p1.id = p2.id)
432432 -> Gather
433- Workers Planned: 10
433+ Workers Planned: 8
434434 -> Append
435435 -> Parallel Seq Scan on p1
436436 -> Parallel Seq Scan on p1_c1
@@ -457,12 +457,12 @@ error hint:
457457 (27 rows)
458458
459459 -- seqscan doesn't harm parallelism
460-/*+Parallel(p1 10 hard) SeqScan(p1) */
460+/*+Parallel(p1 8 hard) SeqScan(p1) */
461461 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
462462 LOG: pg_hint_plan:
463463 used hint:
464464 SeqScan(p1)
465-Parallel(p1 10 hard)
465+Parallel(p1 8 hard)
466466 not used hint:
467467 duplication hint:
468468 error hint:
@@ -472,7 +472,7 @@ error hint:
472472 Hash Join
473473 Hash Cond: (p1.id = p2.id)
474474 -> Gather
475- Workers Planned: 10
475+ Workers Planned: 8
476476 -> Append
477477 -> Parallel Seq Scan on p1
478478 -> Parallel Seq Scan on p1_c1
@@ -499,12 +499,12 @@ error hint:
499499 (27 rows)
500500
501501 -- parallel overrides index scan
502-/*+Parallel(p1 10 hard) IndexScan(p1) */
502+/*+Parallel(p1 8 hard) IndexScan(p1) */
503503 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
504504 LOG: pg_hint_plan:
505505 used hint:
506506 IndexScan(p1)
507-Parallel(p1 10 hard)
507+Parallel(p1 8 hard)
508508 not used hint:
509509 duplication hint:
510510 error hint:
@@ -514,7 +514,7 @@ error hint:
514514 Hash Join
515515 Hash Cond: (p1.id = p2.id)
516516 -> Gather
517- Workers Planned: 10
517+ Workers Planned: 8
518518 -> Append
519519 -> Parallel Seq Scan on p1
520520 -> Parallel Seq Scan on p1_c1
@@ -607,11 +607,11 @@ SET parallel_setup_cost to 0;
607607 SET parallel_tuple_cost to 0;
608608 SET min_parallel_relation_size to 0;
609609 SET max_parallel_workers_per_gather to 0;
610-/*+Parallel(p1 10) */
610+/*+Parallel(p1 8) */
611611 EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
612612 LOG: pg_hint_plan:
613613 used hint:
614-Parallel(p1 10 soft)
614+Parallel(p1 8 soft)
615615 not used hint:
616616 duplication hint:
617617 error hint:
@@ -680,7 +680,7 @@ error hint:
680680 SET parallel_setup_cost to DEFAULT;
681681 SET parallel_tuple_cost to DEFAULT;
682682 SET min_parallel_relation_size to DEFAULT;
683-SET max_parallel_workers_per_gather to 10;
683+SET max_parallel_workers_per_gather to 8;
684684 /*+Parallel(p1 5 hard)Parallel(p2 6 hard) */
685685 EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
686686 LOG: pg_hint_plan:
@@ -721,11 +721,11 @@ SET parallel_setup_cost to 0;
721721 SET parallel_tuple_cost to 0;
722722 SET min_parallel_relation_size to 0;
723723 SET max_parallel_workers_per_gather to 3;
724-/*+Parallel(p1 10 hard) */
724+/*+Parallel(p1 8 hard) */
725725 EXPLAIN (COSTS false) SELECT * FROM p1 join t1 on p1.id = t1.id;
726726 LOG: pg_hint_plan:
727727 used hint:
728-Parallel(p1 10 hard)
728+Parallel(p1 8 hard)
729729 not used hint:
730730 duplication hint:
731731 error hint:
@@ -739,7 +739,7 @@ error hint:
739739 -> Parallel Seq Scan on t1
740740 -> Hash
741741 -> Gather
742- Workers Planned: 10
742+ Workers Planned: 8
743743 -> Append
744744 -> Parallel Seq Scan on p1
745745 -> Parallel Seq Scan on p1_c1
@@ -799,14 +799,14 @@ error hint:
799799
800800 -- Errors
801801 /*+Parallel(p1 100x hard)Parallel(p1 -1000 hard)Parallel(p1 1000000 hard)
802- Parallel(p1 10 hoge)Parallel(p1)Parallel(p1 100 soft x)*/
802+ Parallel(p1 8 hoge)Parallel(p1)Parallel(p1 100 soft x)*/
803803 EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
804804 INFO: pg_hint_plan: hint syntax error at or near "100x"
805805 DETAIL: number of workers must be a number: Parallel
806806 INFO: pg_hint_plan: hint syntax error at or near "-1000"
807807 DETAIL: number of workers must be positive: Parallel
808808 INFO: pg_hint_plan: hint syntax error at or near "1000000"
809-DETAIL: number of workers = 1000000 is larger than max_worker_processes(100): Parallel
809+DETAIL: number of workers = 1000000 is larger than max_worker_processes(8): Parallel
810810 INFO: pg_hint_plan: hint syntax error at or near "hoge"
811811 DETAIL: enforcement must be soft or hard: Parallel
812812 INFO: pg_hint_plan: hint syntax error at or near ")"
@@ -821,7 +821,7 @@ error hint:
821821 Parallel(p1 100x hard)
822822 Parallel(p1 -1000 hard)
823823 Parallel(p1 1000000 hard)
824-Parallel(p1 10 hard)
824+Parallel(p1 8 soft)
825825 Parallel()
826826 Parallel()
827827
--- a/pg_hint_plan.c
+++ b/pg_hint_plan.c
@@ -2367,20 +2367,16 @@ ParallelHintParse(ParallelHint *hint, HintState *hstate, Query *parse,
23672367 hint_ereport(hint->nworkers_str,
23682368 ("number of workers must be positive: %s",
23692369 hint->base.keyword));
2370- if ( nworkers > max_worker_processes)
2370+ else if (nworkers > max_worker_processes)
23712371 hint_ereport(hint->nworkers_str,
23722372 ("number of workers = %d is larger than max_worker_processes(%d): %s",
23732373 nworkers, max_worker_processes, hint->base.keyword));
23742374
23752375 hint->base.state = HINT_STATE_ERROR;
2376- return str;
23772376 }
23782377
23792378 hint->nworkers = nworkers;
23802379
2381- if (nworkers > max_hint_nworkers)
2382- max_hint_nworkers = nworkers;
2383-
23842380 /* optional third parameter is specified */
23852381 if (length == 3)
23862382 {
@@ -2393,12 +2389,15 @@ ParallelHintParse(ParallelHint *hint, HintState *hstate, Query *parse,
23932389 ("enforcement must be soft or hard: %s",
23942390 hint->base.keyword));
23952391 hint->base.state = HINT_STATE_ERROR;
2396- return str;
23972392 }
23982393 }
2399-
2394+
24002395 hint->force_parallel = force_parallel;
24012396
2397+ if (hint->base.state != HINT_STATE_ERROR &&
2398+ nworkers > max_hint_nworkers)
2399+ max_hint_nworkers = nworkers;
2400+
24022401 return str;
24032402 }
24042403
--- a/sql/ut-W.sql
+++ b/sql/ut-W.sql
@@ -16,50 +16,50 @@ SET parallel_tuple_cost to 0;
1616 SET min_parallel_relation_size to 0;
1717 SET max_parallel_workers_per_gather to DEFAULT;
1818
19-/*+Parallel(t1 10)*/
19+/*+Parallel(t1 8)*/
2020 EXPLAIN (COSTS false) SELECT * FROM s1.t1;
2121
22-/*+Parallel(t1 10 soft)*/
22+/*+Parallel(t1 8 soft)*/
2323 EXPLAIN (COSTS false) SELECT * FROM s1.t1;
2424
25-/*+Parallel(t1 10 hard)*/
25+/*+Parallel(t1 8 hard)*/
2626 EXPLAIN (COSTS false) SELECT * FROM s1.t1;
2727
2828 -- Queries on inheritance tables
2929 SET parallel_setup_cost to 0;
3030 SET parallel_tuple_cost to 0;
3131 SET min_parallel_relation_size to 0;
32-/*+Parallel(p1 10)*/
32+/*+Parallel(p1 8)*/
3333 EXPLAIN (COSTS false) SELECT * FROM p1;
3434 SET parallel_setup_cost to DEFAULT;
3535 SET parallel_tuple_cost to DEFAULT;
3636 SET min_parallel_relation_size to DEFAULT;
3737
38-/*+Parallel(p1 10 hard)*/
38+/*+Parallel(p1 8 hard)*/
3939 EXPLAIN (COSTS false) SELECT * FROM p1;
4040
4141 -- hinting on children makes the whole inheritance parallel
42-/*+Parallel(p1_c1 10 hard)*/
42+/*+Parallel(p1_c1 8 hard)*/
4343 EXPLAIN (COSTS false) SELECT * FROM p1;
4444
4545
4646 -- Joins
4747 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
4848
49-/*+Parallel(p1_c1_c1 10 hard)*/
49+/*+Parallel(p1_c1_c1 8 hard)*/
5050 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
5151
5252 SET parallel_setup_cost to 0;
5353 SET parallel_tuple_cost to 0;
5454 SET min_parallel_relation_size to 0;
5555
56-/*+Parallel(p1_c1_c1 10 soft) Parallel(p2_c1_c1 0)*/
56+/*+Parallel(p1_c1_c1 8 soft) Parallel(p2_c1_c1 0)*/
5757 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
5858
59-/*+Parallel(p1_c1_c1 10 hard) Parallel(p2_c1_c1 0)*/
59+/*+Parallel(p1_c1_c1 8 hard) Parallel(p2_c1_c1 0)*/
6060 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
6161
62-/*+Parallel(p1_c1_c1 10 hard) Parallel(p2_c1_c1 10 hard)*/
62+/*+Parallel(p1_c1_c1 8 hard) Parallel(p2_c1_c1 8 hard)*/
6363 EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c1_c1.id;
6464
6565
@@ -67,34 +67,34 @@ EXPLAIN (COSTS false) SELECT * FROM p1_c1_c1 join p2_c1_c1 on p1_c1_c1.id = p2_c
6767 SET parallel_setup_cost to 0;
6868 SET parallel_tuple_cost to 0;
6969 SET min_parallel_relation_size to 0;
70-/*+Parallel(p1 10)*/
70+/*+Parallel(p1 8)*/
7171 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
7272
73-/*+Parallel(p1 10)Parallel(p2 0)*/
73+/*+Parallel(p1 8)Parallel(p2 0)*/
7474 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
7575
7676 SET parallel_setup_cost to DEFAULT;
7777 SET parallel_tuple_cost to DEFAULT;
7878 SET min_parallel_relation_size to DEFAULT;
7979
80-/*+Parallel(p2 10 hard)*/
80+/*+Parallel(p2 8 hard)*/
8181 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
8282
83-/*+Parallel(p2 10 hard) Parallel(p1 5 hard) */
83+/*+Parallel(p2 8 hard) Parallel(p1 5 hard) */
8484 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
8585
8686
8787 -- Mixture with a scan hint
8888 -- p1 can be parallel
89-/*+Parallel(p1 10 hard) IndexScan(p2) */
89+/*+Parallel(p1 8 hard) IndexScan(p2) */
9090 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
9191
9292 -- seqscan doesn't harm parallelism
93-/*+Parallel(p1 10 hard) SeqScan(p1) */
93+/*+Parallel(p1 8 hard) SeqScan(p1) */
9494 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
9595
9696 -- parallel overrides index scan
97-/*+Parallel(p1 10 hard) IndexScan(p1) */
97+/*+Parallel(p1 8 hard) IndexScan(p1) */
9898 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
9999 /*+Parallel(p1 0 hard) IndexScan(p1) */
100100 EXPLAIN (COSTS false) SELECT * FROM p1 join p2 on p1.id = p2.id;
@@ -109,7 +109,7 @@ SET parallel_tuple_cost to 0;
109109 SET min_parallel_relation_size to 0;
110110 SET max_parallel_workers_per_gather to 0;
111111
112-/*+Parallel(p1 10) */
112+/*+Parallel(p1 8) */
113113 EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
114114
115115 -- set hint also does
@@ -120,7 +120,7 @@ EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
120120 SET parallel_setup_cost to DEFAULT;
121121 SET parallel_tuple_cost to DEFAULT;
122122 SET min_parallel_relation_size to DEFAULT;
123-SET max_parallel_workers_per_gather to 10;
123+SET max_parallel_workers_per_gather to 8;
124124 /*+Parallel(p1 5 hard)Parallel(p2 6 hard) */
125125 EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
126126
@@ -131,7 +131,7 @@ SET parallel_tuple_cost to 0;
131131 SET min_parallel_relation_size to 0;
132132 SET max_parallel_workers_per_gather to 3;
133133
134-/*+Parallel(p1 10 hard) */
134+/*+Parallel(p1 8 hard) */
135135 EXPLAIN (COSTS false) SELECT * FROM p1 join t1 on p1.id = t1.id;
136136
137137 -- Negative hint
@@ -146,7 +146,7 @@ EXPLAIN (COSTS false) SELECT * FROM p1;
146146
147147 -- Errors
148148 /*+Parallel(p1 100x hard)Parallel(p1 -1000 hard)Parallel(p1 1000000 hard)
149- Parallel(p1 10 hoge)Parallel(p1)Parallel(p1 100 soft x)*/
149+ Parallel(p1 8 hoge)Parallel(p1)Parallel(p1 100 soft x)*/
150150 EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2;
151151
152152 ALTER SYSTEM SET session_preload_libraries TO DEFAULT;
旧リポジトリブラウザで表示