X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=expected%2Fpg_hint_plan.out;h=dbcee84f3f8a4d4f6ceec000255391489890f86c;hb=7ed93ce189ffc9f4cf73a6f21582b4760917c895;hp=0922aed0f42124b66da553018a16e046704e9093;hpb=de6e936d0302c520b27b5c3bea35c357355eeb52;p=pghintplan%2Fpg_hint_plan.git diff --git a/expected/pg_hint_plan.out b/expected/pg_hint_plan.out index 0922aed..dbcee84 100644 --- a/expected/pg_hint_plan.out +++ b/expected/pg_hint_plan.out @@ -276,6 +276,21 @@ Set(work_mem TO 1MB) -> Index Scan using t2_pkey on t2 (4 rows) +/*+SeqScan() */ SELECT 1; +INFO: pg_hint_plan: hint syntax error at or near " " +DETAIL: SeqScan hint requires a relation. +LOG: pg_hint_plan: +used hint: +not used hint: +duplication hint: +error hint: +SeqScan() + + ?column? +---------- + 1 +(1 row) + /*+SeqScan(t1 t2)*/ EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id; INFO: pg_hint_plan: hint syntax error at or near "" @@ -445,6 +460,36 @@ error hint: Index Cond: (id = t1.id) (5 rows) +/*+ NestLoop() */ SELECT 1; +INFO: pg_hint_plan: hint syntax error at or near " " +DETAIL: NestLoop hint requires at least two relations. +LOG: pg_hint_plan: +used hint: +not used hint: +duplication hint: +error hint: +NestLoop() + + ?column? +---------- + 1 +(1 row) + +/*+ NestLoop(x) */ SELECT 1; +INFO: pg_hint_plan: hint syntax error at or near " " +DETAIL: NestLoop hint requires at least two relations. +LOG: pg_hint_plan: +used hint: +not used hint: +duplication hint: +error hint: +NestLoop(x) + + ?column? +---------- + 1 +(1 row) + /*+HashJoin(t1 t2)*/ EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id; LOG: pg_hint_plan: @@ -3024,23 +3069,23 @@ EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (19 rows) @@ -3049,13 +3094,13 @@ EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (9 rows) @@ -3072,23 +3117,23 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (19 rows) @@ -3101,34 +3146,34 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p1_pkey on p1 + -> Index Scan using p1_pkey on p1 p1_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_pkey on p1_c1 + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c2_pkey on p1_c2 + -> Index Scan using p1_c2_pkey on p1_c2 p1_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c3_pkey on p1_c3 + -> Index Scan using p1_c3_pkey on p1_c3 p1_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c4_pkey on p1_c4 + -> Index Scan using p1_c4_pkey on p1_c4 p1_5 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 + -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 + -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (28 rows) @@ -3145,47 +3190,47 @@ error hint: QUERY PLAN ------------------------------------------------------- Append - -> Bitmap Heap Scan on p1 + -> Bitmap Heap Scan on p1 p1_1 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1 + -> Bitmap Heap Scan on p1_c1 p1_2 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c2 + -> Bitmap Heap Scan on p1_c2 p1_3 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c2_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c3 + -> Bitmap Heap Scan on p1_c3 p1_4 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c3_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c4 + -> Bitmap Heap Scan on p1_c4 p1_5 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c4_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c1 + -> Bitmap Heap Scan on p1_c1_c1 p1_6 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c2 + -> Bitmap Heap Scan on p1_c1_c2 p1_7 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c2_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c3_c1 + -> Bitmap Heap Scan on p1_c3_c1 p1_8 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c3_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c3_c2 + -> Bitmap Heap Scan on p1_c3_c2 p1_9 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c3_c2_pkey @@ -3204,31 +3249,31 @@ error hint: QUERY PLAN --------------------------------------------- Append - -> Tid Scan on p1 + -> Tid Scan on p1 p1_1 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1 + -> Tid Scan on p1_c1 p1_2 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c2 + -> Tid Scan on p1_c2 p1_3 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c3 + -> Tid Scan on p1_c3 p1_4 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c4 + -> Tid Scan on p1_c4 p1_5 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c1 + -> Tid Scan on p1_c1_c1 p1_6 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c2 + -> Tid Scan on p1_c1_c2 p1_7 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c3_c1 + -> Tid Scan on p1_c3_c1 p1_8 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c3_c2 + -> Tid Scan on p1_c3_c2 p1_9 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) (28 rows) @@ -3246,13 +3291,13 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (9 rows) @@ -3265,19 +3310,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p1_pkey on p1 + -> Index Scan using p1_pkey on p1 p1_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_pkey on p1_c1 + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -3294,22 +3339,22 @@ error hint: QUERY PLAN ------------------------------------------------------- Append - -> Bitmap Heap Scan on p1 + -> Bitmap Heap Scan on p1 p1_1 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1 + -> Bitmap Heap Scan on p1_c1 p1_2 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c1 + -> Bitmap Heap Scan on p1_c1_c1 p1_3 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c2 + -> Bitmap Heap Scan on p1_c1_c2 p1_4 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c2_pkey @@ -3328,16 +3373,16 @@ error hint: QUERY PLAN --------------------------------------------- Append - -> Tid Scan on p1 + -> Tid Scan on p1 p1_1 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1 + -> Tid Scan on p1_c1 p1_2 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c1 + -> Tid Scan on p1_c1_c1 p1_3 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c2 + -> Tid Scan on p1_c1_c2 p1_4 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) (13 rows) @@ -3351,23 +3396,23 @@ EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND -> Sort Sort Key: p1.id -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Index Scan using t1_pkey on t1 Index Cond: (id < 10) @@ -3382,13 +3427,13 @@ EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND -> Sort Sort Key: p1.id -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Index Scan using t1_pkey on t1 Index Cond: (id < 10) @@ -3411,23 +3456,23 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Index Scan using t1_pkey on t1 Index Cond: (id < 10) @@ -3442,37 +3487,37 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------- Merge Join Merge Cond: (p1.id = t1.id) -> Merge Append Sort Key: p1.id - -> Index Scan using p1_pkey on p1 + -> Index Scan using p1_pkey on p1 p1_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_pkey on p1_c1 + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c2_pkey on p1_c2 + -> Index Scan using p1_c2_pkey on p1_c2 p1_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c3_pkey on p1_c3 + -> Index Scan using p1_c3_pkey on p1_c3 p1_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c4_pkey on p1_c4 + -> Index Scan using p1_c4_pkey on p1_c4 p1_5 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 + -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 + -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Index Scan using t1_pkey on t1 @@ -3495,47 +3540,47 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Bitmap Heap Scan on p1 + -> Bitmap Heap Scan on p1 p1_1 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1 + -> Bitmap Heap Scan on p1_c1 p1_2 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c2 + -> Bitmap Heap Scan on p1_c2 p1_3 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c2_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c3 + -> Bitmap Heap Scan on p1_c3 p1_4 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c3_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c4 + -> Bitmap Heap Scan on p1_c4 p1_5 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c4_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c1 + -> Bitmap Heap Scan on p1_c1_c1 p1_6 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c2 + -> Bitmap Heap Scan on p1_c1_c2 p1_7 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c2_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c3_c1 + -> Bitmap Heap Scan on p1_c3_c1 p1_8 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c3_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c3_c2 + -> Bitmap Heap Scan on p1_c3_c2 p1_9 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c3_c2_pkey @@ -3560,31 +3605,31 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Tid Scan on p1 + -> Tid Scan on p1 p1_1 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1 + -> Tid Scan on p1_c1 p1_2 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c2 + -> Tid Scan on p1_c2 p1_3 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c3 + -> Tid Scan on p1_c3 p1_4 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c4 + -> Tid Scan on p1_c4 p1_5 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c1 + -> Tid Scan on p1_c1_c1 p1_6 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c2 + -> Tid Scan on p1_c1_c2 p1_7 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c3_c1 + -> Tid Scan on p1_c3_c1 p1_8 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c3_c2 + -> Tid Scan on p1_c3_c2 p1_9 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) -> Index Scan using t1_pkey on t1 @@ -3605,23 +3650,23 @@ error hint: Nested Loop Join Filter: (p1.id = t1.id) -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Materialize -> Index Scan using t1_pkey on t1 @@ -3644,23 +3689,23 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Index Scan using t1_pkey on t1 Index Cond: (id < 10) @@ -3680,23 +3725,23 @@ error hint: Hash Join Hash Cond: (p1.id = t1.id) -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Hash -> Index Scan using t1_pkey on t1 @@ -3720,13 +3765,13 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Index Scan using t1_pkey on t1 Index Cond: (id < 10) @@ -3741,22 +3786,22 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------- Merge Join Merge Cond: (p1.id = t1.id) -> Merge Append Sort Key: p1.id - -> Index Scan using p1_pkey on p1 + -> Index Scan using p1_pkey on p1 p1_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_pkey on p1_c1 + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Index Scan using t1_pkey on t1 @@ -3779,22 +3824,22 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Bitmap Heap Scan on p1 + -> Bitmap Heap Scan on p1 p1_1 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1 + -> Bitmap Heap Scan on p1_c1 p1_2 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c1 + -> Bitmap Heap Scan on p1_c1_c1 p1_3 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c1_pkey Index Cond: ((id >= 50) AND (id <= 51)) - -> Bitmap Heap Scan on p1_c1_c2 + -> Bitmap Heap Scan on p1_c1_c2 p1_4 Recheck Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) -> Bitmap Index Scan on p1_c1_c2_pkey @@ -3819,16 +3864,16 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Tid Scan on p1 + -> Tid Scan on p1 p1_1 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1 + -> Tid Scan on p1_c1 p1_2 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c1 + -> Tid Scan on p1_c1_c1 p1_3 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) - -> Tid Scan on p1_c1_c2 + -> Tid Scan on p1_c1_c2 p1_4 TID Cond: (ctid = '(1,1)'::tid) Filter: ((id >= 50) AND (id <= 51)) -> Index Scan using t1_pkey on t1 @@ -3852,13 +3897,13 @@ error hint: Index Cond: (id < 10) -> Materialize -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (14 rows) @@ -3878,13 +3923,13 @@ error hint: -> Sort Sort Key: p1.id -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) -> Index Scan using t1_pkey on t1 Index Cond: (id < 10) @@ -3907,13 +3952,13 @@ error hint: Index Cond: (id < 10) -> Hash -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (14 rows) @@ -4476,18 +4521,7 @@ SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t QUERY PLAN ------------------------------------------------------------------------------ Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Merge Join - Merge Cond: (t1_5.id = t2_5.id) - -> Index Only Scan using t1_pkey on t1 t1_5 - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $1) + InitPlan 1 (returns $0) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -4498,7 +4532,7 @@ SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $2) + InitPlan 2 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -4515,20 +4549,29 @@ SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Seq Scan on t3 t3_1 - Filter: (id = $2) + Filter: (id = $1) -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Seq Scan on t3 t3_3 - Filter: (id = $2) - -> CTE Scan on c1_1 - Filter: (id = $2) -(53 rows) + Filter: (id = $1) + -> Aggregate + Filter: (max(t1_5.id) = $1) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Merge Join + Merge Cond: (t1_5.id = t2_5.id) + -> Index Only Scan using t1_pkey on t1 t1_5 + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)*/ EXPLAIN (COSTS false) @@ -4556,18 +4599,7 @@ error hint: QUERY PLAN ------------------------------------------------------------------------------ Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Nested Loop - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - Index Cond: (id = t2_5.id) - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $3) + InitPlan 1 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -4578,7 +4610,7 @@ error hint: -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $5) + InitPlan 2 (returns $3) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -4595,20 +4627,29 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_1 - Filter: (id = $5) + Filter: (id = $3) -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_3 - Filter: (id = $5) - -> CTE Scan on c1_1 - Filter: (id = $5) -(53 rows) + Filter: (id = $3) + -> Aggregate + Filter: (max(t1_5.id) = $3) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Nested Loop + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Index Only Scan using t1_pkey on t1 t1_5 + Index Cond: (id = t2_5.id) + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t1_1 t1_2 t1_4 t1_5)*/ EXPLAIN (COSTS false) @@ -4637,18 +4678,7 @@ error hint: QUERY PLAN ------------------------------------------------------------------------------ Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Nested Loop - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - Index Cond: (id = t2_5.id) - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $3) + InitPlan 1 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -4659,7 +4689,7 @@ error hint: -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $5) + InitPlan 2 (returns $3) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -4676,20 +4706,29 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_1 - Filter: (id = $5) + Filter: (id = $3) -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_3 - Filter: (id = $5) - -> CTE Scan on c1_1 - Filter: (id = $5) -(53 rows) + Filter: (id = $3) + -> Aggregate + Filter: (max(t1_5.id) = $3) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Nested Loop + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Index Only Scan using t1_pkey on t1 t1_5 + Index Cond: (id = t2_5.id) + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t3_2 t3_5 t2_2 c1_1 t3_4 t3_3 t2_3 t2_4 t1_3 t2_5 t1_2 t3_1 t1_4 t2_1 t1_5 t1_1)*/ EXPLAIN (COSTS false) @@ -4718,18 +4757,7 @@ error hint: QUERY PLAN ------------------------------------------------------------------------------ Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Nested Loop - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - Index Cond: (id = t2_5.id) - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $3) + InitPlan 1 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -4740,7 +4768,7 @@ error hint: -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $5) + InitPlan 2 (returns $3) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -4757,20 +4785,29 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_1 - Filter: (id = $5) + Filter: (id = $3) -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_3 - Filter: (id = $5) - -> CTE Scan on c1_1 - Filter: (id = $5) -(53 rows) + Filter: (id = $3) + -> Aggregate + Filter: (max(t1_5.id) = $3) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Nested Loop + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Index Only Scan using t1_pkey on t1 t1_5 + Index Cond: (id = t2_5.id) + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(t3_5 t2_5 t1_5)Leading(t3_2 t2_2 t1_2)Leading(t3_4 t2_4 t1_4)Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)*/ EXPLAIN (COSTS false) @@ -4799,21 +4836,10 @@ NestLoop(t1_5 t2_5) duplication hint: error hint: - QUERY PLAN ------------------------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------------------------------------------ Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t2_5.id = t1_5.id) - -> Merge Join - Merge Cond: (t2_5.id = t3_5.id) - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - InitPlan 2 (returns $1) + InitPlan 1 (returns $0) -> Aggregate -> Merge Join Merge Cond: (t2_2.id = t1_2.id) @@ -4824,7 +4850,7 @@ error hint: Sort Key: t3_2.id -> Seq Scan on t3 t3_2 -> Index Only Scan using t1_pkey on t1 t1_2 - InitPlan 3 (returns $2) + InitPlan 2 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t2_4.id = t1_4.id) @@ -4841,20 +4867,29 @@ error hint: -> Nested Loop -> Nested Loop -> Seq Scan on t3 t3_3 - Filter: (id = $2) - -> CTE Scan on c1_1 - Filter: (id = $2) + Filter: (id = $1) + -> Aggregate + Filter: (max(t1_5.id) = $1) + -> Merge Join + Merge Cond: (t2_5.id = t1_5.id) + -> Merge Join + Merge Cond: (t2_5.id = t3_5.id) + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 + -> Index Only Scan using t1_pkey on t1 t1_5 -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Seq Scan on t3 t3_1 - Filter: (id = $2) + Filter: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $2) -(53 rows) + Index Cond: (id = $1) +(51 rows) SET from_collapse_limit TO 1; EXPLAIN (COSTS false) @@ -4871,18 +4906,7 @@ SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t QUERY PLAN -------------------------------------------------------------------- Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Merge Join - Merge Cond: (t1_5.id = t2_5.id) - -> Index Only Scan using t1_pkey on t1 t1_5 - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $1) + InitPlan 1 (returns $0) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -4893,7 +4917,7 @@ SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $2) + InitPlan 2 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -4908,22 +4932,31 @@ SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Seq Scan on t3 t3_1 - Filter: (id = $2) + Filter: (id = $1) -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Seq Scan on t3 t3_3 - Filter: (id = $2) - -> CTE Scan on c1_1 - Filter: (id = $2) -(53 rows) + Filter: (id = $1) + -> Aggregate + Filter: (max(t1_5.id) = $1) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Merge Join + Merge Cond: (t1_5.id = t2_5.id) + -> Index Only Scan using t1_pkey on t1 t1_5 + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)*/ EXPLAIN (COSTS false) @@ -4951,18 +4984,7 @@ error hint: QUERY PLAN -------------------------------------------------------------------- Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Nested Loop - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - Index Cond: (id = t2_5.id) - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $3) + InitPlan 1 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -4973,7 +4995,7 @@ error hint: -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $5) + InitPlan 2 (returns $3) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -4988,22 +5010,31 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_1 - Filter: (id = $5) + Filter: (id = $3) -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_3 - Filter: (id = $5) - -> CTE Scan on c1_1 - Filter: (id = $5) -(53 rows) + Filter: (id = $3) + -> Aggregate + Filter: (max(t1_5.id) = $3) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Nested Loop + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Index Only Scan using t1_pkey on t1 t1_5 + Index Cond: (id = t2_5.id) + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t1_1 t1_2 t1_4 t1_5)*/ EXPLAIN (COSTS false) @@ -5032,18 +5063,7 @@ error hint: QUERY PLAN -------------------------------------------------------------------- Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Nested Loop - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - Index Cond: (id = t2_5.id) - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $3) + InitPlan 1 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -5054,7 +5074,7 @@ error hint: -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $5) + InitPlan 2 (returns $3) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -5069,22 +5089,31 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_1 - Filter: (id = $5) + Filter: (id = $3) -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_3 - Filter: (id = $5) - -> CTE Scan on c1_1 - Filter: (id = $5) -(53 rows) + Filter: (id = $3) + -> Aggregate + Filter: (max(t1_5.id) = $3) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Nested Loop + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Index Only Scan using t1_pkey on t1 t1_5 + Index Cond: (id = t2_5.id) + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t3_2 t3_5 t2_2 c1_1 t3_4 t3_3 t2_3 t2_4 t1_3 t2_5 t1_2 t3_1 t1_4 t2_1 t1_5 t1_1)*/ EXPLAIN (COSTS false) @@ -5113,18 +5142,7 @@ error hint: QUERY PLAN -------------------------------------------------------------------- Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t1_5.id = t3_5.id) - -> Nested Loop - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - Index Cond: (id = t2_5.id) - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - InitPlan 2 (returns $3) + InitPlan 1 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t1_2.id = t3_2.id) @@ -5135,7 +5153,7 @@ error hint: -> Sort Sort Key: t3_2.id -> Seq Scan on t3 t3_2 - InitPlan 3 (returns $5) + InitPlan 2 (returns $3) -> Aggregate -> Merge Join Merge Cond: (t1_4.id = t3_4.id) @@ -5150,22 +5168,31 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_1 - Filter: (id = $5) + Filter: (id = $3) -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $5) + Index Cond: (id = $3) -> Seq Scan on t3 t3_3 - Filter: (id = $5) - -> CTE Scan on c1_1 - Filter: (id = $5) -(53 rows) + Filter: (id = $3) + -> Aggregate + Filter: (max(t1_5.id) = $3) + -> Merge Join + Merge Cond: (t1_5.id = t3_5.id) + -> Nested Loop + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Index Only Scan using t1_pkey on t1 t1_5 + Index Cond: (id = t2_5.id) + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 +(51 rows) /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(t3_5 t2_5 t1_5)Leading(t3_2 t2_2 t1_2)Leading(t3_4 t2_4 t1_4)Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)*/ EXPLAIN (COSTS false) @@ -5194,21 +5221,10 @@ NestLoop(t1_5 t2_5) duplication hint: error hint: - QUERY PLAN ------------------------------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------------------------------ Nested Loop - CTE c1_1 - -> Aggregate - -> Merge Join - Merge Cond: (t2_5.id = t1_5.id) - -> Merge Join - Merge Cond: (t2_5.id = t3_5.id) - -> Index Only Scan using t2_pkey on t2 t2_5 - -> Sort - Sort Key: t3_5.id - -> Seq Scan on t3 t3_5 - -> Index Only Scan using t1_pkey on t1 t1_5 - InitPlan 2 (returns $1) + InitPlan 1 (returns $0) -> Aggregate -> Merge Join Merge Cond: (t2_2.id = t1_2.id) @@ -5219,7 +5235,7 @@ error hint: Sort Key: t3_2.id -> Seq Scan on t3 t3_2 -> Index Only Scan using t1_pkey on t1 t1_2 - InitPlan 3 (returns $2) + InitPlan 2 (returns $1) -> Aggregate -> Merge Join Merge Cond: (t2_4.id = t1_4.id) @@ -5236,20 +5252,29 @@ error hint: -> Nested Loop -> Nested Loop -> Index Only Scan using t1_pkey on t1 t1_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_3 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Seq Scan on t3 t3_3 - Filter: (id = $2) - -> CTE Scan on c1_1 - Filter: (id = $2) + Filter: (id = $1) + -> Aggregate + Filter: (max(t1_5.id) = $1) + -> Merge Join + Merge Cond: (t2_5.id = t1_5.id) + -> Merge Join + Merge Cond: (t2_5.id = t3_5.id) + -> Index Only Scan using t2_pkey on t2 t2_5 + -> Sort + Sort Key: t3_5.id + -> Seq Scan on t3 t3_5 + -> Index Only Scan using t1_pkey on t1 t1_5 -> Seq Scan on t3 t3_1 - Filter: (id = $2) + Filter: (id = $1) -> Index Only Scan using t2_pkey on t2 t2_1 - Index Cond: (id = $2) + Index Cond: (id = $1) -> Index Only Scan using t1_pkey on t1 t1_1 - Index Cond: (id = $2) -(53 rows) + Index Cond: (id = $1) +(51 rows) -- ambigous error EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id; @@ -5408,7 +5433,7 @@ ERROR: 1.23457e+63 is outside the valid range for parameter "cursor_tuple_fract /*+ Set(enable_seqscan 100)Set(seq_page_cost on)*/ EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id; INFO: parameter "enable_seqscan" requires a Boolean value -INFO: parameter "seq_page_cost" requires a numeric value +INFO: invalid value for parameter "seq_page_cost": "on" LOG: pg_hint_plan: used hint: not used hint: @@ -6490,13 +6515,13 @@ EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (9 rows) @@ -6513,19 +6538,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p2_pkey on p2 + -> Index Scan using p2_pkey on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_pkey on p2_c1 + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6543,19 +6568,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------- Append - -> Index Scan using p2_id_val_idx on p2 + -> Index Scan using p2_id_val_idx on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6573,19 +6598,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------- Append - -> Index Scan using p2_val_id_idx on p2 + -> Index Scan using p2_val_id_idx on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_val_id_idx on p2_c1 + -> Index Scan using p2_c1_val_id_idx on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6594,23 +6619,23 @@ EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p QUERY PLAN ----------------------------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) (19 rows) @@ -6637,23 +6662,23 @@ error hint: QUERY PLAN ----------------------------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) (19 rows) @@ -6670,19 +6695,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p2_pkey on p2 + -> Index Scan using p2_pkey on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_pkey on p2_c1 + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6703,15 +6728,15 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Index Scan using p2_id2_val on p2 + -> Index Scan using p2_id2_val on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_id2_val on p2_c1 + -> Index Scan using p2_c1_id2_val on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (11 rows) @@ -6731,14 +6756,14 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Index Scan using p2_val2_id on p2 + -> Index Scan using p2_val2_id on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (10 rows) @@ -6755,19 +6780,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p2_pkey on p2 + -> Index Scan using p2_pkey on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_pkey on p2_c1 + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6788,14 +6813,14 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (10 rows) @@ -6815,13 +6840,13 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (9 rows) @@ -6838,19 +6863,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p2_pkey on p2 + -> Index Scan using p2_pkey on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6868,19 +6893,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p2_pkey on p2 + -> Index Scan using p2_pkey on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_pkey on p2_c1 + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6901,14 +6926,14 @@ error hint: QUERY PLAN ----------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_3 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_4 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) (10 rows) @@ -6925,19 +6950,19 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p2_pkey on p2 + -> Index Scan using p2_pkey on p2 p2_1 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 Index Cond: ((id >= 50) AND (id <= 51)) Filter: (ctid = '(1,1)'::tid) (13 rows) @@ -6963,31 +6988,31 @@ error hint: QUERY PLAN ------------------------------------------------------------------- Append - -> Index Scan using p2_val_idx on p2 + -> Index Scan using p2_val_idx on p2 p2_1 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_val_idx on p2_c1 + -> Index Scan using p2_c1_val_idx on p2_c1 p2_2 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c2_val_idx on p2_c2 + -> Index Scan using p2_c2_val_idx on p2_c2 p2_3 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c3_val_idx on p2_c3 + -> Index Scan using p2_c3_val_idx on p2_c3 p2_4 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c4_val_idx on p2_c4 + -> Index Scan using p2_c4_val_idx on p2_c4 p2_5 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 p2_6 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 p2_7 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 + -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 p2_8 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 + -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 p2_9 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) (28 rows) @@ -7013,23 +7038,23 @@ error hint: QUERY PLAN ----------------------------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) (19 rows) @@ -7054,23 +7079,23 @@ error hint: QUERY PLAN ----------------------------------------------------------------------------------------- Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) (19 rows) @@ -7095,31 +7120,31 @@ error hint: QUERY PLAN ------------------------------------------------------------------- Append - -> Index Scan using p2_val_idx on p2 + -> Index Scan using p2_val_idx on p2 p2_1 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_val_idx on p2_c1 + -> Index Scan using p2_c1_val_idx on p2_c1 p2_2 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c2_val_idx on p2_c2 + -> Index Scan using p2_c2_val_idx on p2_c2 p2_3 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c3_val_idx on p2_c3 + -> Index Scan using p2_c3_val_idx on p2_c3 p2_4 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c4_val_idx on p2_c4 + -> Index Scan using p2_c4_val_idx on p2_c4 p2_5 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 p2_6 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 p2_7 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 + -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 p2_8 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) - -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 + -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 p2_9 Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) Filter: (ctid = '(1,1)'::tid) (28 rows) @@ -7379,26 +7404,26 @@ error hint: -- Inheritance EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1; - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7420,26 +7445,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7461,26 +7486,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------- + QUERY PLAN +------------------------------------------------------- Append - -> Index Scan using p1_val2 on p1 + -> Index Scan using p1_val2 on p1 p1_1 Index Cond: (val = 1) - -> Index Scan using p1_c1_val2 on p1_c1 + -> Index Scan using p1_c1_val2 on p1_c1 p1_2 Index Cond: (val = 1) - -> Index Scan using p1_c2_val2 on p1_c2 + -> Index Scan using p1_c2_val2 on p1_c2 p1_3 Index Cond: (val = 1) - -> Index Scan using p1_c3_val2 on p1_c3 + -> Index Scan using p1_c3_val2 on p1_c3 p1_4 Index Cond: (val = 1) - -> Index Scan using p1_c4_val2 on p1_c4 + -> Index Scan using p1_c4_val2 on p1_c4 p1_5 Index Cond: (val = 1) - -> Index Scan using p1_c1_c1_val2 on p1_c1_c1 + -> Index Scan using p1_c1_c1_val2 on p1_c1_c1 p1_6 Index Cond: (val = 1) - -> Index Scan using p1_c1_c2_val2 on p1_c1_c2 + -> Index Scan using p1_c1_c2_val2 on p1_c1_c2 p1_7 Index Cond: (val = 1) - -> Index Scan using p1_c3_c1_val2 on p1_c3_c1 + -> Index Scan using p1_c3_c1_val2 on p1_c3_c1 p1_8 Index Cond: (val = 1) - -> Index Scan using p1_c3_c2_val2 on p1_c3_c2 + -> Index Scan using p1_c3_c2_val2 on p1_c3_c2 p1_9 Index Cond: (val = 1) (19 rows) @@ -7502,26 +7527,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7543,26 +7568,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7584,26 +7609,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7625,26 +7650,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN -------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------ Append - -> Index Only Scan using p1_val2 on p1 + -> Index Only Scan using p1_val2 on p1 p1_1 Index Cond: (val = 1) - -> Index Only Scan using p1_c1_val2 on p1_c1 + -> Index Only Scan using p1_c1_val2 on p1_c1 p1_2 Index Cond: (val = 1) - -> Index Only Scan using p1_c2_val2 on p1_c2 + -> Index Only Scan using p1_c2_val2 on p1_c2 p1_3 Index Cond: (val = 1) - -> Index Only Scan using p1_c3_val2 on p1_c3 + -> Index Only Scan using p1_c3_val2 on p1_c3 p1_4 Index Cond: (val = 1) - -> Index Only Scan using p1_c4_val2 on p1_c4 + -> Index Only Scan using p1_c4_val2 on p1_c4 p1_5 Index Cond: (val = 1) - -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1 + -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1 p1_6 Index Cond: (val = 1) - -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2 + -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2 p1_7 Index Cond: (val = 1) - -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1 + -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1 p1_8 Index Cond: (val = 1) - -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2 + -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2 p1_9 Index Cond: (val = 1) (19 rows) @@ -7666,26 +7691,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7707,26 +7732,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7748,26 +7773,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7792,39 +7817,39 @@ error hint: QUERY PLAN ------------------------------------------------ Append - -> Bitmap Heap Scan on p1 + -> Bitmap Heap Scan on p1 p1_1 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c1 + -> Bitmap Heap Scan on p1_c1 p1_2 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c1_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c2 + -> Bitmap Heap Scan on p1_c2 p1_3 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c2_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c3 + -> Bitmap Heap Scan on p1_c3 p1_4 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c3_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c4 + -> Bitmap Heap Scan on p1_c4 p1_5 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c4_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c1_c1 + -> Bitmap Heap Scan on p1_c1_c1 p1_6 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c1_c1_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c1_c2 + -> Bitmap Heap Scan on p1_c1_c2 p1_7 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c1_c2_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c3_c1 + -> Bitmap Heap Scan on p1_c3_c1 p1_8 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c3_c1_val2 Index Cond: (val = 1) - -> Bitmap Heap Scan on p1_c3_c2 + -> Bitmap Heap Scan on p1_c3_c2 p1_9 Recheck Cond: (val = 1) -> Bitmap Index Scan on p1_c3_c2_val2 Index Cond: (val = 1) @@ -7848,26 +7873,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -7889,26 +7914,26 @@ not used hint: duplication hint: error hint: - QUERY PLAN ----------------------------- + QUERY PLAN +--------------------------------- Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val = 1) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val = 1) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val = 1) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val = 1) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val = 1) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val = 1) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val = 1) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val = 1) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val = 1) (19 rows) @@ -8201,6 +8226,12 @@ END; $$ VOLATILE LANGUAGE plpgsql; vacuum analyze t1; SET pg_hint_plan.enable_hint = false; +SELECT pg_sleep(1); + pg_sleep +---------- + +(1 row) + SELECT reset_stats_and_wait(); reset_stats_and_wait ---------------------- @@ -8361,47 +8392,47 @@ SELECT relname, seq_scan, idx_scan FROM pg_stat_user_tables WHERE schemaname = ' EXPLAIN (COSTS off) SELECT val FROM p1 WHERE val < 1000 UNION ALL SELECT val::int FROM p2 WHERE id < 1000; - QUERY PLAN ------------------------------------------ + QUERY PLAN +--------------------------------------------- Append -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val < 1000) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val < 1000) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val < 1000) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val < 1000) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val < 1000) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val < 1000) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val < 1000) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val < 1000) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val < 1000) -> Result -> Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: (id < 1000) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: (id < 1000) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: (id < 1000) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: (id < 1000) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: (id < 1000) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: (id < 1000) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: (id < 1000) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: (id < 1000) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: (id < 1000) (40 rows) @@ -8425,47 +8456,47 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------- Append -> Append - -> Index Scan using p1_val3 on p1 + -> Index Scan using p1_val3 on p1 p1_1 Index Cond: (val < 1000) - -> Index Scan using p1_c1_val3 on p1_c1 + -> Index Scan using p1_c1_val3 on p1_c1 p1_2 Index Cond: (val < 1000) - -> Index Scan using p1_c2_val3 on p1_c2 + -> Index Scan using p1_c2_val3 on p1_c2 p1_3 Index Cond: (val < 1000) - -> Index Scan using p1_c3_val3 on p1_c3 + -> Index Scan using p1_c3_val3 on p1_c3 p1_4 Index Cond: (val < 1000) - -> Index Scan using p1_c4_val3 on p1_c4 + -> Index Scan using p1_c4_val3 on p1_c4 p1_5 Index Cond: (val < 1000) - -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 + -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 p1_6 Index Cond: (val < 1000) - -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 + -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 p1_7 Index Cond: (val < 1000) - -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 + -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 p1_8 Index Cond: (val < 1000) - -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 + -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 p1_9 Index Cond: (val < 1000) -> Result -> Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: (id < 1000) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: (id < 1000) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: (id < 1000) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: (id < 1000) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: (id < 1000) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: (id < 1000) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: (id < 1000) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: (id < 1000) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: (id < 1000) (40 rows) @@ -8499,47 +8530,47 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------------------- Append -> Append - -> Index Scan using p1_val3 on p1 + -> Index Scan using p1_val3 on p1 p1_1 Index Cond: (val < 1000) - -> Index Scan using p1_c1_val3 on p1_c1 + -> Index Scan using p1_c1_val3 on p1_c1 p1_2 Index Cond: (val < 1000) - -> Index Scan using p1_c2_val3 on p1_c2 + -> Index Scan using p1_c2_val3 on p1_c2 p1_3 Index Cond: (val < 1000) - -> Index Scan using p1_c3_val3 on p1_c3 + -> Index Scan using p1_c3_val3 on p1_c3 p1_4 Index Cond: (val < 1000) - -> Index Scan using p1_c4_val3 on p1_c4 + -> Index Scan using p1_c4_val3 on p1_c4 p1_5 Index Cond: (val < 1000) - -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 + -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 p1_6 Index Cond: (val < 1000) - -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 + -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 p1_7 Index Cond: (val < 1000) - -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 + -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 p1_8 Index Cond: (val < 1000) - -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 + -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 p1_9 Index Cond: (val < 1000) -> Result -> Append - -> Index Scan using p2_id_val_idx on p2 + -> Index Scan using p2_id_val_idx on p2 p2_1 Index Cond: (id < 1000) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: (id < 1000) - -> Index Scan using p2_c2_id_val_idx on p2_c2 + -> Index Scan using p2_c2_id_val_idx on p2_c2 p2_3 Index Cond: (id < 1000) - -> Index Scan using p2_c3_id_val_idx on p2_c3 + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 Index Cond: (id < 1000) - -> Index Scan using p2_c4_id_val_idx on p2_c4 + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 Index Cond: (id < 1000) - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 Index Cond: (id < 1000) - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 Index Cond: (id < 1000) - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 Index Cond: (id < 1000) - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 Index Cond: (id < 1000) (40 rows) @@ -8547,49 +8578,49 @@ error hint: EXPLAIN (COSTS off) SELECT val FROM p1 WHERE val < 1000 UNION SELECT val::int FROM p2 WHERE id < 1000; - QUERY PLAN ------------------------------------------------ + QUERY PLAN +--------------------------------------------------- HashAggregate Group Key: p1.val -> Append -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val < 1000) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val < 1000) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val < 1000) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val < 1000) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val < 1000) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val < 1000) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val < 1000) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val < 1000) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val < 1000) -> Result -> Append - -> Seq Scan on p2 + -> Seq Scan on p2 p2_1 Filter: (id < 1000) - -> Seq Scan on p2_c1 + -> Seq Scan on p2_c1 p2_2 Filter: (id < 1000) - -> Seq Scan on p2_c2 + -> Seq Scan on p2_c2 p2_3 Filter: (id < 1000) - -> Seq Scan on p2_c3 + -> Seq Scan on p2_c3 p2_4 Filter: (id < 1000) - -> Seq Scan on p2_c4 + -> Seq Scan on p2_c4 p2_5 Filter: (id < 1000) - -> Seq Scan on p2_c1_c1 + -> Seq Scan on p2_c1_c1 p2_6 Filter: (id < 1000) - -> Seq Scan on p2_c1_c2 + -> Seq Scan on p2_c1_c2 p2_7 Filter: (id < 1000) - -> Seq Scan on p2_c3_c1 + -> Seq Scan on p2_c3_c1 p2_8 Filter: (id < 1000) - -> Seq Scan on p2_c3_c2 + -> Seq Scan on p2_c3_c2 p2_9 Filter: (id < 1000) (42 rows) @@ -8613,49 +8644,49 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------------------------- HashAggregate Group Key: p1.val -> Append -> Append - -> Seq Scan on p1 + -> Seq Scan on p1 p1_1 Filter: (val < 1000) - -> Seq Scan on p1_c1 + -> Seq Scan on p1_c1 p1_2 Filter: (val < 1000) - -> Seq Scan on p1_c2 + -> Seq Scan on p1_c2 p1_3 Filter: (val < 1000) - -> Seq Scan on p1_c3 + -> Seq Scan on p1_c3 p1_4 Filter: (val < 1000) - -> Seq Scan on p1_c4 + -> Seq Scan on p1_c4 p1_5 Filter: (val < 1000) - -> Seq Scan on p1_c1_c1 + -> Seq Scan on p1_c1_c1 p1_6 Filter: (val < 1000) - -> Seq Scan on p1_c1_c2 + -> Seq Scan on p1_c1_c2 p1_7 Filter: (val < 1000) - -> Seq Scan on p1_c3_c1 + -> Seq Scan on p1_c3_c1 p1_8 Filter: (val < 1000) - -> Seq Scan on p1_c3_c2 + -> Seq Scan on p1_c3_c2 p1_9 Filter: (val < 1000) -> Result -> Append - -> Index Scan using p2_id_val_idx on p2 + -> Index Scan using p2_id_val_idx on p2 p2_1 Index Cond: (id < 1000) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: (id < 1000) - -> Index Scan using p2_c2_id_val_idx on p2_c2 + -> Index Scan using p2_c2_id_val_idx on p2_c2 p2_3 Index Cond: (id < 1000) - -> Index Scan using p2_c3_id_val_idx on p2_c3 + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 Index Cond: (id < 1000) - -> Index Scan using p2_c4_id_val_idx on p2_c4 + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 Index Cond: (id < 1000) - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 Index Cond: (id < 1000) - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 Index Cond: (id < 1000) - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 Index Cond: (id < 1000) - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 Index Cond: (id < 1000) (42 rows) @@ -8689,49 +8720,49 @@ not used hint: duplication hint: error hint: - QUERY PLAN --------------------------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------------------------- HashAggregate Group Key: p1.val -> Append -> Append - -> Index Scan using p1_val3 on p1 + -> Index Scan using p1_val3 on p1 p1_1 Index Cond: (val < 1000) - -> Index Scan using p1_c1_val3 on p1_c1 + -> Index Scan using p1_c1_val3 on p1_c1 p1_2 Index Cond: (val < 1000) - -> Index Scan using p1_c2_val3 on p1_c2 + -> Index Scan using p1_c2_val3 on p1_c2 p1_3 Index Cond: (val < 1000) - -> Index Scan using p1_c3_val3 on p1_c3 + -> Index Scan using p1_c3_val3 on p1_c3 p1_4 Index Cond: (val < 1000) - -> Index Scan using p1_c4_val3 on p1_c4 + -> Index Scan using p1_c4_val3 on p1_c4 p1_5 Index Cond: (val < 1000) - -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 + -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 p1_6 Index Cond: (val < 1000) - -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 + -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 p1_7 Index Cond: (val < 1000) - -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 + -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 p1_8 Index Cond: (val < 1000) - -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 + -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 p1_9 Index Cond: (val < 1000) -> Result -> Append - -> Index Scan using p2_id_val_idx on p2 + -> Index Scan using p2_id_val_idx on p2 p2_1 Index Cond: (id < 1000) - -> Index Scan using p2_c1_id_val_idx on p2_c1 + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 Index Cond: (id < 1000) - -> Index Scan using p2_c2_id_val_idx on p2_c2 + -> Index Scan using p2_c2_id_val_idx on p2_c2 p2_3 Index Cond: (id < 1000) - -> Index Scan using p2_c3_id_val_idx on p2_c3 + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 Index Cond: (id < 1000) - -> Index Scan using p2_c4_id_val_idx on p2_c4 + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 Index Cond: (id < 1000) - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 Index Cond: (id < 1000) - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 Index Cond: (id < 1000) - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 Index Cond: (id < 1000) - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 Index Cond: (id < 1000) (42 rows) @@ -8741,6 +8772,37 @@ error hint: -- Explain result includes "Planning time" if COSTS is enabled, but -- this test needs it enabled for get rows count. So do tests via psql -- and grep -v the mutable line. +-- Parse error check +/*+ Rows() */ SELECT 1; +INFO: pg_hint_plan: hint syntax error at or near " " +DETAIL: Rows hint needs at least one relation followed by one correction term. +LOG: pg_hint_plan: +used hint: +not used hint: +duplication hint: +error hint: +Rows() + + ?column? +---------- + 1 +(1 row) + +/*+ Rows(x) */ SELECT 1; +INFO: pg_hint_plan: hint syntax error at or near " " +DETAIL: Rows hint needs at least one relation followed by one correction term. +LOG: pg_hint_plan: +used hint: +not used hint: +duplication hint: +error hint: +Rows() + + ?column? +---------- + 1 +(1 row) + -- value types \o results/pg_hint_plan.tmpout EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id); @@ -9023,3 +9085,34 @@ error hint: ----+----- (0 rows) +-- all hint types together +/*+ SeqScan(t1) MergeJoin(t1 t2) Leading(t1 t2) Rows(t1 t2 +10) Parallel(t1 8 hard) Set(random_page_cost 2.0)*/ +EXPLAIN (costs off) SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id) JOIN t3 ON (t3.id = t2.id); +DEBUG: adjusted rows 1000 to 1010 +DEBUG: pg_hint_plan: +used hint: +SeqScan(t1) +MergeJoin(t1 t2) +Leading(t1 t2) +Set(random_page_cost 2.0) +Rows(t1 t2 +10) +Parallel(t1 8 hard) +not used hint: +duplication hint: +error hint: + + QUERY PLAN +------------------------------------------------- + Nested Loop + -> Merge Join + Merge Cond: (t2.id = t1.id) + -> Index Scan using t2_pkey on t2 + -> Sort + Sort Key: t1.id + -> Gather + Workers Planned: 8 + -> Parallel Seq Scan on t1 + -> Index Scan using t3_pkey on t3 + Index Cond: (id = t1.id) +(11 rows) +