-> Seq Scan on p2c3c2 t3
(18 rows)
+----
+---- No. L-3-4 conflict leading hint
+----
+-- No. L-3-4-1
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+ QUERY PLAN
+------------------------------------------
+ Merge Join
+ Merge Cond: (t1.c1 = t2.c1)
+ -> Merge Join
+ Merge Cond: (t1.c1 = t3.c1)
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Sort
+ Sort Key: t2.c1
+ -> Seq Scan on t2
+(9 rows)
+
+/*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
+DETAIL: Conflict leading hint.
+LOG: pg_hint_plan:
+used hint:
+Leading(t1 t2 t3)
+not used hint:
+duplication hint:
+Leading(t2 t3 t1)
+error hint:
+
+ QUERY PLAN
+------------------------------------------------
+ Hash Join
+ Hash Cond: (t3.c1 = t1.c1)
+ -> Seq Scan on t3
+ -> Hash
+ -> Merge Join
+ Merge Cond: (t1.c1 = t2.c1)
+ -> Index Scan using t1_i1 on t1
+ -> Sort
+ Sort Key: t2.c1
+ -> Seq Scan on t2
+(10 rows)
+
+-- No. L-3-4-2
+/*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)"
+DETAIL: Conflict leading hint.
+INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading(t1 t2 t3)"
+DETAIL: Conflict leading hint.
+LOG: pg_hint_plan:
+used hint:
+Leading(t1 t2 t3)
+not used hint:
+duplication hint:
+Leading(t3 t1 t2)
+Leading(t2 t3 t1)
+error hint:
+
+ QUERY PLAN
+------------------------------------------------
+ Hash Join
+ Hash Cond: (t3.c1 = t1.c1)
+ -> Seq Scan on t3
+ -> Hash
+ -> Merge Join
+ Merge Cond: (t1.c1 = t2.c1)
+ -> Index Scan using t1_i1 on t1
+ -> Sort
+ Sort Key: t2.c1
+ -> Seq Scan on t2
+(10 rows)
+
+-- No. L-3-4-3
+/*+Leading(t2 t3 t1)Leading()*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+INFO: hint syntax error at or near "Leading()"
+DETAIL: In Leading hint, specified relation name 2 or more.
+INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading()"
+DETAIL: Conflict leading hint.
+LOG: pg_hint_plan:
+used hint:
+not used hint:
+duplication hint:
+Leading(t2 t3 t1)
+error hint:
+Leading()
+
+ QUERY PLAN
+------------------------------------------
+ Merge Join
+ Merge Cond: (t1.c1 = t2.c1)
+ -> Merge Join
+ Merge Cond: (t1.c1 = t3.c1)
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Sort
+ Sort Key: t2.c1
+ -> Seq Scan on t2
+(9 rows)
+
+-- No. L-3-4-4
+/*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+INFO: hint syntax error at or near "Leading()"
+DETAIL: In Leading hint, specified relation name 2 or more.
+INFO: hint syntax error at or near "Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()"
+DETAIL: Conflict leading hint.
+INFO: hint syntax error at or near "Leading(t2 t3 t1)Leading()"
+DETAIL: Conflict leading hint.
+LOG: pg_hint_plan:
+used hint:
+not used hint:
+duplication hint:
+Leading(t3 t1 t2)
+Leading(t2 t3 t1)
+error hint:
+Leading()
+
+ QUERY PLAN
+------------------------------------------
+ Merge Join
+ Merge Cond: (t1.c1 = t2.c1)
+ -> Merge Join
+ Merge Cond: (t1.c1 = t3.c1)
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Sort
+ Sort Key: t2.c1
+ -> Seq Scan on t2
+(9 rows)
+
EXPLAIN (COSTS false) SELECT * FROM s1.p2c1 t1
JOIN s1.p2c2 t2 ON (t1.c1 = t2.c1)
JOIN s1.p2c3 t3 ON (t1.c1 = t3.c1);
+
+----
+---- No. L-3-4 conflict leading hint
+----
+
+-- No. L-3-4-1
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+/*+Leading(t2 t3 t1)Leading(t1 t2 t3)*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+
+-- No. L-3-4-2
+/*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading(t1 t2 t3)*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+
+-- No. L-3-4-3
+/*+Leading(t2 t3 t1)Leading()*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+
+-- No. L-3-4-4
+/*+Leading(t3 t1 t2)Leading(t2 t3 t1)Leading()*/
+EXPLAIN (COSTS false) SELECT * FROM s1.t1
+ JOIN s1.t2 ON (t1.c1 = t2.c1)
+ JOIN s1.t3 ON (t1.c1 = t3.c1);
+