2 SET pg_hint_plan.enable TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
9 ---- No. J-3-4 hint state output
13 /*+Set(enable_indexscan off)NestLoop("")Set(enable_bitmapscan off)*/
14 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
17 ---- No. A-5-1 hint format
22 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
26 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
30 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
34 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
38 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
42 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
45 /*+SeqScan(t1) /* nest comment */ */
46 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
49 /* +SeqScan(t1) /* nest comment */ */
50 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
53 /*SeqScan(t1) /* nest comment */ */
54 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
57 ---- No. A-5-2 hint position
62 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
67 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
70 EXPLAIN (COSTS false) SELECT /*+SeqScan(t1)*/ * FROM s1.t1 WHERE t1.c1 = 1;
73 ---- No. A-5-4 hint delimiter
76 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
84 /*+Set(enable_indexscan"off")Set(enable_bitmapscan"off")*/
85 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
88 /*+ Set(enable_indexscan"off")Set(enable_bitmapscan"off")*/
89 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
92 /*+Set(enable_indexscan"off")Set(enable_bitmapscan"off") */
93 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
96 /*+ Set (enable_indexscan"off") Set (enable_bitmapscan"off")*/
97 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
100 /*+Set ( enable_indexscan"off")Set ( enable_bitmapscan"off")*/
101 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
104 /*+Set(enable_indexscan"off" ) Set(enable_bitmapscan"off" ) */
105 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
108 /*+Set( enable_indexscan "off" )Set( enable_bitmapscan "off" )*/
109 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
112 /*+ Set ( enable_indexscan "off" ) Set ( enable_bitmapscan "off" ) */
113 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
116 /*+ Set(enable_indexscan"off")Set(enable_bitmapscan"off")*/
117 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
120 /*+Set(enable_indexscan"off")Set(enable_bitmapscan"off") */
121 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
124 /*+ Set (enable_indexscan"off") Set (enable_bitmapscan"off")*/
125 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
128 /*+Set ( enable_indexscan"off")Set ( enable_bitmapscan"off")*/
129 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
132 /*+Set(enable_indexscan"off" ) Set(enable_bitmapscan"off" ) */
133 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
136 /*+Set( enable_indexscan "off" )Set( enable_bitmapscan "off" )*/
137 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
140 /*+ Set ( enable_indexscan "off" ) Set ( enable_bitmapscan "off" ) */
141 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
145 Set(enable_indexscan"off")Set(enable_bitmapscan"off")*/
146 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
149 /*+Set(enable_indexscan"off")Set(enable_bitmapscan"off")
151 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
156 (enable_indexscan"off")
158 (enable_bitmapscan"off")*/
159 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
164 enable_indexscan"off")Set
166 enable_bitmapscan"off")*/
167 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
170 /*+Set(enable_indexscan"off"
172 Set(enable_bitmapscan"off"
175 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
185 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
200 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
204 Set(enable_indexscan"off")Set(enable_bitmapscan"off")*/
205 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
208 /*+Set(enable_indexscan"off")Set(enable_bitmapscan"off")
210 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
215 (enable_indexscan"off")
217 (enable_bitmapscan"off")*/
218 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
223 enable_indexscan"off")Set
225 enable_bitmapscan"off")*/
226 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
229 /*+Set(enable_indexscan"off"
231 Set(enable_bitmapscan"off"
234 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
244 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
259 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
262 ---- No. A-5-5 hint object pattern
263 ---- No. A-7-2 message object pattern
269 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t WHERE t.c1 = 1;
271 EXPLAIN (COSTS false) SELECT * FROM s1.t1 ttt WHERE ttt.c1 = 1;
273 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t WHERE t.c1 = 1;
275 EXPLAIN (COSTS false) SELECT * FROM s1.t1 ttt WHERE ttt.c1 = 1;
280 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "T" WHERE "T".c1 = 1;
282 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "TTT" WHERE "TTT".c1 = 1;
284 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "T" WHERE "T".c1 = 1;
286 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "TTT" WHERE "TTT".c1 = 1;
291 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "(" WHERE "(".c1 = 1;
293 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "(((" WHERE "(((".c1 = 1;
295 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "(" WHERE "(".c1 = 1;
297 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "(((" WHERE "(((".c1 = 1;
302 EXPLAIN (COSTS false) SELECT * FROM s1.t1 ")" WHERE ")".c1 = 1;
304 EXPLAIN (COSTS false) SELECT * FROM s1.t1 ")" WHERE ")".c1 = 1;
306 EXPLAIN (COSTS false) SELECT * FROM s1.t1 ")))" WHERE ")))".c1 = 1;
311 EXPLAIN (COSTS false) SELECT * FROM s1.t1 """" WHERE """".c1 = 1;
313 EXPLAIN (COSTS false) SELECT * FROM s1.t1 """" WHERE """".c1 = 1;
314 /*+SeqScan("""""""")*/
315 EXPLAIN (COSTS false) SELECT * FROM s1.t1 """""""" WHERE """""""".c1 = 1;
320 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
322 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
324 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
329 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
331 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
333 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
339 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "
344 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "
351 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "
362 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "Set" WHERE "Set".c1 = 1;
364 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "Set" WHERE "Set".c1 = 1;
365 /*+SeqScan("Set SeqScan Leading")*/
366 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "Set SeqScan Leading" WHERE "Set SeqScan Leading".c1 = 1;
371 EXPLAIN (COSTS false) SELECT * FROM s1.t1 あ WHERE あ.c1 = 1;
373 EXPLAIN (COSTS false) SELECT * FROM s1.t1 あいう WHERE あいう.c1 = 1;
375 EXPLAIN (COSTS false) SELECT * FROM s1.t1 あ WHERE あ.c1 = 1;
377 EXPLAIN (COSTS false) SELECT * FROM s1.t1 あいう WHERE あいう.c1 = 1;
382 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**/" WHERE "/**/".c1 = 1;
383 /*+SeqScan(/**//**//**/)*/
384 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**//**//**/" WHERE "/**//**//**/".c1 = 1;
390 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "tT()""
391 Set/**/あ" WHERE "tT()""
397 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "tT()""
402 ---- No. A-5-6 hint parse error
406 /*+Set(enable_indexscan off)Set enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)*/
407 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
410 /*+Set(enable_indexscan off)Set(enable_tidscan off Set(enable_bitmapscan off)SeqScan(t1)*/
411 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
414 /*+Set(enable_indexscan off)Set(enable_tidscan "off)Set(enable_bitmapscan off)SeqScan(t1)*/
415 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
418 /*+Set(enable_indexscan off)SeqScan("")Set(enable_bitmapscan off)*/
419 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
422 /*+Set(enable_indexscan off)NoSet(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)*/
423 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
426 /*+Set(enable_indexscan off)"Set"(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)*/
427 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
430 /*+Set(enable_indexscan off)Set(enable_tidscan /* value */off)Set(enable_bitmapscan off)SeqScan(t1)*/
431 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
434 ---- No. A-6-1 original GUC parameter
439 SET pg_hint_plan.debug_print TO off;
440 SHOW pg_hint_plan.enable;
441 SHOW pg_hint_plan.debug_print;
442 SHOW pg_hint_plan.parse_messages;
443 SET pg_hint_plan.enable TO off;
444 SET pg_hint_plan.debug_print TO on;
445 SET pg_hint_plan.parse_messages TO error;
446 SHOW pg_hint_plan.enable;
447 SHOW pg_hint_plan.debug_print;
448 SHOW pg_hint_plan.parse_messages;
449 RESET pg_hint_plan.enable;
450 RESET pg_hint_plan.debug_print;
451 RESET pg_hint_plan.parse_messages;
452 SHOW pg_hint_plan.enable;
453 SHOW pg_hint_plan.debug_print;
454 SHOW pg_hint_plan.parse_messages;
457 SET ROLE normal_user;
458 SHOW pg_hint_plan.enable;
459 SHOW pg_hint_plan.debug_print;
460 SHOW pg_hint_plan.parse_messages;
461 SET pg_hint_plan.enable TO off;
462 SET pg_hint_plan.debug_print TO on;
463 SET pg_hint_plan.parse_messages TO error;
464 SHOW pg_hint_plan.enable;
465 SHOW pg_hint_plan.debug_print;
466 SHOW pg_hint_plan.parse_messages;
467 RESET pg_hint_plan.enable;
468 RESET pg_hint_plan.debug_print;
469 RESET pg_hint_plan.parse_messages;
470 SHOW pg_hint_plan.enable;
471 SHOW pg_hint_plan.debug_print;
472 SHOW pg_hint_plan.parse_messages;
477 ---- No. A-6-2 original GUC parameter pg_hint_plan.enable
481 SET pg_hint_plan.enable TO on;
482 SHOW pg_hint_plan.enable;
483 /*+Set(enable_indexscan off)*/
484 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
487 SET pg_hint_plan.enable TO off;
488 SHOW pg_hint_plan.enable;
489 /*+Set(enable_indexscan off)*/
490 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
493 SET pg_hint_plan.enable TO DEFAULT;
494 SHOW pg_hint_plan.enable;
495 /*+Set(enable_indexscan off)*/
496 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
499 SET pg_hint_plan.enable TO enable;
500 SHOW pg_hint_plan.enable;
503 ---- No. A-6-3 original GUC parameter pg_hint_plan.debug_print
507 SET pg_hint_plan.debug_print TO on;
508 SHOW pg_hint_plan.debug_print;
509 /*+Set(enable_indexscan off)*/
510 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
513 SET pg_hint_plan.debug_print TO off;
514 SHOW pg_hint_plan.debug_print;
515 /*+Set(enable_indexscan off)*/
516 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
519 SET pg_hint_plan.debug_print TO DEFAULT;
520 SHOW pg_hint_plan.debug_print;
521 /*+Set(enable_indexscan off)*/
522 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
525 SET pg_hint_plan.debug_print TO enable;
526 SHOW pg_hint_plan.debug_print;
529 ---- No. A-6-4 original GUC parameter pg_hint_plan.parse_messages
532 SET client_min_messages TO debug5;
535 SET pg_hint_plan.parse_messages TO debug5;
536 SHOW pg_hint_plan.parse_messages;
538 SET client_min_messages TO debug4;
542 SET pg_hint_plan.parse_messages TO debug4;
543 SHOW pg_hint_plan.parse_messages;
545 SET client_min_messages TO debug3;
549 SET pg_hint_plan.parse_messages TO debug3;
550 SHOW pg_hint_plan.parse_messages;
552 SET client_min_messages TO debug2;
556 SET pg_hint_plan.parse_messages TO debug2;
557 SHOW pg_hint_plan.parse_messages;
559 SET client_min_messages TO debug1;
563 SET pg_hint_plan.parse_messages TO debug1;
564 SHOW pg_hint_plan.parse_messages;
566 SET client_min_messages TO log;
570 SET pg_hint_plan.parse_messages TO log;
571 SHOW pg_hint_plan.parse_messages;
573 SET client_min_messages TO info;
577 SET pg_hint_plan.parse_messages TO info;
578 SHOW pg_hint_plan.parse_messages;
580 SET client_min_messages TO notice;
584 SET pg_hint_plan.parse_messages TO notice;
585 SHOW pg_hint_plan.parse_messages;
587 SET client_min_messages TO warning;
591 SET pg_hint_plan.parse_messages TO warning;
592 SHOW pg_hint_plan.parse_messages;
594 SET client_min_messages TO error;
598 SET pg_hint_plan.parse_messages TO error;
599 SHOW pg_hint_plan.parse_messages;
601 SET client_min_messages TO fatal;
605 RESET client_min_messages;
606 SET pg_hint_plan.parse_messages TO DEFAULT;
607 SHOW pg_hint_plan.parse_messages;
611 SET pg_hint_plan.parse_messages TO fatal;
612 SHOW pg_hint_plan.parse_messages;
615 SET pg_hint_plan.parse_messages TO panic;
616 SHOW pg_hint_plan.parse_messages;
619 SET pg_hint_plan.parse_messages TO on;
620 SHOW pg_hint_plan.parse_messages;
623 ---- No. A-7-1 parse error message output
627 /*+"Set"(enable_indexscan on)*/SELECT 1;
628 /*+Set()(enable_indexscan on)*/SELECT 1;
629 /*+Set(enable_indexscan on*/SELECT 1;
632 ---- No. A-7-3 hint state output
635 SET pg_hint_plan.debug_print TO on;
636 SET client_min_messages TO LOG;
640 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
643 /*+SeqScan(no_table)*/
644 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
647 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
648 /*+TidScan(t1)BitmapScan(t1)*/
649 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
650 /*+TidScan(t1)BitmapScan(t1)IndexScan(t1)*/
651 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
652 /*+TidScan(t1)BitmapScan(t1)IndexScan(t1)SeqScan(t1)*/
653 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
656 /*+Set(enable_indexscan enable)*/
657 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
660 ---- No. A-8-1 hint state output
663 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 = 1;
664 EXPLAIN (COSTS false) EXECUTE p1;
667 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 < $1;
668 EXPLAIN (COSTS false) EXECUTE p1 (1);
674 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 = 1;
676 EXPLAIN (COSTS false) EXECUTE p1;
677 UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
679 EXPLAIN (COSTS false) EXECUTE p1;
683 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 < $1;
685 EXPLAIN (COSTS false) EXECUTE p1 (1);
686 UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
688 EXPLAIN (COSTS false) EXECUTE p1 (1);
694 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 = 1;
695 EXPLAIN (COSTS false) EXECUTE p1;
696 UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
697 EXPLAIN (COSTS false) EXECUTE p1;
701 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 < $1;
702 EXPLAIN (COSTS false) EXECUTE p1 (1);
703 UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
704 EXPLAIN (COSTS false) EXECUTE p1 (1);
709 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 = 1;
711 EXPLAIN (COSTS false) EXECUTE p1;
712 UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
714 EXPLAIN (COSTS false) EXECUTE p1;
717 PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 < $1;
719 EXPLAIN (COSTS false) EXECUTE p1 (1);
720 UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
722 EXPLAIN (COSTS false) EXECUTE p1 (1);
726 ---- No. A-8-4 EXECUTE statement name error
731 SHOW pg_hint_plan.debug_print;
734 ---- No. A-9-5 EXECUTE statement name error
738 CREATE EXTENSION pg_stat_statements;
739 SELECT pg_stat_statements_reset();
740 SELECT * FROM s1.t1 WHERE t1.c1 = 1;
741 /*+Set(enable_seqscan off)*/ SELECT * FROM s1.t1 WHERE t1.c1 = 1;
742 /*+SeqScan(t1)*/ SELECT * FROM s1.t1 WHERE t1.c1 = 1;
743 SELECT s.query, s.calls
744 FROM public.pg_stat_statements s
745 JOIN pg_catalog.pg_database d
750 ---- No. A-12-1 reset of global variable of core at the error
751 ---- No. A-12-2 reset of global variable of original at the error
754 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
755 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/
756 PREPARE p1 AS SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
757 EXPLAIN (COSTS false) EXECUTE p1;
761 SELECT name, setting FROM settings;
762 SET pg_hint_plan.parse_messages TO error;
763 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/
764 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
765 SELECT name, setting FROM settings;
766 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)*/
767 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
771 SELECT name, setting FROM settings;
772 SET pg_hint_plan.parse_messages TO error;
773 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/
774 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
775 SELECT name, setting FROM settings;
776 EXPLAIN (COSTS false) EXECUTE p1;
780 SELECT name, setting FROM settings;
781 SET pg_hint_plan.parse_messages TO error;
782 EXPLAIN (COSTS false) EXECUTE p2;
783 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)*/
784 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
785 EXPLAIN (COSTS false) EXECUTE p1;
786 SELECT name, setting FROM settings;
790 SELECT name, setting FROM settings;
791 SET pg_hint_plan.parse_messages TO error;
792 EXPLAIN (COSTS false) EXECUTE p2;
793 EXPLAIN (COSTS false) EXECUTE p1;
794 SELECT name, setting FROM settings;
797 SET pg_hint_plan.parse_messages TO LOG;
800 ---- No. A-12-3 effective range of the hint
803 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
806 SET enable_indexscan TO off;
807 SET enable_mergejoin TO off;
808 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
809 SELECT name, setting FROM settings;
810 /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/
811 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
812 SELECT name, setting FROM settings;
813 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
816 SET enable_indexscan TO off;
817 SET enable_mergejoin TO off;
818 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
819 SELECT name, setting FROM settings;
821 /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/
822 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
825 SELECT name, setting FROM settings;
826 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
830 SET enable_indexscan TO off;
831 SET enable_mergejoin TO off;
832 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
833 SELECT name, setting FROM settings;
834 /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/
835 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
838 SELECT name, setting FROM settings;
839 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
841 SET pg_hint_plan.enable TO on;
842 SET pg_hint_plan.debug_print TO on;
843 SET client_min_messages TO LOG;
844 SET search_path TO public;