OSDN Git Service

Support PG11
[pghintplan/pg_hint_plan.git] / expected / ut-A.out
index f38524c..15ec82b 100644 (file)
@@ -12,9 +12,11 @@ CREATE EXTENSION pg_hint_plan;
 -- No.A-1-2-3
 DROP EXTENSION pg_hint_plan;
 -- No.A-1-1-4
-CREATE EXTENSION pg_hint_plan SCHEMA other_name;
+CREATE SCHEMA other_schema;
+CREATE EXTENSION pg_hint_plan SCHEMA other_schema;
 ERROR:  extension "pg_hint_plan" must be installed in schema "hint_plan"
 CREATE EXTENSION pg_hint_plan;
+DROP SCHEMA other_schema;
 ----
 ---- No. A-5-1 comment pattern
 ----
@@ -133,13 +135,13 @@ EXPLAIN (COSTS false) SELECT * /*+SeqScan(t1)*/ FROM s1.t1 WHERE t1.c1 = 1;
 SET pg_hint_plan.enable_hint_table TO on;
 -- No. A-6-1-1
 \d hint_plan.hints
-                                  Table "hint_plan.hints"
-      Column       |  Type   |                          Modifiers                           
--------------------+---------+--------------------------------------------------------------
- id                | integer | not null default nextval('hint_plan.hints_id_seq'::regclass)
- norm_query_string | text    | not null
- application_name  | text    | not null
- hints             | text    | not null
+                                     Table "hint_plan.hints"
+      Column       |  Type   | Collation | Nullable |                   Default                   
+-------------------+---------+-----------+----------+---------------------------------------------
+ id                | integer |           | not null | nextval('hint_plan.hints_id_seq'::regclass)
+ norm_query_string | text    |           | not null | 
+ application_name  | text    |           | not null | 
+ hints             | text    |           | not null | 
 Indexes:
     "hints_pkey" PRIMARY KEY, btree (id)
     "hints_norm_and_app" UNIQUE, btree (norm_query_string, application_name)
@@ -997,7 +999,7 @@ error hint:
 -- No. A-9-2-3
 /*+SeqScan(()*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "(" WHERE "(".c1 = 1;
-INFO:  hint syntax error at or near "()"
+INFO:  pg_hint_plan: hint syntax error at or near "()"
 DETAIL:  Zero-length delimited string.
             QUERY PLAN            
 ----------------------------------
@@ -1024,9 +1026,9 @@ error hint:
 -- No. A-9-2-4
 /*+SeqScan())*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 ")" WHERE ")".c1 = 1;
-INFO:  hint syntax error at or near ")"
+INFO:  pg_hint_plan: hint syntax error at or near ")"
 DETAIL:  SeqScan hint requires a relation.
-INFO:  hint syntax error at or near ")"
+INFO:  pg_hint_plan: hint syntax error at or near ")"
 DETAIL:  Unrecognized hint keyword ")".
 LOG:  pg_hint_plan:
 used hint:
@@ -1075,7 +1077,7 @@ error hint:
 -- No. A-9-2-5
 /*+SeqScan(")*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 """" WHERE """".c1 = 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Unterminated quoted string.
             QUERY PLAN             
 -----------------------------------
@@ -1117,7 +1119,7 @@ error hint:
 -- No. A-9-2-6
 /*+SeqScan( )*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  SeqScan hint requires a relation.
 LOG:  pg_hint_plan:
 used hint:
@@ -1166,7 +1168,7 @@ error hint:
 -- No. A-9-2-7
 /*+SeqScan(    )*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "    " WHERE "       ".c1 = 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  SeqScan hint requires a relation.
 LOG:  pg_hint_plan:
 used hint:
@@ -1218,7 +1220,7 @@ error hint:
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "
 " WHERE "
 ".c1 = 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  SeqScan hint requires a relation.
 LOG:  pg_hint_plan:
 used hint:
@@ -1397,7 +1399,7 @@ error hint:
 -- No. A-9-2-11
 /*+SeqScan(/**/)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**/" WHERE "/**/".c1 = 1;
-INFO:  hint syntax error at or near "/**/)*/
+INFO:  pg_hint_plan: hint syntax error at or near "/**/)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**/" WHERE "/**/".c1 = 1;"
 DETAIL:  Nested block comments are not supported.
              QUERY PLAN              
@@ -1408,7 +1410,7 @@ DETAIL:  Nested block comments are not supported.
 
 /*+SeqScan(/**//**//**/)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**//**//**/" WHERE "/**//**//**/".c1 = 1;
-INFO:  hint syntax error at or near "/**//**//**/)*/
+INFO:  pg_hint_plan: hint syntax error at or near "/**//**//**/)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**//**//**/" WHERE "/**//**//**/".c1 = 1;"
 DETAIL:  Nested block comments are not supported.
                  QUERY PLAN                  
@@ -1424,7 +1426,7 @@ Set/**/あ")*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "tT()""      
 Set/**/あ" WHERE "tT()""      
 Set/**/あ".c1 = 1;
-INFO:  hint syntax error at or near "/**/あ")*/
+INFO:  pg_hint_plan: hint syntax error at or near "/**/あ")*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 "tT()""      
 Set/**/あ" WHERE "tT()""      
 Set/**/あ".c1 = 1;"
@@ -1480,7 +1482,7 @@ error hint:
 -- No. A-7-4-1
 /*+Set(enable_indexscan off)Set enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near "enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)"
 DETAIL:  Opening parenthesis is necessary.
 LOG:  pg_hint_plan:
 used hint:
@@ -1500,7 +1502,7 @@ error hint:
 -- No. A-7-4-2
 /*+Set(enable_indexscan off)Set(enable_tidscan off Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near "(enable_bitmapscan off)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "(enable_bitmapscan off)SeqScan(t1)"
 DETAIL:  Zero-length delimited string.
 LOG:  pg_hint_plan:
 used hint:
@@ -1520,7 +1522,7 @@ error hint:
 -- No. A-7-4-3
 /*+Set(enable_indexscan off)Set(enable_tidscan "off)Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Unterminated quoted string.
 LOG:  pg_hint_plan:
 used hint:
@@ -1540,7 +1542,7 @@ error hint:
 -- No. A-7-4-4
 /*+Set(enable_indexscan off)SeqScan("")Set(enable_bitmapscan off)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near ")Set(enable_bitmapscan off)"
+INFO:  pg_hint_plan: hint syntax error at or near ")Set(enable_bitmapscan off)"
 DETAIL:  Zero-length delimited string.
 LOG:  pg_hint_plan:
 used hint:
@@ -1560,7 +1562,7 @@ error hint:
 -- No. A-7-4-5
 /*+Set(enable_indexscan off)NoSet(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near "NoSet(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "NoSet(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)"
 DETAIL:  Unrecognized hint keyword "NoSet".
 LOG:  pg_hint_plan:
 used hint:
@@ -1580,7 +1582,7 @@ error hint:
 -- No. A-7-4-6
 /*+Set(enable_indexscan off)"Set"(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near ""Set"(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near ""Set"(enable_tidscan off)Set(enable_bitmapscan off)SeqScan(t1)"
 DETAIL:  Unrecognized hint keyword ""Set"".
 LOG:  pg_hint_plan:
 used hint:
@@ -1600,7 +1602,7 @@ error hint:
 -- No. A-7-4-7
 /*+Set(enable_indexscan off)Set(enable_tidscan /* value */off)Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-INFO:  hint syntax error at or near "/* value */off)Set(enable_bitmapscan off)SeqScan(t1)*/
+INFO:  pg_hint_plan: hint syntax error at or near "/* value */off)Set(enable_bitmapscan off)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;"
 DETAIL:  Nested block comments are not supported.
           QUERY PLAN          
@@ -1612,136 +1614,50 @@ DETAIL:  Nested block comments are not supported.
 ----
 ---- No. A-8-1 original GUC parameter
 ----
+---- Don't test postgresql itself.
 -- No. A-8-1-1
-SET ROLE super_user;
-SET pg_hint_plan.debug_print TO off;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- on
-(1 row)
-
-SHOW pg_hint_plan.debug_print;
- pg_hint_plan.debug_print 
---------------------------
- off
-(1 row)
-
-SHOW pg_hint_plan.parse_messages;
- pg_hint_plan.parse_messages 
------------------------------
- info
-(1 row)
-
-SET pg_hint_plan.enable_hint TO off;
-SET pg_hint_plan.debug_print TO on;
-SET pg_hint_plan.parse_messages TO error;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- off
-(1 row)
-
-SHOW pg_hint_plan.debug_print;
- pg_hint_plan.debug_print 
---------------------------
- on
-(1 row)
-
-SHOW pg_hint_plan.parse_messages;
- pg_hint_plan.parse_messages 
------------------------------
- error
-(1 row)
-
-RESET pg_hint_plan.enable_hint;
-RESET pg_hint_plan.debug_print;
-RESET pg_hint_plan.parse_messages;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- on
-(1 row)
-
-SHOW pg_hint_plan.debug_print;
- pg_hint_plan.debug_print 
---------------------------
- off
-(1 row)
-
-SHOW pg_hint_plan.parse_messages;
- pg_hint_plan.parse_messages 
------------------------------
- info
-(1 row)
-
--- No. A-8-1-2
-SET ROLE normal_user;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- on
-(1 row)
-
-SHOW pg_hint_plan.debug_print;
- pg_hint_plan.debug_print 
---------------------------
- off
-(1 row)
-
-SHOW pg_hint_plan.parse_messages;
- pg_hint_plan.parse_messages 
------------------------------
- info
-(1 row)
-
-SET pg_hint_plan.enable_hint TO off;
-SET pg_hint_plan.debug_print TO on;
-SET pg_hint_plan.parse_messages TO error;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- off
-(1 row)
-
-SHOW pg_hint_plan.debug_print;
- pg_hint_plan.debug_print 
---------------------------
- on
-(1 row)
-
-SHOW pg_hint_plan.parse_messages;
- pg_hint_plan.parse_messages 
------------------------------
- error
-(1 row)
-
-RESET pg_hint_plan.enable_hint;
-RESET pg_hint_plan.debug_print;
-RESET pg_hint_plan.parse_messages;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- on
-(1 row)
-
-SHOW pg_hint_plan.debug_print;
- pg_hint_plan.debug_print 
---------------------------
- off
-(1 row)
-
-SHOW pg_hint_plan.parse_messages;
- pg_hint_plan.parse_messages 
------------------------------
- info
-(1 row)
-
-RESET ROLE;
+-- SET ROLE super_user;
+-- SET pg_hint_plan.debug_print TO off;
+-- SHOW pg_hint_plan.enable_hint;
+-- SHOW pg_hint_plan.debug_print;
+-- SHOW pg_hint_plan.parse_messages;
+-- SET pg_hint_plan.enable_hint TO off;
+-- SET pg_hint_plan.debug_print TO on;
+-- SET pg_hint_plan.parse_messages TO error;
+-- SHOW pg_hint_plan.enable_hint;
+-- SHOW pg_hint_plan.debug_print;
+-- SHOW pg_hint_plan.parse_messages;
+-- RESET pg_hint_plan.enable_hint;
+-- RESET pg_hint_plan.debug_print;
+-- RESET pg_hint_plan.parse_messages;
+-- SHOW pg_hint_plan.enable_hint;
+-- SHOW pg_hint_plan.debug_print;
+-- SHOW pg_hint_plan.parse_messages;
+-- 
+-- -- No. A-8-1-2
+-- SET ROLE normal_user;
+-- SHOW pg_hint_plan.enable_hint;
+-- SHOW pg_hint_plan.debug_print;
+-- SHOW pg_hint_plan.parse_messages;
+-- SET pg_hint_plan.enable_hint TO off;
+-- SET pg_hint_plan.debug_print TO on;
+-- SET pg_hint_plan.parse_messages TO error;
+-- SHOW pg_hint_plan.enable_hint;
+-- SHOW pg_hint_plan.debug_print;
+-- SHOW pg_hint_plan.parse_messages;
+-- RESET pg_hint_plan.enable_hint;
+-- RESET pg_hint_plan.debug_print;
+-- RESET pg_hint_plan.parse_messages;
+-- SHOW pg_hint_plan.enable_hint;
+-- SHOW pg_hint_plan.debug_print;
+-- SHOW pg_hint_plan.parse_messages;
+-- 
+-- RESET ROLE;
 ----
 ---- No. A-8-2 original GUC parameter pg_hint_plan.enable_hint
 ----
 -- No. A-8-2-1
+SET pg_hint_plan.debug_print TO off;
 SET pg_hint_plan.enable_hint TO on;
 SHOW pg_hint_plan.enable_hint;
  pg_hint_plan.enable_hint 
@@ -1776,36 +1692,26 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
 (2 rows)
 
 -- No. A-8-2-3
-SET pg_hint_plan.enable_hint TO DEFAULT;
-SHOW pg_hint_plan.enable_hint;
- pg_hint_plan.enable_hint 
---------------------------
- on
-(1 row)
-
-/*+Set(enable_indexscan off)*/
-EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
-            QUERY PLAN            
-----------------------------------
- Bitmap Heap Scan on t1
-   Recheck Cond: (c1 = 1)
-   ->  Bitmap Index Scan on t1_i1
-         Index Cond: (c1 = 1)
-(4 rows)
-
+-- Don't test PostgreSQL itself.
+-- SET pg_hint_plan.enable_hint TO DEFAULT;
+-- SHOW pg_hint_plan.enable_hint;
+-- /*+Set(enable_indexscan off)*/
+-- EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
 -- No. A-8-2-4
-SET pg_hint_plan.enable_hint TO enable;
-ERROR:  parameter "pg_hint_plan.enable_hint" requires a Boolean value
+-- Don't test PostgreSQL itself
+-- SET pg_hint_plan.enable_hint TO enable;
+-- SHOW pg_hint_plan.enable_hint;
+----
+---- No. A-8-3 original GUC parameter pg_hint_plan.debug_print
+----
+-- No. A-8-3-1
+SET pg_hint_plan.enable_hint TO on;
 SHOW pg_hint_plan.enable_hint;
  pg_hint_plan.enable_hint 
 --------------------------
  on
 (1 row)
 
-----
----- No. A-8-3 original GUC parameter pg_hint_plan.debug_print
-----
--- No. A-8-3-1
 SET pg_hint_plan.debug_print TO on;
 SHOW pg_hint_plan.debug_print;
  pg_hint_plan.debug_print 
@@ -1868,7 +1774,8 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
 
 -- No. A-8-3-4
 SET pg_hint_plan.debug_print TO enable;
-ERROR:  parameter "pg_hint_plan.debug_print" requires a Boolean value
+ERROR:  invalid value for parameter "pg_hint_plan.debug_print": "enable"
+HINT:  Available values: off, on, detailed, verbose.
 SHOW pg_hint_plan.debug_print;
  pg_hint_plan.debug_print 
 --------------------------
@@ -1879,60 +1786,32 @@ SHOW pg_hint_plan.debug_print;
 ---- No. A-8-4 original GUC parameter pg_hint_plan.parse_messages
 ----
 SET client_min_messages TO debug5;
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
+DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
 -- No. A-8-4-1
 SET pg_hint_plan.parse_messages TO debug5;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
+DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
+DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
 SHOW pg_hint_plan.parse_messages;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
+DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
+DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
  pg_hint_plan.parse_messages 
 -----------------------------
  debug5
 (1 row)
 
 /*+Set*/SELECT 1;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  hint syntax error at or near ""
+DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
+DEBUG:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
+DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
  ?column? 
 ----------
         1
 (1 row)
 
 SET client_min_messages TO debug4;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
+DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
 /*+Set*/SELECT 1;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
  ?column? 
 ----------
         1
@@ -1940,55 +1819,22 @@ DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid:
 
 -- No. A-8-4-2
 SET pg_hint_plan.parse_messages TO debug4;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
 SHOW pg_hint_plan.parse_messages;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
  pg_hint_plan.parse_messages 
 -----------------------------
  debug4
 (1 row)
 
 /*+Set*/SELECT 1;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  hint syntax error at or near ""
+DEBUG:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
  ?column? 
 ----------
         1
 (1 row)
 
 SET client_min_messages TO debug3;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
 /*+Set*/SELECT 1;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
  ?column? 
 ----------
         1
@@ -1996,45 +1842,21 @@ DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid:
 
 -- No. A-8-4-3
 SET pg_hint_plan.parse_messages TO debug3;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
 SHOW pg_hint_plan.parse_messages;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
  pg_hint_plan.parse_messages 
 -----------------------------
  debug3
 (1 row)
 
 /*+Set*/SELECT 1;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  hint syntax error at or near ""
+DEBUG:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
-DEBUG:  CommitTransactionCommand
-DEBUG:  CommitTransaction
-DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
  ?column? 
 ----------
         1
 (1 row)
 
 SET client_min_messages TO debug2;
-DEBUG:  StartTransactionCommand
-DEBUG:  StartTransaction
-DEBUG:  name: unnamed; blockState:       DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children: 
-DEBUG:  ProcessUtility
 /*+Set*/SELECT 1;
  ?column? 
 ----------
@@ -2050,7 +1872,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-DEBUG:  hint syntax error at or near ""
+DEBUG:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2073,7 +1895,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-DEBUG:  hint syntax error at or near ""
+DEBUG:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2096,7 +1918,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-LOG:  hint syntax error at or near ""
+LOG:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2119,7 +1941,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2128,7 +1950,7 @@ DETAIL:  Opening parenthesis is necessary.
 
 SET client_min_messages TO notice;
 /*+Set*/SELECT 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2144,7 +1966,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-NOTICE:  hint syntax error at or near ""
+NOTICE:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2167,7 +1989,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-WARNING:  hint syntax error at or near ""
+WARNING:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2190,7 +2012,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-ERROR:  hint syntax error at or near ""
+ERROR:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
 SET client_min_messages TO fatal;
 /*+Set*/SELECT 1;
@@ -2204,7 +2026,7 @@ SHOW pg_hint_plan.parse_messages;
 (1 row)
 
 /*+Set*/SELECT 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Opening parenthesis is necessary.
  ?column? 
 ----------
@@ -2309,7 +2131,7 @@ TRUNCATE hint_plan.hints;
 ----
 -- No. A-9-1-1
 /*+"Set"(enable_indexscan on)*/SELECT 1;
-INFO:  hint syntax error at or near ""Set"(enable_indexscan on)"
+INFO:  pg_hint_plan: hint syntax error at or near ""Set"(enable_indexscan on)"
 DETAIL:  Unrecognized hint keyword ""Set"".
  ?column? 
 ----------
@@ -2317,9 +2139,9 @@ DETAIL:  Unrecognized hint keyword ""Set"".
 (1 row)
 
 /*+Set()(enable_indexscan on)*/SELECT 1;
-INFO:  hint syntax error at or near "Set()(enable_indexscan on)"
+INFO:  pg_hint_plan: hint syntax error at or near "Set()(enable_indexscan on)"
 DETAIL:  Set hint requires name and value of GUC parameter.
-INFO:  hint syntax error at or near "(enable_indexscan on)"
+INFO:  pg_hint_plan: hint syntax error at or near "(enable_indexscan on)"
 DETAIL:  Unrecognized hint keyword "".
  ?column? 
 ----------
@@ -2327,7 +2149,7 @@ DETAIL:  Unrecognized hint keyword "".
 (1 row)
 
 /*+Set(enable_indexscan on*/SELECT 1;
-INFO:  hint syntax error at or near ""
+INFO:  pg_hint_plan: hint syntax error at or near ""
 DETAIL:  Closing parenthesis is necessary.
  ?column? 
 ----------
@@ -2382,7 +2204,7 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
 
 /*+TidScan(t1)BitmapScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
-INFO:  hint syntax error at or near "TidScan(t1)BitmapScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "TidScan(t1)BitmapScan(t1)"
 DETAIL:  Conflict scan method hint.
 LOG:  pg_hint_plan:
 used hint:
@@ -2403,9 +2225,9 @@ error hint:
 
 /*+TidScan(t1)BitmapScan(t1)IndexScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
-INFO:  hint syntax error at or near "TidScan(t1)BitmapScan(t1)IndexScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "TidScan(t1)BitmapScan(t1)IndexScan(t1)"
 DETAIL:  Conflict scan method hint.
-INFO:  hint syntax error at or near "BitmapScan(t1)IndexScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "BitmapScan(t1)IndexScan(t1)"
 DETAIL:  Conflict scan method hint.
 LOG:  pg_hint_plan:
 used hint:
@@ -2425,11 +2247,11 @@ error hint:
 
 /*+TidScan(t1)BitmapScan(t1)IndexScan(t1)SeqScan(t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
-INFO:  hint syntax error at or near "TidScan(t1)BitmapScan(t1)IndexScan(t1)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "TidScan(t1)BitmapScan(t1)IndexScan(t1)SeqScan(t1)"
 DETAIL:  Conflict scan method hint.
-INFO:  hint syntax error at or near "BitmapScan(t1)IndexScan(t1)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "BitmapScan(t1)IndexScan(t1)SeqScan(t1)"
 DETAIL:  Conflict scan method hint.
-INFO:  hint syntax error at or near "IndexScan(t1)SeqScan(t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "IndexScan(t1)SeqScan(t1)"
 DETAIL:  Conflict scan method hint.
 LOG:  pg_hint_plan:
 used hint:
@@ -3354,8 +3176,8 @@ SELECT s.query, s.calls
  ORDER BY 1;
                 query                 | calls 
 --------------------------------------+-------
- SELECT * FROM s1.t1 WHERE t1.c1 = ?; |     3
- SELECT pg_stat_statements_reset();   |     1
+ SELECT * FROM s1.t1 WHERE t1.c1 = $1 |     3
+ SELECT pg_stat_statements_reset()    |     1
 (2 rows)
 
 ----
@@ -3376,7 +3198,7 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/
 PREPARE p1 AS SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
 EXPLAIN (COSTS false) EXECUTE p1;
-INFO:  hint syntax error at or near "NestLoop(t1 t1)"
+INFO:  pg_hint_plan: hint syntax error at or near "NestLoop(t1 t1)"
 DETAIL:  Relation name "t1" is duplicated.
 LOG:  pg_hint_plan:
 used hint:
@@ -3402,79 +3224,109 @@ NestLoop(t1 t1)
 -- No. A-12-1-1
 -- No. A-12-2-1
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 SET pg_hint_plan.parse_messages TO error;
 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
-ERROR:  hint syntax error at or near "NestLoop(t1 t1)"
+ERROR:  pg_hint_plan: hint syntax error at or near "NestLoop(t1 t1)"
 DETAIL:  Relation name "t1" is duplicated.
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
@@ -3501,79 +3353,109 @@ error hint:
 -- No. A-12-1-2
 -- No. A-12-2-2
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 SET pg_hint_plan.parse_messages TO error;
 /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
-ERROR:  hint syntax error at or near "NestLoop(t1 t1)"
+ERROR:  pg_hint_plan: hint syntax error at or near "NestLoop(t1 t1)"
 DETAIL:  Relation name "t1" is duplicated.
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 EXPLAIN (COSTS false) EXECUTE p1;
              QUERY PLAN             
@@ -3589,39 +3471,54 @@ EXPLAIN (COSTS false) EXECUTE p1;
 -- No. A-12-1-3
 -- No. A-12-2-3
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 SET pg_hint_plan.parse_messages TO error;
 EXPLAIN (COSTS false) EXECUTE p2;
@@ -3660,76 +3557,106 @@ EXPLAIN (COSTS false) EXECUTE p1;
 (6 rows)
 
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 -- No. A-12-1-4
 -- No. A-12-2-4
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 SET pg_hint_plan.parse_messages TO error;
 EXPLAIN (COSTS false) EXECUTE p2;
@@ -3746,39 +3673,54 @@ EXPLAIN (COSTS false) EXECUTE p1;
 (6 rows)
 
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | on
- enable_material           | on
- enable_mergejoin          | on
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | on
+ enable_material                | on
+ enable_mergejoin               | on
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 DEALLOCATE p1;
 SET pg_hint_plan.parse_messages TO LOG;
@@ -3810,39 +3752,54 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
 (5 rows)
 
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | off
- enable_material           | on
- enable_mergejoin          | off
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | off
+ enable_material                | on
+ enable_mergejoin               | off
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
@@ -3866,39 +3823,54 @@ error hint:
 (4 rows)
 
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | off
- enable_material           | on
- enable_mergejoin          | off
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | off
+ enable_material                | on
+ enable_mergejoin               | off
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
           QUERY PLAN          
@@ -3924,39 +3896,54 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
 (5 rows)
 
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | off
- enable_material           | on
- enable_mergejoin          | off
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | off
+ enable_material                | on
+ enable_mergejoin               | off
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 BEGIN;
 /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/
@@ -3983,39 +3970,54 @@ error hint:
 COMMIT;
 BEGIN;
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | off
- enable_material           | on
- enable_mergejoin          | off
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | off
+ enable_material                | on
+ enable_mergejoin               | off
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
           QUERY PLAN          
@@ -4042,39 +4044,54 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
 (5 rows)
 
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | off
- enable_material           | on
- enable_mergejoin          | off
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | log
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | off
+ enable_material                | on
+ enable_mergejoin               | off
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | log
+(45 rows)
 
 /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
@@ -4102,39 +4119,54 @@ SET enable_indexscan TO off;
 SET enable_mergejoin TO off;
 LOAD 'pg_hint_plan';
 SELECT name, setting FROM settings;
-           name            |  setting  
----------------------------+-----------
- geqo                      | on
- geqo_effort               | 5
- geqo_generations          | 0
- geqo_pool_size            | 0
- geqo_seed                 | 0
- geqo_selection_bias       | 2
- geqo_threshold            | 12
- constraint_exclusion      | partition
- cursor_tuple_fraction     | 0.1
- default_statistics_target | 100
- from_collapse_limit       | 8
- join_collapse_limit       | 8
- cpu_index_tuple_cost      | 0.005
- cpu_operator_cost         | 0.0025
- cpu_tuple_cost            | 0.01
- effective_cache_size      | 16384
- random_page_cost          | 4
- seq_page_cost             | 1
- enable_bitmapscan         | on
- enable_hashagg            | on
- enable_hashjoin           | on
- enable_indexonlyscan      | on
- enable_indexscan          | off
- enable_material           | on
- enable_mergejoin          | off
- enable_nestloop           | on
- enable_seqscan            | on
- enable_sort               | on
- enable_tidscan            | on
- client_min_messages       | notice
-(30 rows)
+              name              |  setting  
+--------------------------------+-----------
+ geqo                           | on
+ geqo_effort                    | 5
+ geqo_generations               | 0
+ geqo_pool_size                 | 0
+ geqo_seed                      | 0
+ geqo_selection_bias            | 2
+ geqo_threshold                 | 12
+ constraint_exclusion           | partition
+ cursor_tuple_fraction          | 0.1
+ default_statistics_target      | 100
+ force_parallel_mode            | off
+ from_collapse_limit            | 8
+ jit                            | on
+ join_collapse_limit            | 8
+ cpu_index_tuple_cost           | 0.005
+ cpu_operator_cost              | 0.0025
+ cpu_tuple_cost                 | 0.01
+ effective_cache_size           | 16384
+ jit_above_cost                 | 100000
+ jit_inline_above_cost          | 500000
+ jit_optimize_above_cost        | 500000
+ min_parallel_index_scan_size   | 64
+ min_parallel_table_scan_size   | 1024
+ parallel_setup_cost            | 1000
+ parallel_tuple_cost            | 0.1
+ random_page_cost               | 4
+ seq_page_cost                  | 1
+ enable_bitmapscan              | on
+ enable_gathermerge             | on
+ enable_hashagg                 | on
+ enable_hashjoin                | on
+ enable_indexonlyscan           | on
+ enable_indexscan               | off
+ enable_material                | on
+ enable_mergejoin               | off
+ enable_nestloop                | on
+ enable_parallel_append         | on
+ enable_parallel_hash           | on
+ enable_partition_pruning       | on
+ enable_partitionwise_aggregate | off
+ enable_partitionwise_join      | off
+ enable_seqscan                 | on
+ enable_sort                    | on
+ enable_tidscan                 | on
+ client_min_messages            | notice
+(45 rows)
 
 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
           QUERY PLAN          
@@ -4232,10 +4264,6 @@ error hint:
 EXPLAIN (COSTS false) SELECT nested_planner(2) FROM s1.t1 t_1 ORDER BY t_1.c1;
 NOTICE:  nested_planner(2)
 NOTICE:  nested_planner(1)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4243,10 +4271,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
               QUERY PLAN               
 ---------------------------------------
  Index Only Scan using t1_i1 on t1 t_1
@@ -4256,10 +4280,6 @@ PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 EXPLAIN (COSTS false) SELECT nested_planner(2) FROM s1.t1 t_1 ORDER BY t_1.c1;
 NOTICE:  nested_planner(2)
 NOTICE:  nested_planner(1)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4267,10 +4287,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4284,75 +4300,36 @@ error hint:
 (1 row)
 
 --No.13-3-3
+--
+-- Redefine not to use cached plan
+--
+CREATE OR REPLACE FUNCTION nested_planner(cnt int) RETURNS int AS $$
+DECLARE
+    new_cnt int;
+BEGIN
+    RAISE NOTICE 'nested_planner(%)', cnt;
+
+    /* 再帰終了の判断 */
+    IF cnt <= 1 THEN
+        RETURN 0;
+    END IF;
+
+       SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1) INTO new_cnt
+         FROM s1.t1 t_1
+         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
+        ORDER BY t_1.c1 LIMIT 1;
+
+    RETURN new_cnt;
+END;
+$$ LANGUAGE plpgsql IMMUTABLE;
 EXPLAIN (COSTS false) SELECT nested_planner(5) FROM s1.t1 t_1 ORDER BY t_1.c1;
 NOTICE:  nested_planner(5)
 NOTICE:  nested_planner(4)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(3)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(2)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(1)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
-used hint:
-IndexScan(t_1)
-not used hint:
-duplication hint:
-error hint:
-
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
+no hint
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4360,18 +4337,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4379,14 +4344,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4394,10 +4351,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
               QUERY PLAN               
 ---------------------------------------
  Index Only Scan using t1_i1 on t1 t_1
@@ -4406,61 +4359,10 @@ PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 /*+SeqScan(t_2)*/
 EXPLAIN (COSTS false) SELECT nested_planner(5) FROM s1.t1 t_1 ORDER BY t_1.c1;
 NOTICE:  nested_planner(5)
-LOG:  pg_hint_plan:
-used hint:
-IndexScan(t_1)
-not used hint:
-duplication hint:
-error hint:
-
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(4)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(3)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(2)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 NOTICE:  nested_planner(1)
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4468,22 +4370,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4491,18 +4377,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4510,14 +4384,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
-SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 IndexScan(t_1)
@@ -4525,10 +4391,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1)                 FROM s1.t1 t_1
-         JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
-        ORDER BY t_1.c1 LIMIT 1"
-PL/pgSQL function nested_planner(integer) line 12 at SQL statement
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4563,7 +4425,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 HashJoin(t_1 t_2)
@@ -4595,7 +4456,6 @@ HashJoin(st_1 st_2)
 duplication hint:
 error hint:
 
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 HashJoin(st_1 st_2)
@@ -4627,7 +4487,6 @@ not used hint:
 duplication hint:
 error hint:
 
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4658,7 +4517,6 @@ HashJoin(st_1 st_2)
 duplication hint:
 error hint:
 
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4681,9 +4539,8 @@ error hint:
 EXPLAIN (COSTS false)
  SELECT recall_planner() FROM s1.t1 t_1
   ORDER BY t_1.c1;
-INFO:  hint syntax error at or near "HashJoin(t_1 t_1)"
+INFO:  pg_hint_plan: hint syntax error at or near "HashJoin(t_1 t_1)"
 DETAIL:  Relation name "t_1" is duplicated.
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4691,7 +4548,6 @@ duplication hint:
 error hint:
 HashJoin(t_1 t_1)
 
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4736,8 +4592,7 @@ HashJoin(t_1 t_1)
 duplication hint:
 error hint:
 
-CONTEXT:  SQL function "recall_planner_one_t" during startup
-INFO:  hint syntax error at or near "HashJoin(t_1 t_1)"
+INFO:  pg_hint_plan: hint syntax error at or near "HashJoin(t_1 t_1)"
 DETAIL:  Relation name "t_1" is duplicated.
 LOG:  pg_hint_plan:
 used hint:
@@ -4764,9 +4619,8 @@ EXPLAIN (COSTS false)
  SELECT recall_planner() FROM s1.t1 t_1
    JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
   ORDER BY t_1.c1;
-INFO:  hint syntax error at or near "HashJoin(t_1 t_1)"
+INFO:  pg_hint_plan: hint syntax error at or near "HashJoin(t_1 t_1)"
 DETAIL:  Relation name "t_1" is duplicated.
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 not used hint:
@@ -4774,8 +4628,7 @@ duplication hint:
 error hint:
 HashJoin(t_1 t_1)
 
-CONTEXT:  SQL function "recall_planner" during startup
-INFO:  hint syntax error at or near "HashJoin(t_1 t_1)"
+INFO:  pg_hint_plan: hint syntax error at or near "HashJoin(t_1 t_1)"
 DETAIL:  Relation name "t_1" is duplicated.
 LOG:  pg_hint_plan:
 used hint:
@@ -4800,11 +4653,10 @@ EXPLAIN (COSTS false)
  SELECT recall_planner() FROM s1.t1 t_1
    JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1)
   ORDER BY t_1.c1;
-INFO:  hint syntax error at or near "MergeJoin(t_1 t_2)HashJoin(t_1 t_2)"
+INFO:  pg_hint_plan: hint syntax error at or near "MergeJoin(t_1 t_2)HashJoin(t_1 t_2)"
 DETAIL:  Conflict join method hint.
-INFO:  hint syntax error at or near "MergeJoin(t_1 t_2)HashJoin(t_1 t_2)"
+INFO:  pg_hint_plan: hint syntax error at or near "MergeJoin(t_1 t_2)HashJoin(t_1 t_2)"
 DETAIL:  Conflict join method hint.
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 HashJoin(t_1 t_2)
@@ -4813,7 +4665,6 @@ duplication hint:
 MergeJoin(t_1 t_2)
 error hint:
 
-CONTEXT:  SQL function "recall_planner" during startup
 LOG:  pg_hint_plan:
 used hint:
 HashJoin(t_1 t_2)