firtst release
Révision | 7ed93ce189ffc9f4cf73a6f21582b4760917c895 (tree) |
---|---|
l'heure | 2020-08-06 20:18:05 |
Auteur | Kyotaro Horiguchi <horikyota.ntt@gmai...> |
Commiter | Kyotaro Horiguchi |
Support PostgreSQL 13.
- Follow change of some planner functions.
- Follow a change of the semantics of List.
- Take in changes in copied core code.
- Adjust regression tests.
@@ -38,6 +38,8 @@ | ||
38 | 38 | * restriction_is_constant_false() |
39 | 39 | * update_child_rel_info() |
40 | 40 | * build_child_join_sjinfo() |
41 | + * get_matching_part_pairs() | |
42 | + * compute_partition_bounds() | |
41 | 43 | * |
42 | 44 | * |
43 | 45 | * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group |
@@ -137,7 +139,7 @@ set_append_rel_pathlist(PlannerInfo *root, RelOptInfo *rel, | ||
137 | 139 | if (rel->part_scheme) |
138 | 140 | rel->partitioned_child_rels = |
139 | 141 | list_concat(rel->partitioned_child_rels, |
140 | - list_copy(childrel->partitioned_child_rels)); | |
142 | + childrel->partitioned_child_rels); | |
141 | 143 | |
142 | 144 | /* |
143 | 145 | * Child is live, so add it to the live_childrels list for use below. |
@@ -239,7 +241,7 @@ standard_join_search(PlannerInfo *root, int levels_needed, List *initial_rels) | ||
239 | 241 | * once we know the final targetlist (see grouping_planner). |
240 | 242 | */ |
241 | 243 | if (lev < levels_needed) |
242 | - generate_gather_paths(root, rel, false); | |
244 | + generate_useful_gather_paths(root, rel, false); | |
243 | 245 | |
244 | 246 | /* Find and save the cheapest paths for this rel */ |
245 | 247 | set_cheapest(rel); |
@@ -337,15 +339,23 @@ join_search_one_level(PlannerInfo *root, int level) | ||
337 | 339 | * to each initial rel they don't already include but have a join |
338 | 340 | * clause or restriction with. |
339 | 341 | */ |
342 | + List *other_rels_list; | |
340 | 343 | ListCell *other_rels; |
341 | 344 | |
342 | 345 | if (level == 2) /* consider remaining initial rels */ |
343 | - other_rels = lnext(r); | |
346 | + { | |
347 | + other_rels_list = joinrels[level - 1]; | |
348 | + other_rels = lnext(other_rels_list, r); | |
349 | + } | |
344 | 350 | else /* consider all initial rels */ |
345 | - other_rels = list_head(joinrels[1]); | |
351 | + { | |
352 | + other_rels_list = joinrels[1]; | |
353 | + other_rels = list_head(other_rels_list); | |
354 | + } | |
346 | 355 | |
347 | 356 | make_rels_by_clause_joins(root, |
348 | 357 | old_rel, |
358 | + other_rels_list, | |
349 | 359 | other_rels); |
350 | 360 | } |
351 | 361 | else |
@@ -364,7 +374,7 @@ join_search_one_level(PlannerInfo *root, int level) | ||
364 | 374 | */ |
365 | 375 | make_rels_by_clauseless_joins(root, |
366 | 376 | old_rel, |
367 | - list_head(joinrels[1])); | |
377 | + joinrels[1]); | |
368 | 378 | } |
369 | 379 | } |
370 | 380 |
@@ -390,6 +400,7 @@ join_search_one_level(PlannerInfo *root, int level) | ||
390 | 400 | foreach(r, joinrels[k]) |
391 | 401 | { |
392 | 402 | RelOptInfo *old_rel = (RelOptInfo *) lfirst(r); |
403 | + List *other_rels_list; | |
393 | 404 | ListCell *other_rels; |
394 | 405 | ListCell *r2; |
395 | 406 |
@@ -403,11 +414,18 @@ join_search_one_level(PlannerInfo *root, int level) | ||
403 | 414 | continue; |
404 | 415 | |
405 | 416 | if (k == other_level) |
406 | - other_rels = lnext(r); /* only consider remaining rels */ | |
417 | + { | |
418 | + /* only consider remaining rels */ | |
419 | + other_rels_list = joinrels[k]; | |
420 | + other_rels = lnext(other_rels_list, r); | |
421 | + } | |
407 | 422 | else |
408 | - other_rels = list_head(joinrels[other_level]); | |
423 | + { | |
424 | + other_rels_list = joinrels[other_level]; | |
425 | + other_rels = list_head(other_rels_list); | |
426 | + } | |
409 | 427 | |
410 | - for_each_cell(r2, other_rels) | |
428 | + for_each_cell(r2, other_rels_list, other_rels) | |
411 | 429 | { |
412 | 430 | RelOptInfo *new_rel = (RelOptInfo *) lfirst(r2); |
413 | 431 |
@@ -459,7 +477,7 @@ join_search_one_level(PlannerInfo *root, int level) | ||
459 | 477 | |
460 | 478 | make_rels_by_clauseless_joins(root, |
461 | 479 | old_rel, |
462 | - list_head(joinrels[1])); | |
480 | + joinrels[1]); | |
463 | 481 | } |
464 | 482 | |
465 | 483 | /*---------- |
@@ -502,8 +520,9 @@ join_search_one_level(PlannerInfo *root, int level) | ||
502 | 520 | * automatically ensures that each new joinrel is only added to the list once. |
503 | 521 | * |
504 | 522 | * 'old_rel' is the relation entry for the relation to be joined |
505 | - * 'other_rels': the first cell in a linked list containing the other | |
523 | + * 'other_rels_list': a list containing the other | |
506 | 524 | * rels to be considered for joining |
525 | + * 'other_rels': the first cell to be considered | |
507 | 526 | * |
508 | 527 | * Currently, this is only used with initial rels in other_rels, but it |
509 | 528 | * will work for joining to joinrels too. |
@@ -511,11 +530,12 @@ join_search_one_level(PlannerInfo *root, int level) | ||
511 | 530 | static void |
512 | 531 | make_rels_by_clause_joins(PlannerInfo *root, |
513 | 532 | RelOptInfo *old_rel, |
533 | + List *other_rels_list, | |
514 | 534 | ListCell *other_rels) |
515 | 535 | { |
516 | 536 | ListCell *l; |
517 | 537 | |
518 | - for_each_cell(l, other_rels) | |
538 | + for_each_cell(l, other_rels_list, other_rels) | |
519 | 539 | { |
520 | 540 | RelOptInfo *other_rel = (RelOptInfo *) lfirst(l); |
521 | 541 |
@@ -537,8 +557,7 @@ make_rels_by_clause_joins(PlannerInfo *root, | ||
537 | 557 | * The join rels are returned in root->join_rel_level[join_cur_level]. |
538 | 558 | * |
539 | 559 | * 'old_rel' is the relation entry for the relation to be joined |
540 | - * 'other_rels': the first cell of a linked list containing the | |
541 | - * other rels to be considered for joining | |
560 | + * 'other_rels': a list containing the other rels to be considered for joining | |
542 | 561 | * |
543 | 562 | * Currently, this is only used with initial rels in other_rels, but it would |
544 | 563 | * work for joining to joinrels too. |
@@ -546,11 +565,11 @@ make_rels_by_clause_joins(PlannerInfo *root, | ||
546 | 565 | static void |
547 | 566 | make_rels_by_clauseless_joins(PlannerInfo *root, |
548 | 567 | RelOptInfo *old_rel, |
549 | - ListCell *other_rels) | |
568 | + List *other_rels) | |
550 | 569 | { |
551 | 570 | ListCell *l; |
552 | 571 | |
553 | - for_each_cell(l, other_rels) | |
572 | + foreach(l, other_rels) | |
554 | 573 | { |
555 | 574 | RelOptInfo *other_rel = (RelOptInfo *) lfirst(l); |
556 | 575 |
@@ -1025,6 +1044,196 @@ build_child_join_sjinfo(PlannerInfo *root, SpecialJoinInfo *parent_sjinfo, | ||
1025 | 1044 | } |
1026 | 1045 | |
1027 | 1046 | /* |
1047 | + * get_matching_part_pairs | |
1048 | + * Generate pairs of partitions to be joined from inputs | |
1049 | + */ | |
1050 | +static void | |
1051 | +get_matching_part_pairs(PlannerInfo *root, RelOptInfo *joinrel, | |
1052 | + RelOptInfo *rel1, RelOptInfo *rel2, | |
1053 | + List **parts1, List **parts2) | |
1054 | +{ | |
1055 | + bool rel1_is_simple = IS_SIMPLE_REL(rel1); | |
1056 | + bool rel2_is_simple = IS_SIMPLE_REL(rel2); | |
1057 | + int cnt_parts; | |
1058 | + | |
1059 | + *parts1 = NIL; | |
1060 | + *parts2 = NIL; | |
1061 | + | |
1062 | + for (cnt_parts = 0; cnt_parts < joinrel->nparts; cnt_parts++) | |
1063 | + { | |
1064 | + RelOptInfo *child_joinrel = joinrel->part_rels[cnt_parts]; | |
1065 | + RelOptInfo *child_rel1; | |
1066 | + RelOptInfo *child_rel2; | |
1067 | + Relids child_relids1; | |
1068 | + Relids child_relids2; | |
1069 | + | |
1070 | + /* | |
1071 | + * If this segment of the join is empty, it means that this segment | |
1072 | + * was ignored when previously creating child-join paths for it in | |
1073 | + * try_partitionwise_join() as it would not contribute to the join | |
1074 | + * result, due to one or both inputs being empty; add NULL to each of | |
1075 | + * the given lists so that this segment will be ignored again in that | |
1076 | + * function. | |
1077 | + */ | |
1078 | + if (!child_joinrel) | |
1079 | + { | |
1080 | + *parts1 = lappend(*parts1, NULL); | |
1081 | + *parts2 = lappend(*parts2, NULL); | |
1082 | + continue; | |
1083 | + } | |
1084 | + | |
1085 | + /* | |
1086 | + * Get a relids set of partition(s) involved in this join segment that | |
1087 | + * are from the rel1 side. | |
1088 | + */ | |
1089 | + child_relids1 = bms_intersect(child_joinrel->relids, | |
1090 | + rel1->all_partrels); | |
1091 | + Assert(bms_num_members(child_relids1) == bms_num_members(rel1->relids)); | |
1092 | + | |
1093 | + /* | |
1094 | + * Get a child rel for rel1 with the relids. Note that we should have | |
1095 | + * the child rel even if rel1 is a join rel, because in that case the | |
1096 | + * partitions specified in the relids would have matching/overlapping | |
1097 | + * boundaries, so the specified partitions should be considered as | |
1098 | + * ones to be joined when planning partitionwise joins of rel1, | |
1099 | + * meaning that the child rel would have been built by the time we get | |
1100 | + * here. | |
1101 | + */ | |
1102 | + if (rel1_is_simple) | |
1103 | + { | |
1104 | + int varno = bms_singleton_member(child_relids1); | |
1105 | + | |
1106 | + child_rel1 = find_base_rel(root, varno); | |
1107 | + } | |
1108 | + else | |
1109 | + child_rel1 = find_join_rel(root, child_relids1); | |
1110 | + Assert(child_rel1); | |
1111 | + | |
1112 | + /* | |
1113 | + * Get a relids set of partition(s) involved in this join segment that | |
1114 | + * are from the rel2 side. | |
1115 | + */ | |
1116 | + child_relids2 = bms_intersect(child_joinrel->relids, | |
1117 | + rel2->all_partrels); | |
1118 | + Assert(bms_num_members(child_relids2) == bms_num_members(rel2->relids)); | |
1119 | + | |
1120 | + /* | |
1121 | + * Get a child rel for rel2 with the relids. See above comments. | |
1122 | + */ | |
1123 | + if (rel2_is_simple) | |
1124 | + { | |
1125 | + int varno = bms_singleton_member(child_relids2); | |
1126 | + | |
1127 | + child_rel2 = find_base_rel(root, varno); | |
1128 | + } | |
1129 | + else | |
1130 | + child_rel2 = find_join_rel(root, child_relids2); | |
1131 | + Assert(child_rel2); | |
1132 | + | |
1133 | + /* | |
1134 | + * The join of rel1 and rel2 is legal, so is the join of the child | |
1135 | + * rels obtained above; add them to the given lists as a join pair | |
1136 | + * producing this join segment. | |
1137 | + */ | |
1138 | + *parts1 = lappend(*parts1, child_rel1); | |
1139 | + *parts2 = lappend(*parts2, child_rel2); | |
1140 | + } | |
1141 | +} | |
1142 | + | |
1143 | + | |
1144 | +/* | |
1145 | + * compute_partition_bounds | |
1146 | + * Compute the partition bounds for a join rel from those for inputs | |
1147 | + */ | |
1148 | +static void | |
1149 | +compute_partition_bounds(PlannerInfo *root, RelOptInfo *rel1, | |
1150 | + RelOptInfo *rel2, RelOptInfo *joinrel, | |
1151 | + SpecialJoinInfo *parent_sjinfo, | |
1152 | + List **parts1, List **parts2) | |
1153 | +{ | |
1154 | + /* | |
1155 | + * If we don't have the partition bounds for the join rel yet, try to | |
1156 | + * compute those along with pairs of partitions to be joined. | |
1157 | + */ | |
1158 | + if (joinrel->nparts == -1) | |
1159 | + { | |
1160 | + PartitionScheme part_scheme = joinrel->part_scheme; | |
1161 | + PartitionBoundInfo boundinfo = NULL; | |
1162 | + int nparts = 0; | |
1163 | + | |
1164 | + Assert(joinrel->boundinfo == NULL); | |
1165 | + Assert(joinrel->part_rels == NULL); | |
1166 | + | |
1167 | + /* | |
1168 | + * See if the partition bounds for inputs are exactly the same, in | |
1169 | + * which case we don't need to work hard: the join rel have the same | |
1170 | + * partition bounds as inputs, and the partitions with the same | |
1171 | + * cardinal positions form the pairs. | |
1172 | + * | |
1173 | + * Note: even in cases where one or both inputs have merged bounds, it | |
1174 | + * would be possible for both the bounds to be exactly the same, but | |
1175 | + * it seems unlikely to be worth the cycles to check. | |
1176 | + */ | |
1177 | + if (!rel1->partbounds_merged && | |
1178 | + !rel2->partbounds_merged && | |
1179 | + rel1->nparts == rel2->nparts && | |
1180 | + partition_bounds_equal(part_scheme->partnatts, | |
1181 | + part_scheme->parttyplen, | |
1182 | + part_scheme->parttypbyval, | |
1183 | + rel1->boundinfo, rel2->boundinfo)) | |
1184 | + { | |
1185 | + boundinfo = rel1->boundinfo; | |
1186 | + nparts = rel1->nparts; | |
1187 | + } | |
1188 | + else | |
1189 | + { | |
1190 | + /* Try merging the partition bounds for inputs. */ | |
1191 | + boundinfo = partition_bounds_merge(part_scheme->partnatts, | |
1192 | + part_scheme->partsupfunc, | |
1193 | + part_scheme->partcollation, | |
1194 | + rel1, rel2, | |
1195 | + parent_sjinfo->jointype, | |
1196 | + parts1, parts2); | |
1197 | + if (boundinfo == NULL) | |
1198 | + { | |
1199 | + joinrel->nparts = 0; | |
1200 | + return; | |
1201 | + } | |
1202 | + nparts = list_length(*parts1); | |
1203 | + joinrel->partbounds_merged = true; | |
1204 | + } | |
1205 | + | |
1206 | + Assert(nparts > 0); | |
1207 | + joinrel->boundinfo = boundinfo; | |
1208 | + joinrel->nparts = nparts; | |
1209 | + joinrel->part_rels = | |
1210 | + (RelOptInfo **) palloc0(sizeof(RelOptInfo *) * nparts); | |
1211 | + } | |
1212 | + else | |
1213 | + { | |
1214 | + Assert(joinrel->nparts > 0); | |
1215 | + Assert(joinrel->boundinfo); | |
1216 | + Assert(joinrel->part_rels); | |
1217 | + | |
1218 | + /* | |
1219 | + * If the join rel's partbounds_merged flag is true, it means inputs | |
1220 | + * are not guaranteed to have the same partition bounds, therefore we | |
1221 | + * can't assume that the partitions at the same cardinal positions | |
1222 | + * form the pairs; let get_matching_part_pairs() generate the pairs. | |
1223 | + * Otherwise, nothing to do since we can assume that. | |
1224 | + */ | |
1225 | + if (joinrel->partbounds_merged) | |
1226 | + { | |
1227 | + get_matching_part_pairs(root, joinrel, rel1, rel2, | |
1228 | + parts1, parts2); | |
1229 | + Assert(list_length(*parts1) == joinrel->nparts); | |
1230 | + Assert(list_length(*parts2) == joinrel->nparts); | |
1231 | + } | |
1232 | + } | |
1233 | +} | |
1234 | + | |
1235 | + | |
1236 | +/* | |
1028 | 1237 | * Assess whether join between given two partitioned relations can be broken |
1029 | 1238 | * down into joins between matching partitions; a technique called |
1030 | 1239 | * "partitionwise join" |
@@ -1051,25 +1260,29 @@ try_partitionwise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2, | ||
1051 | 1260 | { |
1052 | 1261 | bool rel1_is_simple = IS_SIMPLE_REL(rel1); |
1053 | 1262 | bool rel2_is_simple = IS_SIMPLE_REL(rel2); |
1054 | - int nparts; | |
1263 | + List *parts1 = NIL; | |
1264 | + List *parts2 = NIL; | |
1265 | + ListCell *lcr1 = NULL; | |
1266 | + ListCell *lcr2 = NULL; | |
1055 | 1267 | int cnt_parts; |
1056 | 1268 | |
1057 | 1269 | /* Guard against stack overflow due to overly deep partition hierarchy. */ |
1058 | 1270 | check_stack_depth(); |
1059 | 1271 | |
1060 | 1272 | /* Nothing to do, if the join relation is not partitioned. */ |
1061 | - if (!IS_PARTITIONED_REL(joinrel)) | |
1273 | + if (joinrel->part_scheme == NULL || joinrel->nparts == 0) | |
1062 | 1274 | return; |
1063 | 1275 | |
1064 | 1276 | /* The join relation should have consider_partitionwise_join set. */ |
1065 | 1277 | Assert(joinrel->consider_partitionwise_join); |
1066 | 1278 | |
1067 | 1279 | /* |
1068 | - * Since this join relation is partitioned, all the base relations | |
1069 | - * participating in this join must be partitioned and so are all the | |
1070 | - * intermediate join relations. | |
1280 | + * We can not perform partitionwise join if either of the joining | |
1281 | + * relations is not partitioned. | |
1071 | 1282 | */ |
1072 | - Assert(IS_PARTITIONED_REL(rel1) && IS_PARTITIONED_REL(rel2)); | |
1283 | + if (!IS_PARTITIONED_REL(rel1) || !IS_PARTITIONED_REL(rel2)) | |
1284 | + return; | |
1285 | + | |
1073 | 1286 | Assert(REL_HAS_ALL_PART_PROPS(rel1) && REL_HAS_ALL_PART_PROPS(rel2)); |
1074 | 1287 | |
1075 | 1288 | /* The joining relations should have consider_partitionwise_join set. */ |
@@ -1083,35 +1296,28 @@ try_partitionwise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2, | ||
1083 | 1296 | Assert(joinrel->part_scheme == rel1->part_scheme && |
1084 | 1297 | joinrel->part_scheme == rel2->part_scheme); |
1085 | 1298 | |
1086 | - /* | |
1087 | - * Since we allow partitionwise join only when the partition bounds of the | |
1088 | - * joining relations exactly match, the partition bounds of the join | |
1089 | - * should match those of the joining relations. | |
1090 | - */ | |
1091 | - Assert(partition_bounds_equal(joinrel->part_scheme->partnatts, | |
1092 | - joinrel->part_scheme->parttyplen, | |
1093 | - joinrel->part_scheme->parttypbyval, | |
1094 | - joinrel->boundinfo, rel1->boundinfo)); | |
1095 | - Assert(partition_bounds_equal(joinrel->part_scheme->partnatts, | |
1096 | - joinrel->part_scheme->parttyplen, | |
1097 | - joinrel->part_scheme->parttypbyval, | |
1098 | - joinrel->boundinfo, rel2->boundinfo)); | |
1299 | + Assert(!(joinrel->partbounds_merged && (joinrel->nparts <= 0))); | |
1300 | + | |
1301 | + compute_partition_bounds(root, rel1, rel2, joinrel, parent_sjinfo, | |
1302 | + &parts1, &parts2); | |
1099 | 1303 | |
1100 | - nparts = joinrel->nparts; | |
1304 | + if (joinrel->partbounds_merged) | |
1305 | + { | |
1306 | + lcr1 = list_head(parts1); | |
1307 | + lcr2 = list_head(parts2); | |
1308 | + } | |
1101 | 1309 | |
1102 | 1310 | /* |
1103 | 1311 | * Create child-join relations for this partitioned join, if those don't |
1104 | 1312 | * exist. Add paths to child-joins for a pair of child relations |
1105 | 1313 | * corresponding to the given pair of parent relations. |
1106 | 1314 | */ |
1107 | - for (cnt_parts = 0; cnt_parts < nparts; cnt_parts++) | |
1315 | + for (cnt_parts = 0; cnt_parts < joinrel->nparts; cnt_parts++) | |
1108 | 1316 | { |
1109 | - RelOptInfo *child_rel1 = rel1->part_rels[cnt_parts]; | |
1110 | - RelOptInfo *child_rel2 = rel2->part_rels[cnt_parts]; | |
1111 | - bool rel1_empty = (child_rel1 == NULL || | |
1112 | - IS_DUMMY_REL(child_rel1)); | |
1113 | - bool rel2_empty = (child_rel2 == NULL || | |
1114 | - IS_DUMMY_REL(child_rel2)); | |
1317 | + RelOptInfo *child_rel1; | |
1318 | + RelOptInfo *child_rel2; | |
1319 | + bool rel1_empty; | |
1320 | + bool rel2_empty; | |
1115 | 1321 | SpecialJoinInfo *child_sjinfo; |
1116 | 1322 | List *child_restrictlist; |
1117 | 1323 | RelOptInfo *child_joinrel; |
@@ -1119,6 +1325,22 @@ try_partitionwise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2, | ||
1119 | 1325 | AppendRelInfo **appinfos; |
1120 | 1326 | int nappinfos; |
1121 | 1327 | |
1328 | + if (joinrel->partbounds_merged) | |
1329 | + { | |
1330 | + child_rel1 = lfirst_node(RelOptInfo, lcr1); | |
1331 | + child_rel2 = lfirst_node(RelOptInfo, lcr2); | |
1332 | + lcr1 = lnext(parts1, lcr1); | |
1333 | + lcr2 = lnext(parts2, lcr2); | |
1334 | + } | |
1335 | + else | |
1336 | + { | |
1337 | + child_rel1 = rel1->part_rels[cnt_parts]; | |
1338 | + child_rel2 = rel2->part_rels[cnt_parts]; | |
1339 | + } | |
1340 | + | |
1341 | + rel1_empty = (child_rel1 == NULL || IS_DUMMY_REL(child_rel1)); | |
1342 | + rel2_empty = (child_rel2 == NULL || IS_DUMMY_REL(child_rel2)); | |
1343 | + | |
1122 | 1344 | /* |
1123 | 1345 | * Check for cases where we can prove that this segment of the join |
1124 | 1346 | * returns no rows, due to one or both inputs being empty (including |
@@ -1216,6 +1438,8 @@ try_partitionwise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2, | ||
1216 | 1438 | child_sjinfo, |
1217 | 1439 | child_sjinfo->jointype); |
1218 | 1440 | joinrel->part_rels[cnt_parts] = child_joinrel; |
1441 | + joinrel->all_partrels = bms_add_members(joinrel->all_partrels, | |
1442 | + child_joinrel->relids); | |
1219 | 1443 | } |
1220 | 1444 | |
1221 | 1445 | Assert(bms_equal(child_joinrel->relids, child_joinrelids)); |
@@ -194,6 +194,7 @@ SELECT * FROM settings; | ||
194 | 194 | enable_gathermerge | on | Query Tuning / Planner Method Configuration |
195 | 195 | enable_hashagg | on | Query Tuning / Planner Method Configuration |
196 | 196 | enable_hashjoin | on | Query Tuning / Planner Method Configuration |
197 | + enable_incremental_sort | on | Query Tuning / Planner Method Configuration | |
197 | 198 | enable_indexonlyscan | on | Query Tuning / Planner Method Configuration |
198 | 199 | enable_indexscan | on | Query Tuning / Planner Method Configuration |
199 | 200 | enable_material | on | Query Tuning / Planner Method Configuration |
@@ -207,6 +208,6 @@ SELECT * FROM settings; | ||
207 | 208 | enable_seqscan | on | Query Tuning / Planner Method Configuration |
208 | 209 | enable_sort | on | Query Tuning / Planner Method Configuration |
209 | 210 | enable_tidscan | on | Query Tuning / Planner Method Configuration |
210 | -(46 rows) | |
211 | +(47 rows) | |
211 | 212 | |
212 | 213 | ANALYZE; |
@@ -3069,23 +3069,23 @@ EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = | ||
3069 | 3069 | QUERY PLAN |
3070 | 3070 | ----------------------------------------------------------------------- |
3071 | 3071 | Append |
3072 | - -> Seq Scan on p1 | |
3072 | + -> Seq Scan on p1 p1_1 | |
3073 | 3073 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3074 | - -> Seq Scan on p1_c1 | |
3074 | + -> Seq Scan on p1_c1 p1_2 | |
3075 | 3075 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3076 | - -> Seq Scan on p1_c2 | |
3076 | + -> Seq Scan on p1_c2 p1_3 | |
3077 | 3077 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3078 | - -> Seq Scan on p1_c3 | |
3078 | + -> Seq Scan on p1_c3 p1_4 | |
3079 | 3079 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3080 | - -> Seq Scan on p1_c4 | |
3080 | + -> Seq Scan on p1_c4 p1_5 | |
3081 | 3081 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3082 | - -> Seq Scan on p1_c1_c1 | |
3082 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3083 | 3083 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3084 | - -> Seq Scan on p1_c1_c2 | |
3084 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3085 | 3085 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3086 | - -> Seq Scan on p1_c3_c1 | |
3086 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3087 | 3087 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3088 | - -> Seq Scan on p1_c3_c2 | |
3088 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3089 | 3089 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3090 | 3090 | (19 rows) |
3091 | 3091 |
@@ -3094,13 +3094,13 @@ EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = | ||
3094 | 3094 | QUERY PLAN |
3095 | 3095 | ----------------------------------------------------------------------- |
3096 | 3096 | Append |
3097 | - -> Seq Scan on p1 | |
3097 | + -> Seq Scan on p1 p1_1 | |
3098 | 3098 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3099 | - -> Seq Scan on p1_c1 | |
3099 | + -> Seq Scan on p1_c1 p1_2 | |
3100 | 3100 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3101 | - -> Seq Scan on p1_c1_c1 | |
3101 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3102 | 3102 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3103 | - -> Seq Scan on p1_c1_c2 | |
3103 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3104 | 3104 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3105 | 3105 | (9 rows) |
3106 | 3106 |
@@ -3117,23 +3117,23 @@ error hint: | ||
3117 | 3117 | QUERY PLAN |
3118 | 3118 | ----------------------------------------------------------------------- |
3119 | 3119 | Append |
3120 | - -> Seq Scan on p1 | |
3120 | + -> Seq Scan on p1 p1_1 | |
3121 | 3121 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3122 | - -> Seq Scan on p1_c1 | |
3122 | + -> Seq Scan on p1_c1 p1_2 | |
3123 | 3123 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3124 | - -> Seq Scan on p1_c2 | |
3124 | + -> Seq Scan on p1_c2 p1_3 | |
3125 | 3125 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3126 | - -> Seq Scan on p1_c3 | |
3126 | + -> Seq Scan on p1_c3 p1_4 | |
3127 | 3127 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3128 | - -> Seq Scan on p1_c4 | |
3128 | + -> Seq Scan on p1_c4 p1_5 | |
3129 | 3129 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3130 | - -> Seq Scan on p1_c1_c1 | |
3130 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3131 | 3131 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3132 | - -> Seq Scan on p1_c1_c2 | |
3132 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3133 | 3133 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3134 | - -> Seq Scan on p1_c3_c1 | |
3134 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3135 | 3135 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3136 | - -> Seq Scan on p1_c3_c2 | |
3136 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3137 | 3137 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3138 | 3138 | (19 rows) |
3139 | 3139 |
@@ -3146,34 +3146,34 @@ not used hint: | ||
3146 | 3146 | duplication hint: |
3147 | 3147 | error hint: |
3148 | 3148 | |
3149 | - QUERY PLAN | |
3150 | --------------------------------------------------- | |
3149 | + QUERY PLAN | |
3150 | +------------------------------------------------------- | |
3151 | 3151 | Append |
3152 | - -> Index Scan using p1_pkey on p1 | |
3152 | + -> Index Scan using p1_pkey on p1 p1_1 | |
3153 | 3153 | Index Cond: ((id >= 50) AND (id <= 51)) |
3154 | 3154 | Filter: (ctid = '(1,1)'::tid) |
3155 | - -> Index Scan using p1_c1_pkey on p1_c1 | |
3155 | + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
3156 | 3156 | Index Cond: ((id >= 50) AND (id <= 51)) |
3157 | 3157 | Filter: (ctid = '(1,1)'::tid) |
3158 | - -> Index Scan using p1_c2_pkey on p1_c2 | |
3158 | + -> Index Scan using p1_c2_pkey on p1_c2 p1_3 | |
3159 | 3159 | Index Cond: ((id >= 50) AND (id <= 51)) |
3160 | 3160 | Filter: (ctid = '(1,1)'::tid) |
3161 | - -> Index Scan using p1_c3_pkey on p1_c3 | |
3161 | + -> Index Scan using p1_c3_pkey on p1_c3 p1_4 | |
3162 | 3162 | Index Cond: ((id >= 50) AND (id <= 51)) |
3163 | 3163 | Filter: (ctid = '(1,1)'::tid) |
3164 | - -> Index Scan using p1_c4_pkey on p1_c4 | |
3164 | + -> Index Scan using p1_c4_pkey on p1_c4 p1_5 | |
3165 | 3165 | Index Cond: ((id >= 50) AND (id <= 51)) |
3166 | 3166 | Filter: (ctid = '(1,1)'::tid) |
3167 | - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
3167 | + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 | |
3168 | 3168 | Index Cond: ((id >= 50) AND (id <= 51)) |
3169 | 3169 | Filter: (ctid = '(1,1)'::tid) |
3170 | - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
3170 | + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 | |
3171 | 3171 | Index Cond: ((id >= 50) AND (id <= 51)) |
3172 | 3172 | Filter: (ctid = '(1,1)'::tid) |
3173 | - -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 | |
3173 | + -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 | |
3174 | 3174 | Index Cond: ((id >= 50) AND (id <= 51)) |
3175 | 3175 | Filter: (ctid = '(1,1)'::tid) |
3176 | - -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 | |
3176 | + -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 | |
3177 | 3177 | Index Cond: ((id >= 50) AND (id <= 51)) |
3178 | 3178 | Filter: (ctid = '(1,1)'::tid) |
3179 | 3179 | (28 rows) |
@@ -3190,47 +3190,47 @@ error hint: | ||
3190 | 3190 | QUERY PLAN |
3191 | 3191 | ------------------------------------------------------- |
3192 | 3192 | Append |
3193 | - -> Bitmap Heap Scan on p1 | |
3193 | + -> Bitmap Heap Scan on p1 p1_1 | |
3194 | 3194 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3195 | 3195 | Filter: (ctid = '(1,1)'::tid) |
3196 | 3196 | -> Bitmap Index Scan on p1_pkey |
3197 | 3197 | Index Cond: ((id >= 50) AND (id <= 51)) |
3198 | - -> Bitmap Heap Scan on p1_c1 | |
3198 | + -> Bitmap Heap Scan on p1_c1 p1_2 | |
3199 | 3199 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3200 | 3200 | Filter: (ctid = '(1,1)'::tid) |
3201 | 3201 | -> Bitmap Index Scan on p1_c1_pkey |
3202 | 3202 | Index Cond: ((id >= 50) AND (id <= 51)) |
3203 | - -> Bitmap Heap Scan on p1_c2 | |
3203 | + -> Bitmap Heap Scan on p1_c2 p1_3 | |
3204 | 3204 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3205 | 3205 | Filter: (ctid = '(1,1)'::tid) |
3206 | 3206 | -> Bitmap Index Scan on p1_c2_pkey |
3207 | 3207 | Index Cond: ((id >= 50) AND (id <= 51)) |
3208 | - -> Bitmap Heap Scan on p1_c3 | |
3208 | + -> Bitmap Heap Scan on p1_c3 p1_4 | |
3209 | 3209 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3210 | 3210 | Filter: (ctid = '(1,1)'::tid) |
3211 | 3211 | -> Bitmap Index Scan on p1_c3_pkey |
3212 | 3212 | Index Cond: ((id >= 50) AND (id <= 51)) |
3213 | - -> Bitmap Heap Scan on p1_c4 | |
3213 | + -> Bitmap Heap Scan on p1_c4 p1_5 | |
3214 | 3214 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3215 | 3215 | Filter: (ctid = '(1,1)'::tid) |
3216 | 3216 | -> Bitmap Index Scan on p1_c4_pkey |
3217 | 3217 | Index Cond: ((id >= 50) AND (id <= 51)) |
3218 | - -> Bitmap Heap Scan on p1_c1_c1 | |
3218 | + -> Bitmap Heap Scan on p1_c1_c1 p1_6 | |
3219 | 3219 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3220 | 3220 | Filter: (ctid = '(1,1)'::tid) |
3221 | 3221 | -> Bitmap Index Scan on p1_c1_c1_pkey |
3222 | 3222 | Index Cond: ((id >= 50) AND (id <= 51)) |
3223 | - -> Bitmap Heap Scan on p1_c1_c2 | |
3223 | + -> Bitmap Heap Scan on p1_c1_c2 p1_7 | |
3224 | 3224 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3225 | 3225 | Filter: (ctid = '(1,1)'::tid) |
3226 | 3226 | -> Bitmap Index Scan on p1_c1_c2_pkey |
3227 | 3227 | Index Cond: ((id >= 50) AND (id <= 51)) |
3228 | - -> Bitmap Heap Scan on p1_c3_c1 | |
3228 | + -> Bitmap Heap Scan on p1_c3_c1 p1_8 | |
3229 | 3229 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3230 | 3230 | Filter: (ctid = '(1,1)'::tid) |
3231 | 3231 | -> Bitmap Index Scan on p1_c3_c1_pkey |
3232 | 3232 | Index Cond: ((id >= 50) AND (id <= 51)) |
3233 | - -> Bitmap Heap Scan on p1_c3_c2 | |
3233 | + -> Bitmap Heap Scan on p1_c3_c2 p1_9 | |
3234 | 3234 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3235 | 3235 | Filter: (ctid = '(1,1)'::tid) |
3236 | 3236 | -> Bitmap Index Scan on p1_c3_c2_pkey |
@@ -3249,31 +3249,31 @@ error hint: | ||
3249 | 3249 | QUERY PLAN |
3250 | 3250 | --------------------------------------------- |
3251 | 3251 | Append |
3252 | - -> Tid Scan on p1 | |
3252 | + -> Tid Scan on p1 p1_1 | |
3253 | 3253 | TID Cond: (ctid = '(1,1)'::tid) |
3254 | 3254 | Filter: ((id >= 50) AND (id <= 51)) |
3255 | - -> Tid Scan on p1_c1 | |
3255 | + -> Tid Scan on p1_c1 p1_2 | |
3256 | 3256 | TID Cond: (ctid = '(1,1)'::tid) |
3257 | 3257 | Filter: ((id >= 50) AND (id <= 51)) |
3258 | - -> Tid Scan on p1_c2 | |
3258 | + -> Tid Scan on p1_c2 p1_3 | |
3259 | 3259 | TID Cond: (ctid = '(1,1)'::tid) |
3260 | 3260 | Filter: ((id >= 50) AND (id <= 51)) |
3261 | - -> Tid Scan on p1_c3 | |
3261 | + -> Tid Scan on p1_c3 p1_4 | |
3262 | 3262 | TID Cond: (ctid = '(1,1)'::tid) |
3263 | 3263 | Filter: ((id >= 50) AND (id <= 51)) |
3264 | - -> Tid Scan on p1_c4 | |
3264 | + -> Tid Scan on p1_c4 p1_5 | |
3265 | 3265 | TID Cond: (ctid = '(1,1)'::tid) |
3266 | 3266 | Filter: ((id >= 50) AND (id <= 51)) |
3267 | - -> Tid Scan on p1_c1_c1 | |
3267 | + -> Tid Scan on p1_c1_c1 p1_6 | |
3268 | 3268 | TID Cond: (ctid = '(1,1)'::tid) |
3269 | 3269 | Filter: ((id >= 50) AND (id <= 51)) |
3270 | - -> Tid Scan on p1_c1_c2 | |
3270 | + -> Tid Scan on p1_c1_c2 p1_7 | |
3271 | 3271 | TID Cond: (ctid = '(1,1)'::tid) |
3272 | 3272 | Filter: ((id >= 50) AND (id <= 51)) |
3273 | - -> Tid Scan on p1_c3_c1 | |
3273 | + -> Tid Scan on p1_c3_c1 p1_8 | |
3274 | 3274 | TID Cond: (ctid = '(1,1)'::tid) |
3275 | 3275 | Filter: ((id >= 50) AND (id <= 51)) |
3276 | - -> Tid Scan on p1_c3_c2 | |
3276 | + -> Tid Scan on p1_c3_c2 p1_9 | |
3277 | 3277 | TID Cond: (ctid = '(1,1)'::tid) |
3278 | 3278 | Filter: ((id >= 50) AND (id <= 51)) |
3279 | 3279 | (28 rows) |
@@ -3291,13 +3291,13 @@ error hint: | ||
3291 | 3291 | QUERY PLAN |
3292 | 3292 | ----------------------------------------------------------------------- |
3293 | 3293 | Append |
3294 | - -> Seq Scan on p1 | |
3294 | + -> Seq Scan on p1 p1_1 | |
3295 | 3295 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3296 | - -> Seq Scan on p1_c1 | |
3296 | + -> Seq Scan on p1_c1 p1_2 | |
3297 | 3297 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3298 | - -> Seq Scan on p1_c1_c1 | |
3298 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3299 | 3299 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3300 | - -> Seq Scan on p1_c1_c2 | |
3300 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3301 | 3301 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3302 | 3302 | (9 rows) |
3303 | 3303 |
@@ -3310,19 +3310,19 @@ not used hint: | ||
3310 | 3310 | duplication hint: |
3311 | 3311 | error hint: |
3312 | 3312 | |
3313 | - QUERY PLAN | |
3314 | --------------------------------------------------- | |
3313 | + QUERY PLAN | |
3314 | +------------------------------------------------------- | |
3315 | 3315 | Append |
3316 | - -> Index Scan using p1_pkey on p1 | |
3316 | + -> Index Scan using p1_pkey on p1 p1_1 | |
3317 | 3317 | Index Cond: ((id >= 50) AND (id <= 51)) |
3318 | 3318 | Filter: (ctid = '(1,1)'::tid) |
3319 | - -> Index Scan using p1_c1_pkey on p1_c1 | |
3319 | + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
3320 | 3320 | Index Cond: ((id >= 50) AND (id <= 51)) |
3321 | 3321 | Filter: (ctid = '(1,1)'::tid) |
3322 | - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
3322 | + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_3 | |
3323 | 3323 | Index Cond: ((id >= 50) AND (id <= 51)) |
3324 | 3324 | Filter: (ctid = '(1,1)'::tid) |
3325 | - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
3325 | + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_4 | |
3326 | 3326 | Index Cond: ((id >= 50) AND (id <= 51)) |
3327 | 3327 | Filter: (ctid = '(1,1)'::tid) |
3328 | 3328 | (13 rows) |
@@ -3339,22 +3339,22 @@ error hint: | ||
3339 | 3339 | QUERY PLAN |
3340 | 3340 | ------------------------------------------------------- |
3341 | 3341 | Append |
3342 | - -> Bitmap Heap Scan on p1 | |
3342 | + -> Bitmap Heap Scan on p1 p1_1 | |
3343 | 3343 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3344 | 3344 | Filter: (ctid = '(1,1)'::tid) |
3345 | 3345 | -> Bitmap Index Scan on p1_pkey |
3346 | 3346 | Index Cond: ((id >= 50) AND (id <= 51)) |
3347 | - -> Bitmap Heap Scan on p1_c1 | |
3347 | + -> Bitmap Heap Scan on p1_c1 p1_2 | |
3348 | 3348 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3349 | 3349 | Filter: (ctid = '(1,1)'::tid) |
3350 | 3350 | -> Bitmap Index Scan on p1_c1_pkey |
3351 | 3351 | Index Cond: ((id >= 50) AND (id <= 51)) |
3352 | - -> Bitmap Heap Scan on p1_c1_c1 | |
3352 | + -> Bitmap Heap Scan on p1_c1_c1 p1_3 | |
3353 | 3353 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3354 | 3354 | Filter: (ctid = '(1,1)'::tid) |
3355 | 3355 | -> Bitmap Index Scan on p1_c1_c1_pkey |
3356 | 3356 | Index Cond: ((id >= 50) AND (id <= 51)) |
3357 | - -> Bitmap Heap Scan on p1_c1_c2 | |
3357 | + -> Bitmap Heap Scan on p1_c1_c2 p1_4 | |
3358 | 3358 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3359 | 3359 | Filter: (ctid = '(1,1)'::tid) |
3360 | 3360 | -> Bitmap Index Scan on p1_c1_c2_pkey |
@@ -3373,16 +3373,16 @@ error hint: | ||
3373 | 3373 | QUERY PLAN |
3374 | 3374 | --------------------------------------------- |
3375 | 3375 | Append |
3376 | - -> Tid Scan on p1 | |
3376 | + -> Tid Scan on p1 p1_1 | |
3377 | 3377 | TID Cond: (ctid = '(1,1)'::tid) |
3378 | 3378 | Filter: ((id >= 50) AND (id <= 51)) |
3379 | - -> Tid Scan on p1_c1 | |
3379 | + -> Tid Scan on p1_c1 p1_2 | |
3380 | 3380 | TID Cond: (ctid = '(1,1)'::tid) |
3381 | 3381 | Filter: ((id >= 50) AND (id <= 51)) |
3382 | - -> Tid Scan on p1_c1_c1 | |
3382 | + -> Tid Scan on p1_c1_c1 p1_3 | |
3383 | 3383 | TID Cond: (ctid = '(1,1)'::tid) |
3384 | 3384 | Filter: ((id >= 50) AND (id <= 51)) |
3385 | - -> Tid Scan on p1_c1_c2 | |
3385 | + -> Tid Scan on p1_c1_c2 p1_4 | |
3386 | 3386 | TID Cond: (ctid = '(1,1)'::tid) |
3387 | 3387 | Filter: ((id >= 50) AND (id <= 51)) |
3388 | 3388 | (13 rows) |
@@ -3396,23 +3396,23 @@ EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND | ||
3396 | 3396 | -> Sort |
3397 | 3397 | Sort Key: p1.id |
3398 | 3398 | -> Append |
3399 | - -> Seq Scan on p1 | |
3399 | + -> Seq Scan on p1 p1_1 | |
3400 | 3400 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3401 | - -> Seq Scan on p1_c1 | |
3401 | + -> Seq Scan on p1_c1 p1_2 | |
3402 | 3402 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3403 | - -> Seq Scan on p1_c2 | |
3403 | + -> Seq Scan on p1_c2 p1_3 | |
3404 | 3404 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3405 | - -> Seq Scan on p1_c3 | |
3405 | + -> Seq Scan on p1_c3 p1_4 | |
3406 | 3406 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3407 | - -> Seq Scan on p1_c4 | |
3407 | + -> Seq Scan on p1_c4 p1_5 | |
3408 | 3408 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3409 | - -> Seq Scan on p1_c1_c1 | |
3409 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3410 | 3410 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3411 | - -> Seq Scan on p1_c1_c2 | |
3411 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3412 | 3412 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3413 | - -> Seq Scan on p1_c3_c1 | |
3413 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3414 | 3414 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3415 | - -> Seq Scan on p1_c3_c2 | |
3415 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3416 | 3416 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3417 | 3417 | -> Index Scan using t1_pkey on t1 |
3418 | 3418 | Index Cond: (id < 10) |
@@ -3427,13 +3427,13 @@ EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND | ||
3427 | 3427 | -> Sort |
3428 | 3428 | Sort Key: p1.id |
3429 | 3429 | -> Append |
3430 | - -> Seq Scan on p1 | |
3430 | + -> Seq Scan on p1 p1_1 | |
3431 | 3431 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3432 | - -> Seq Scan on p1_c1 | |
3432 | + -> Seq Scan on p1_c1 p1_2 | |
3433 | 3433 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3434 | - -> Seq Scan on p1_c1_c1 | |
3434 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3435 | 3435 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3436 | - -> Seq Scan on p1_c1_c2 | |
3436 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3437 | 3437 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3438 | 3438 | -> Index Scan using t1_pkey on t1 |
3439 | 3439 | Index Cond: (id < 10) |
@@ -3456,23 +3456,23 @@ error hint: | ||
3456 | 3456 | -> Sort |
3457 | 3457 | Sort Key: p1.id |
3458 | 3458 | -> Append |
3459 | - -> Seq Scan on p1 | |
3459 | + -> Seq Scan on p1 p1_1 | |
3460 | 3460 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3461 | - -> Seq Scan on p1_c1 | |
3461 | + -> Seq Scan on p1_c1 p1_2 | |
3462 | 3462 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3463 | - -> Seq Scan on p1_c2 | |
3463 | + -> Seq Scan on p1_c2 p1_3 | |
3464 | 3464 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3465 | - -> Seq Scan on p1_c3 | |
3465 | + -> Seq Scan on p1_c3 p1_4 | |
3466 | 3466 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3467 | - -> Seq Scan on p1_c4 | |
3467 | + -> Seq Scan on p1_c4 p1_5 | |
3468 | 3468 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3469 | - -> Seq Scan on p1_c1_c1 | |
3469 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3470 | 3470 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3471 | - -> Seq Scan on p1_c1_c2 | |
3471 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3472 | 3472 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3473 | - -> Seq Scan on p1_c3_c1 | |
3473 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3474 | 3474 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3475 | - -> Seq Scan on p1_c3_c2 | |
3475 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3476 | 3476 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3477 | 3477 | -> Index Scan using t1_pkey on t1 |
3478 | 3478 | Index Cond: (id < 10) |
@@ -3487,37 +3487,37 @@ not used hint: | ||
3487 | 3487 | duplication hint: |
3488 | 3488 | error hint: |
3489 | 3489 | |
3490 | - QUERY PLAN | |
3491 | --------------------------------------------------------- | |
3490 | + QUERY PLAN | |
3491 | +------------------------------------------------------------- | |
3492 | 3492 | Merge Join |
3493 | 3493 | Merge Cond: (p1.id = t1.id) |
3494 | 3494 | -> Merge Append |
3495 | 3495 | Sort Key: p1.id |
3496 | - -> Index Scan using p1_pkey on p1 | |
3496 | + -> Index Scan using p1_pkey on p1 p1_1 | |
3497 | 3497 | Index Cond: ((id >= 50) AND (id <= 51)) |
3498 | 3498 | Filter: (ctid = '(1,1)'::tid) |
3499 | - -> Index Scan using p1_c1_pkey on p1_c1 | |
3499 | + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
3500 | 3500 | Index Cond: ((id >= 50) AND (id <= 51)) |
3501 | 3501 | Filter: (ctid = '(1,1)'::tid) |
3502 | - -> Index Scan using p1_c2_pkey on p1_c2 | |
3502 | + -> Index Scan using p1_c2_pkey on p1_c2 p1_3 | |
3503 | 3503 | Index Cond: ((id >= 50) AND (id <= 51)) |
3504 | 3504 | Filter: (ctid = '(1,1)'::tid) |
3505 | - -> Index Scan using p1_c3_pkey on p1_c3 | |
3505 | + -> Index Scan using p1_c3_pkey on p1_c3 p1_4 | |
3506 | 3506 | Index Cond: ((id >= 50) AND (id <= 51)) |
3507 | 3507 | Filter: (ctid = '(1,1)'::tid) |
3508 | - -> Index Scan using p1_c4_pkey on p1_c4 | |
3508 | + -> Index Scan using p1_c4_pkey on p1_c4 p1_5 | |
3509 | 3509 | Index Cond: ((id >= 50) AND (id <= 51)) |
3510 | 3510 | Filter: (ctid = '(1,1)'::tid) |
3511 | - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
3511 | + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 | |
3512 | 3512 | Index Cond: ((id >= 50) AND (id <= 51)) |
3513 | 3513 | Filter: (ctid = '(1,1)'::tid) |
3514 | - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
3514 | + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 | |
3515 | 3515 | Index Cond: ((id >= 50) AND (id <= 51)) |
3516 | 3516 | Filter: (ctid = '(1,1)'::tid) |
3517 | - -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 | |
3517 | + -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 | |
3518 | 3518 | Index Cond: ((id >= 50) AND (id <= 51)) |
3519 | 3519 | Filter: (ctid = '(1,1)'::tid) |
3520 | - -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 | |
3520 | + -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 | |
3521 | 3521 | Index Cond: ((id >= 50) AND (id <= 51)) |
3522 | 3522 | Filter: (ctid = '(1,1)'::tid) |
3523 | 3523 | -> Index Scan using t1_pkey on t1 |
@@ -3540,47 +3540,47 @@ error hint: | ||
3540 | 3540 | -> Sort |
3541 | 3541 | Sort Key: p1.id |
3542 | 3542 | -> Append |
3543 | - -> Bitmap Heap Scan on p1 | |
3543 | + -> Bitmap Heap Scan on p1 p1_1 | |
3544 | 3544 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3545 | 3545 | Filter: (ctid = '(1,1)'::tid) |
3546 | 3546 | -> Bitmap Index Scan on p1_pkey |
3547 | 3547 | Index Cond: ((id >= 50) AND (id <= 51)) |
3548 | - -> Bitmap Heap Scan on p1_c1 | |
3548 | + -> Bitmap Heap Scan on p1_c1 p1_2 | |
3549 | 3549 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3550 | 3550 | Filter: (ctid = '(1,1)'::tid) |
3551 | 3551 | -> Bitmap Index Scan on p1_c1_pkey |
3552 | 3552 | Index Cond: ((id >= 50) AND (id <= 51)) |
3553 | - -> Bitmap Heap Scan on p1_c2 | |
3553 | + -> Bitmap Heap Scan on p1_c2 p1_3 | |
3554 | 3554 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3555 | 3555 | Filter: (ctid = '(1,1)'::tid) |
3556 | 3556 | -> Bitmap Index Scan on p1_c2_pkey |
3557 | 3557 | Index Cond: ((id >= 50) AND (id <= 51)) |
3558 | - -> Bitmap Heap Scan on p1_c3 | |
3558 | + -> Bitmap Heap Scan on p1_c3 p1_4 | |
3559 | 3559 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3560 | 3560 | Filter: (ctid = '(1,1)'::tid) |
3561 | 3561 | -> Bitmap Index Scan on p1_c3_pkey |
3562 | 3562 | Index Cond: ((id >= 50) AND (id <= 51)) |
3563 | - -> Bitmap Heap Scan on p1_c4 | |
3563 | + -> Bitmap Heap Scan on p1_c4 p1_5 | |
3564 | 3564 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3565 | 3565 | Filter: (ctid = '(1,1)'::tid) |
3566 | 3566 | -> Bitmap Index Scan on p1_c4_pkey |
3567 | 3567 | Index Cond: ((id >= 50) AND (id <= 51)) |
3568 | - -> Bitmap Heap Scan on p1_c1_c1 | |
3568 | + -> Bitmap Heap Scan on p1_c1_c1 p1_6 | |
3569 | 3569 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3570 | 3570 | Filter: (ctid = '(1,1)'::tid) |
3571 | 3571 | -> Bitmap Index Scan on p1_c1_c1_pkey |
3572 | 3572 | Index Cond: ((id >= 50) AND (id <= 51)) |
3573 | - -> Bitmap Heap Scan on p1_c1_c2 | |
3573 | + -> Bitmap Heap Scan on p1_c1_c2 p1_7 | |
3574 | 3574 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3575 | 3575 | Filter: (ctid = '(1,1)'::tid) |
3576 | 3576 | -> Bitmap Index Scan on p1_c1_c2_pkey |
3577 | 3577 | Index Cond: ((id >= 50) AND (id <= 51)) |
3578 | - -> Bitmap Heap Scan on p1_c3_c1 | |
3578 | + -> Bitmap Heap Scan on p1_c3_c1 p1_8 | |
3579 | 3579 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3580 | 3580 | Filter: (ctid = '(1,1)'::tid) |
3581 | 3581 | -> Bitmap Index Scan on p1_c3_c1_pkey |
3582 | 3582 | Index Cond: ((id >= 50) AND (id <= 51)) |
3583 | - -> Bitmap Heap Scan on p1_c3_c2 | |
3583 | + -> Bitmap Heap Scan on p1_c3_c2 p1_9 | |
3584 | 3584 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3585 | 3585 | Filter: (ctid = '(1,1)'::tid) |
3586 | 3586 | -> Bitmap Index Scan on p1_c3_c2_pkey |
@@ -3605,31 +3605,31 @@ error hint: | ||
3605 | 3605 | -> Sort |
3606 | 3606 | Sort Key: p1.id |
3607 | 3607 | -> Append |
3608 | - -> Tid Scan on p1 | |
3608 | + -> Tid Scan on p1 p1_1 | |
3609 | 3609 | TID Cond: (ctid = '(1,1)'::tid) |
3610 | 3610 | Filter: ((id >= 50) AND (id <= 51)) |
3611 | - -> Tid Scan on p1_c1 | |
3611 | + -> Tid Scan on p1_c1 p1_2 | |
3612 | 3612 | TID Cond: (ctid = '(1,1)'::tid) |
3613 | 3613 | Filter: ((id >= 50) AND (id <= 51)) |
3614 | - -> Tid Scan on p1_c2 | |
3614 | + -> Tid Scan on p1_c2 p1_3 | |
3615 | 3615 | TID Cond: (ctid = '(1,1)'::tid) |
3616 | 3616 | Filter: ((id >= 50) AND (id <= 51)) |
3617 | - -> Tid Scan on p1_c3 | |
3617 | + -> Tid Scan on p1_c3 p1_4 | |
3618 | 3618 | TID Cond: (ctid = '(1,1)'::tid) |
3619 | 3619 | Filter: ((id >= 50) AND (id <= 51)) |
3620 | - -> Tid Scan on p1_c4 | |
3620 | + -> Tid Scan on p1_c4 p1_5 | |
3621 | 3621 | TID Cond: (ctid = '(1,1)'::tid) |
3622 | 3622 | Filter: ((id >= 50) AND (id <= 51)) |
3623 | - -> Tid Scan on p1_c1_c1 | |
3623 | + -> Tid Scan on p1_c1_c1 p1_6 | |
3624 | 3624 | TID Cond: (ctid = '(1,1)'::tid) |
3625 | 3625 | Filter: ((id >= 50) AND (id <= 51)) |
3626 | - -> Tid Scan on p1_c1_c2 | |
3626 | + -> Tid Scan on p1_c1_c2 p1_7 | |
3627 | 3627 | TID Cond: (ctid = '(1,1)'::tid) |
3628 | 3628 | Filter: ((id >= 50) AND (id <= 51)) |
3629 | - -> Tid Scan on p1_c3_c1 | |
3629 | + -> Tid Scan on p1_c3_c1 p1_8 | |
3630 | 3630 | TID Cond: (ctid = '(1,1)'::tid) |
3631 | 3631 | Filter: ((id >= 50) AND (id <= 51)) |
3632 | - -> Tid Scan on p1_c3_c2 | |
3632 | + -> Tid Scan on p1_c3_c2 p1_9 | |
3633 | 3633 | TID Cond: (ctid = '(1,1)'::tid) |
3634 | 3634 | Filter: ((id >= 50) AND (id <= 51)) |
3635 | 3635 | -> Index Scan using t1_pkey on t1 |
@@ -3650,23 +3650,23 @@ error hint: | ||
3650 | 3650 | Nested Loop |
3651 | 3651 | Join Filter: (p1.id = t1.id) |
3652 | 3652 | -> Append |
3653 | - -> Seq Scan on p1 | |
3653 | + -> Seq Scan on p1 p1_1 | |
3654 | 3654 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3655 | - -> Seq Scan on p1_c1 | |
3655 | + -> Seq Scan on p1_c1 p1_2 | |
3656 | 3656 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3657 | - -> Seq Scan on p1_c2 | |
3657 | + -> Seq Scan on p1_c2 p1_3 | |
3658 | 3658 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3659 | - -> Seq Scan on p1_c3 | |
3659 | + -> Seq Scan on p1_c3 p1_4 | |
3660 | 3660 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3661 | - -> Seq Scan on p1_c4 | |
3661 | + -> Seq Scan on p1_c4 p1_5 | |
3662 | 3662 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3663 | - -> Seq Scan on p1_c1_c1 | |
3663 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3664 | 3664 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3665 | - -> Seq Scan on p1_c1_c2 | |
3665 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3666 | 3666 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3667 | - -> Seq Scan on p1_c3_c1 | |
3667 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3668 | 3668 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3669 | - -> Seq Scan on p1_c3_c2 | |
3669 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3670 | 3670 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3671 | 3671 | -> Materialize |
3672 | 3672 | -> Index Scan using t1_pkey on t1 |
@@ -3689,23 +3689,23 @@ error hint: | ||
3689 | 3689 | -> Sort |
3690 | 3690 | Sort Key: p1.id |
3691 | 3691 | -> Append |
3692 | - -> Seq Scan on p1 | |
3692 | + -> Seq Scan on p1 p1_1 | |
3693 | 3693 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3694 | - -> Seq Scan on p1_c1 | |
3694 | + -> Seq Scan on p1_c1 p1_2 | |
3695 | 3695 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3696 | - -> Seq Scan on p1_c2 | |
3696 | + -> Seq Scan on p1_c2 p1_3 | |
3697 | 3697 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3698 | - -> Seq Scan on p1_c3 | |
3698 | + -> Seq Scan on p1_c3 p1_4 | |
3699 | 3699 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3700 | - -> Seq Scan on p1_c4 | |
3700 | + -> Seq Scan on p1_c4 p1_5 | |
3701 | 3701 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3702 | - -> Seq Scan on p1_c1_c1 | |
3702 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3703 | 3703 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3704 | - -> Seq Scan on p1_c1_c2 | |
3704 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3705 | 3705 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3706 | - -> Seq Scan on p1_c3_c1 | |
3706 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3707 | 3707 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3708 | - -> Seq Scan on p1_c3_c2 | |
3708 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3709 | 3709 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3710 | 3710 | -> Index Scan using t1_pkey on t1 |
3711 | 3711 | Index Cond: (id < 10) |
@@ -3725,23 +3725,23 @@ error hint: | ||
3725 | 3725 | Hash Join |
3726 | 3726 | Hash Cond: (p1.id = t1.id) |
3727 | 3727 | -> Append |
3728 | - -> Seq Scan on p1 | |
3728 | + -> Seq Scan on p1 p1_1 | |
3729 | 3729 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3730 | - -> Seq Scan on p1_c1 | |
3730 | + -> Seq Scan on p1_c1 p1_2 | |
3731 | 3731 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3732 | - -> Seq Scan on p1_c2 | |
3732 | + -> Seq Scan on p1_c2 p1_3 | |
3733 | 3733 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3734 | - -> Seq Scan on p1_c3 | |
3734 | + -> Seq Scan on p1_c3 p1_4 | |
3735 | 3735 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3736 | - -> Seq Scan on p1_c4 | |
3736 | + -> Seq Scan on p1_c4 p1_5 | |
3737 | 3737 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3738 | - -> Seq Scan on p1_c1_c1 | |
3738 | + -> Seq Scan on p1_c1_c1 p1_6 | |
3739 | 3739 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3740 | - -> Seq Scan on p1_c1_c2 | |
3740 | + -> Seq Scan on p1_c1_c2 p1_7 | |
3741 | 3741 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3742 | - -> Seq Scan on p1_c3_c1 | |
3742 | + -> Seq Scan on p1_c3_c1 p1_8 | |
3743 | 3743 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3744 | - -> Seq Scan on p1_c3_c2 | |
3744 | + -> Seq Scan on p1_c3_c2 p1_9 | |
3745 | 3745 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3746 | 3746 | -> Hash |
3747 | 3747 | -> Index Scan using t1_pkey on t1 |
@@ -3765,13 +3765,13 @@ error hint: | ||
3765 | 3765 | -> Sort |
3766 | 3766 | Sort Key: p1.id |
3767 | 3767 | -> Append |
3768 | - -> Seq Scan on p1 | |
3768 | + -> Seq Scan on p1 p1_1 | |
3769 | 3769 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3770 | - -> Seq Scan on p1_c1 | |
3770 | + -> Seq Scan on p1_c1 p1_2 | |
3771 | 3771 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3772 | - -> Seq Scan on p1_c1_c1 | |
3772 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3773 | 3773 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3774 | - -> Seq Scan on p1_c1_c2 | |
3774 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3775 | 3775 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3776 | 3776 | -> Index Scan using t1_pkey on t1 |
3777 | 3777 | Index Cond: (id < 10) |
@@ -3786,22 +3786,22 @@ not used hint: | ||
3786 | 3786 | duplication hint: |
3787 | 3787 | error hint: |
3788 | 3788 | |
3789 | - QUERY PLAN | |
3790 | --------------------------------------------------------- | |
3789 | + QUERY PLAN | |
3790 | +------------------------------------------------------------- | |
3791 | 3791 | Merge Join |
3792 | 3792 | Merge Cond: (p1.id = t1.id) |
3793 | 3793 | -> Merge Append |
3794 | 3794 | Sort Key: p1.id |
3795 | - -> Index Scan using p1_pkey on p1 | |
3795 | + -> Index Scan using p1_pkey on p1 p1_1 | |
3796 | 3796 | Index Cond: ((id >= 50) AND (id <= 51)) |
3797 | 3797 | Filter: (ctid = '(1,1)'::tid) |
3798 | - -> Index Scan using p1_c1_pkey on p1_c1 | |
3798 | + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
3799 | 3799 | Index Cond: ((id >= 50) AND (id <= 51)) |
3800 | 3800 | Filter: (ctid = '(1,1)'::tid) |
3801 | - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
3801 | + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_3 | |
3802 | 3802 | Index Cond: ((id >= 50) AND (id <= 51)) |
3803 | 3803 | Filter: (ctid = '(1,1)'::tid) |
3804 | - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
3804 | + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_4 | |
3805 | 3805 | Index Cond: ((id >= 50) AND (id <= 51)) |
3806 | 3806 | Filter: (ctid = '(1,1)'::tid) |
3807 | 3807 | -> Index Scan using t1_pkey on t1 |
@@ -3824,22 +3824,22 @@ error hint: | ||
3824 | 3824 | -> Sort |
3825 | 3825 | Sort Key: p1.id |
3826 | 3826 | -> Append |
3827 | - -> Bitmap Heap Scan on p1 | |
3827 | + -> Bitmap Heap Scan on p1 p1_1 | |
3828 | 3828 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3829 | 3829 | Filter: (ctid = '(1,1)'::tid) |
3830 | 3830 | -> Bitmap Index Scan on p1_pkey |
3831 | 3831 | Index Cond: ((id >= 50) AND (id <= 51)) |
3832 | - -> Bitmap Heap Scan on p1_c1 | |
3832 | + -> Bitmap Heap Scan on p1_c1 p1_2 | |
3833 | 3833 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3834 | 3834 | Filter: (ctid = '(1,1)'::tid) |
3835 | 3835 | -> Bitmap Index Scan on p1_c1_pkey |
3836 | 3836 | Index Cond: ((id >= 50) AND (id <= 51)) |
3837 | - -> Bitmap Heap Scan on p1_c1_c1 | |
3837 | + -> Bitmap Heap Scan on p1_c1_c1 p1_3 | |
3838 | 3838 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3839 | 3839 | Filter: (ctid = '(1,1)'::tid) |
3840 | 3840 | -> Bitmap Index Scan on p1_c1_c1_pkey |
3841 | 3841 | Index Cond: ((id >= 50) AND (id <= 51)) |
3842 | - -> Bitmap Heap Scan on p1_c1_c2 | |
3842 | + -> Bitmap Heap Scan on p1_c1_c2 p1_4 | |
3843 | 3843 | Recheck Cond: ((id >= 50) AND (id <= 51)) |
3844 | 3844 | Filter: (ctid = '(1,1)'::tid) |
3845 | 3845 | -> Bitmap Index Scan on p1_c1_c2_pkey |
@@ -3864,16 +3864,16 @@ error hint: | ||
3864 | 3864 | -> Sort |
3865 | 3865 | Sort Key: p1.id |
3866 | 3866 | -> Append |
3867 | - -> Tid Scan on p1 | |
3867 | + -> Tid Scan on p1 p1_1 | |
3868 | 3868 | TID Cond: (ctid = '(1,1)'::tid) |
3869 | 3869 | Filter: ((id >= 50) AND (id <= 51)) |
3870 | - -> Tid Scan on p1_c1 | |
3870 | + -> Tid Scan on p1_c1 p1_2 | |
3871 | 3871 | TID Cond: (ctid = '(1,1)'::tid) |
3872 | 3872 | Filter: ((id >= 50) AND (id <= 51)) |
3873 | - -> Tid Scan on p1_c1_c1 | |
3873 | + -> Tid Scan on p1_c1_c1 p1_3 | |
3874 | 3874 | TID Cond: (ctid = '(1,1)'::tid) |
3875 | 3875 | Filter: ((id >= 50) AND (id <= 51)) |
3876 | - -> Tid Scan on p1_c1_c2 | |
3876 | + -> Tid Scan on p1_c1_c2 p1_4 | |
3877 | 3877 | TID Cond: (ctid = '(1,1)'::tid) |
3878 | 3878 | Filter: ((id >= 50) AND (id <= 51)) |
3879 | 3879 | -> Index Scan using t1_pkey on t1 |
@@ -3897,13 +3897,13 @@ error hint: | ||
3897 | 3897 | Index Cond: (id < 10) |
3898 | 3898 | -> Materialize |
3899 | 3899 | -> Append |
3900 | - -> Seq Scan on p1 | |
3900 | + -> Seq Scan on p1 p1_1 | |
3901 | 3901 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3902 | - -> Seq Scan on p1_c1 | |
3902 | + -> Seq Scan on p1_c1 p1_2 | |
3903 | 3903 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3904 | - -> Seq Scan on p1_c1_c1 | |
3904 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3905 | 3905 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3906 | - -> Seq Scan on p1_c1_c2 | |
3906 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3907 | 3907 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3908 | 3908 | (14 rows) |
3909 | 3909 |
@@ -3923,13 +3923,13 @@ error hint: | ||
3923 | 3923 | -> Sort |
3924 | 3924 | Sort Key: p1.id |
3925 | 3925 | -> Append |
3926 | - -> Seq Scan on p1 | |
3926 | + -> Seq Scan on p1 p1_1 | |
3927 | 3927 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3928 | - -> Seq Scan on p1_c1 | |
3928 | + -> Seq Scan on p1_c1 p1_2 | |
3929 | 3929 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3930 | - -> Seq Scan on p1_c1_c1 | |
3930 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3931 | 3931 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3932 | - -> Seq Scan on p1_c1_c2 | |
3932 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3933 | 3933 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3934 | 3934 | -> Index Scan using t1_pkey on t1 |
3935 | 3935 | Index Cond: (id < 10) |
@@ -3952,13 +3952,13 @@ error hint: | ||
3952 | 3952 | Index Cond: (id < 10) |
3953 | 3953 | -> Hash |
3954 | 3954 | -> Append |
3955 | - -> Seq Scan on p1 | |
3955 | + -> Seq Scan on p1 p1_1 | |
3956 | 3956 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3957 | - -> Seq Scan on p1_c1 | |
3957 | + -> Seq Scan on p1_c1 p1_2 | |
3958 | 3958 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3959 | - -> Seq Scan on p1_c1_c1 | |
3959 | + -> Seq Scan on p1_c1_c1 p1_3 | |
3960 | 3960 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3961 | - -> Seq Scan on p1_c1_c2 | |
3961 | + -> Seq Scan on p1_c1_c2 p1_4 | |
3962 | 3962 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
3963 | 3963 | (14 rows) |
3964 | 3964 |
@@ -6515,13 +6515,13 @@ EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = | ||
6515 | 6515 | QUERY PLAN |
6516 | 6516 | ----------------------------------------------------------------------- |
6517 | 6517 | Append |
6518 | - -> Seq Scan on p2 | |
6518 | + -> Seq Scan on p2 p2_1 | |
6519 | 6519 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6520 | - -> Seq Scan on p2_c1 | |
6520 | + -> Seq Scan on p2_c1 p2_2 | |
6521 | 6521 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6522 | - -> Seq Scan on p2_c1_c1 | |
6522 | + -> Seq Scan on p2_c1_c1 p2_3 | |
6523 | 6523 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6524 | - -> Seq Scan on p2_c1_c2 | |
6524 | + -> Seq Scan on p2_c1_c2 p2_4 | |
6525 | 6525 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6526 | 6526 | (9 rows) |
6527 | 6527 |
@@ -6538,19 +6538,19 @@ not used hint: | ||
6538 | 6538 | duplication hint: |
6539 | 6539 | error hint: |
6540 | 6540 | |
6541 | - QUERY PLAN | |
6542 | --------------------------------------------------- | |
6541 | + QUERY PLAN | |
6542 | +------------------------------------------------------- | |
6543 | 6543 | Append |
6544 | - -> Index Scan using p2_pkey on p2 | |
6544 | + -> Index Scan using p2_pkey on p2 p2_1 | |
6545 | 6545 | Index Cond: ((id >= 50) AND (id <= 51)) |
6546 | 6546 | Filter: (ctid = '(1,1)'::tid) |
6547 | - -> Index Scan using p2_c1_pkey on p2_c1 | |
6547 | + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 | |
6548 | 6548 | Index Cond: ((id >= 50) AND (id <= 51)) |
6549 | 6549 | Filter: (ctid = '(1,1)'::tid) |
6550 | - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 | |
6550 | + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 | |
6551 | 6551 | Index Cond: ((id >= 50) AND (id <= 51)) |
6552 | 6552 | Filter: (ctid = '(1,1)'::tid) |
6553 | - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 | |
6553 | + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 | |
6554 | 6554 | Index Cond: ((id >= 50) AND (id <= 51)) |
6555 | 6555 | Filter: (ctid = '(1,1)'::tid) |
6556 | 6556 | (13 rows) |
@@ -6568,19 +6568,19 @@ not used hint: | ||
6568 | 6568 | duplication hint: |
6569 | 6569 | error hint: |
6570 | 6570 | |
6571 | - QUERY PLAN | |
6572 | --------------------------------------------------------- | |
6571 | + QUERY PLAN | |
6572 | +------------------------------------------------------------- | |
6573 | 6573 | Append |
6574 | - -> Index Scan using p2_id_val_idx on p2 | |
6574 | + -> Index Scan using p2_id_val_idx on p2 p2_1 | |
6575 | 6575 | Index Cond: ((id >= 50) AND (id <= 51)) |
6576 | 6576 | Filter: (ctid = '(1,1)'::tid) |
6577 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
6577 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
6578 | 6578 | Index Cond: ((id >= 50) AND (id <= 51)) |
6579 | 6579 | Filter: (ctid = '(1,1)'::tid) |
6580 | - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 | |
6580 | + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_3 | |
6581 | 6581 | Index Cond: ((id >= 50) AND (id <= 51)) |
6582 | 6582 | Filter: (ctid = '(1,1)'::tid) |
6583 | - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 | |
6583 | + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_4 | |
6584 | 6584 | Index Cond: ((id >= 50) AND (id <= 51)) |
6585 | 6585 | Filter: (ctid = '(1,1)'::tid) |
6586 | 6586 | (13 rows) |
@@ -6598,19 +6598,19 @@ not used hint: | ||
6598 | 6598 | duplication hint: |
6599 | 6599 | error hint: |
6600 | 6600 | |
6601 | - QUERY PLAN | |
6602 | --------------------------------------------------------- | |
6601 | + QUERY PLAN | |
6602 | +------------------------------------------------------------- | |
6603 | 6603 | Append |
6604 | - -> Index Scan using p2_val_id_idx on p2 | |
6604 | + -> Index Scan using p2_val_id_idx on p2 p2_1 | |
6605 | 6605 | Index Cond: ((id >= 50) AND (id <= 51)) |
6606 | 6606 | Filter: (ctid = '(1,1)'::tid) |
6607 | - -> Index Scan using p2_c1_val_id_idx on p2_c1 | |
6607 | + -> Index Scan using p2_c1_val_id_idx on p2_c1 p2_2 | |
6608 | 6608 | Index Cond: ((id >= 50) AND (id <= 51)) |
6609 | 6609 | Filter: (ctid = '(1,1)'::tid) |
6610 | - -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1 | |
6610 | + -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1 p2_3 | |
6611 | 6611 | Index Cond: ((id >= 50) AND (id <= 51)) |
6612 | 6612 | Filter: (ctid = '(1,1)'::tid) |
6613 | - -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2 | |
6613 | + -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2 p2_4 | |
6614 | 6614 | Index Cond: ((id >= 50) AND (id <= 51)) |
6615 | 6615 | Filter: (ctid = '(1,1)'::tid) |
6616 | 6616 | (13 rows) |
@@ -6619,23 +6619,23 @@ EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p | ||
6619 | 6619 | QUERY PLAN |
6620 | 6620 | ----------------------------------------------------------------------------------------- |
6621 | 6621 | Append |
6622 | - -> Seq Scan on p2 | |
6622 | + -> Seq Scan on p2 p2_1 | |
6623 | 6623 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6624 | - -> Seq Scan on p2_c1 | |
6624 | + -> Seq Scan on p2_c1 p2_2 | |
6625 | 6625 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6626 | - -> Seq Scan on p2_c2 | |
6626 | + -> Seq Scan on p2_c2 p2_3 | |
6627 | 6627 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6628 | - -> Seq Scan on p2_c3 | |
6628 | + -> Seq Scan on p2_c3 p2_4 | |
6629 | 6629 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6630 | - -> Seq Scan on p2_c4 | |
6630 | + -> Seq Scan on p2_c4 p2_5 | |
6631 | 6631 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6632 | - -> Seq Scan on p2_c1_c1 | |
6632 | + -> Seq Scan on p2_c1_c1 p2_6 | |
6633 | 6633 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6634 | - -> Seq Scan on p2_c1_c2 | |
6634 | + -> Seq Scan on p2_c1_c2 p2_7 | |
6635 | 6635 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6636 | - -> Seq Scan on p2_c3_c1 | |
6636 | + -> Seq Scan on p2_c3_c1 p2_8 | |
6637 | 6637 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6638 | - -> Seq Scan on p2_c3_c2 | |
6638 | + -> Seq Scan on p2_c3_c2 p2_9 | |
6639 | 6639 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6640 | 6640 | (19 rows) |
6641 | 6641 |
@@ -6662,23 +6662,23 @@ error hint: | ||
6662 | 6662 | QUERY PLAN |
6663 | 6663 | ----------------------------------------------------------------------------------------- |
6664 | 6664 | Append |
6665 | - -> Seq Scan on p2 | |
6665 | + -> Seq Scan on p2 p2_1 | |
6666 | 6666 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6667 | - -> Seq Scan on p2_c1 | |
6667 | + -> Seq Scan on p2_c1 p2_2 | |
6668 | 6668 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6669 | - -> Seq Scan on p2_c2 | |
6669 | + -> Seq Scan on p2_c2 p2_3 | |
6670 | 6670 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6671 | - -> Seq Scan on p2_c3 | |
6671 | + -> Seq Scan on p2_c3 p2_4 | |
6672 | 6672 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6673 | - -> Seq Scan on p2_c4 | |
6673 | + -> Seq Scan on p2_c4 p2_5 | |
6674 | 6674 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6675 | - -> Seq Scan on p2_c1_c1 | |
6675 | + -> Seq Scan on p2_c1_c1 p2_6 | |
6676 | 6676 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6677 | - -> Seq Scan on p2_c1_c2 | |
6677 | + -> Seq Scan on p2_c1_c2 p2_7 | |
6678 | 6678 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6679 | - -> Seq Scan on p2_c3_c1 | |
6679 | + -> Seq Scan on p2_c3_c1 p2_8 | |
6680 | 6680 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6681 | - -> Seq Scan on p2_c3_c2 | |
6681 | + -> Seq Scan on p2_c3_c2 p2_9 | |
6682 | 6682 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
6683 | 6683 | (19 rows) |
6684 | 6684 |
@@ -6695,19 +6695,19 @@ not used hint: | ||
6695 | 6695 | duplication hint: |
6696 | 6696 | error hint: |
6697 | 6697 | |
6698 | - QUERY PLAN | |
6699 | --------------------------------------------------- | |
6698 | + QUERY PLAN | |
6699 | +------------------------------------------------------- | |
6700 | 6700 | Append |
6701 | - -> Index Scan using p2_pkey on p2 | |
6701 | + -> Index Scan using p2_pkey on p2 p2_1 | |
6702 | 6702 | Index Cond: ((id >= 50) AND (id <= 51)) |
6703 | 6703 | Filter: (ctid = '(1,1)'::tid) |
6704 | - -> Index Scan using p2_c1_pkey on p2_c1 | |
6704 | + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 | |
6705 | 6705 | Index Cond: ((id >= 50) AND (id <= 51)) |
6706 | 6706 | Filter: (ctid = '(1,1)'::tid) |
6707 | - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 | |
6707 | + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 | |
6708 | 6708 | Index Cond: ((id >= 50) AND (id <= 51)) |
6709 | 6709 | Filter: (ctid = '(1,1)'::tid) |
6710 | - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 | |
6710 | + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 | |
6711 | 6711 | Index Cond: ((id >= 50) AND (id <= 51)) |
6712 | 6712 | Filter: (ctid = '(1,1)'::tid) |
6713 | 6713 | (13 rows) |
@@ -6728,15 +6728,15 @@ error hint: | ||
6728 | 6728 | QUERY PLAN |
6729 | 6729 | ----------------------------------------------------------------------- |
6730 | 6730 | Append |
6731 | - -> Index Scan using p2_id2_val on p2 | |
6731 | + -> Index Scan using p2_id2_val on p2 p2_1 | |
6732 | 6732 | Index Cond: ((id >= 50) AND (id <= 51)) |
6733 | 6733 | Filter: (ctid = '(1,1)'::tid) |
6734 | - -> Index Scan using p2_c1_id2_val on p2_c1 | |
6734 | + -> Index Scan using p2_c1_id2_val on p2_c1 p2_2 | |
6735 | 6735 | Index Cond: ((id >= 50) AND (id <= 51)) |
6736 | 6736 | Filter: (ctid = '(1,1)'::tid) |
6737 | - -> Seq Scan on p2_c1_c1 | |
6737 | + -> Seq Scan on p2_c1_c1 p2_3 | |
6738 | 6738 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6739 | - -> Seq Scan on p2_c1_c2 | |
6739 | + -> Seq Scan on p2_c1_c2 p2_4 | |
6740 | 6740 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6741 | 6741 | (11 rows) |
6742 | 6742 |
@@ -6756,14 +6756,14 @@ error hint: | ||
6756 | 6756 | QUERY PLAN |
6757 | 6757 | ----------------------------------------------------------------------- |
6758 | 6758 | Append |
6759 | - -> Index Scan using p2_val2_id on p2 | |
6759 | + -> Index Scan using p2_val2_id on p2 p2_1 | |
6760 | 6760 | Index Cond: ((id >= 50) AND (id <= 51)) |
6761 | 6761 | Filter: (ctid = '(1,1)'::tid) |
6762 | - -> Seq Scan on p2_c1 | |
6762 | + -> Seq Scan on p2_c1 p2_2 | |
6763 | 6763 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6764 | - -> Seq Scan on p2_c1_c1 | |
6764 | + -> Seq Scan on p2_c1_c1 p2_3 | |
6765 | 6765 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6766 | - -> Seq Scan on p2_c1_c2 | |
6766 | + -> Seq Scan on p2_c1_c2 p2_4 | |
6767 | 6767 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6768 | 6768 | (10 rows) |
6769 | 6769 |
@@ -6780,19 +6780,19 @@ not used hint: | ||
6780 | 6780 | duplication hint: |
6781 | 6781 | error hint: |
6782 | 6782 | |
6783 | - QUERY PLAN | |
6784 | --------------------------------------------------- | |
6783 | + QUERY PLAN | |
6784 | +------------------------------------------------------- | |
6785 | 6785 | Append |
6786 | - -> Index Scan using p2_pkey on p2 | |
6786 | + -> Index Scan using p2_pkey on p2 p2_1 | |
6787 | 6787 | Index Cond: ((id >= 50) AND (id <= 51)) |
6788 | 6788 | Filter: (ctid = '(1,1)'::tid) |
6789 | - -> Index Scan using p2_c1_pkey on p2_c1 | |
6789 | + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 | |
6790 | 6790 | Index Cond: ((id >= 50) AND (id <= 51)) |
6791 | 6791 | Filter: (ctid = '(1,1)'::tid) |
6792 | - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 | |
6792 | + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 | |
6793 | 6793 | Index Cond: ((id >= 50) AND (id <= 51)) |
6794 | 6794 | Filter: (ctid = '(1,1)'::tid) |
6795 | - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 | |
6795 | + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 | |
6796 | 6796 | Index Cond: ((id >= 50) AND (id <= 51)) |
6797 | 6797 | Filter: (ctid = '(1,1)'::tid) |
6798 | 6798 | (13 rows) |
@@ -6813,14 +6813,14 @@ error hint: | ||
6813 | 6813 | QUERY PLAN |
6814 | 6814 | ----------------------------------------------------------------------- |
6815 | 6815 | Append |
6816 | - -> Seq Scan on p2 | |
6816 | + -> Seq Scan on p2 p2_1 | |
6817 | 6817 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6818 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
6818 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
6819 | 6819 | Index Cond: ((id >= 50) AND (id <= 51)) |
6820 | 6820 | Filter: (ctid = '(1,1)'::tid) |
6821 | - -> Seq Scan on p2_c1_c1 | |
6821 | + -> Seq Scan on p2_c1_c1 p2_3 | |
6822 | 6822 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6823 | - -> Seq Scan on p2_c1_c2 | |
6823 | + -> Seq Scan on p2_c1_c2 p2_4 | |
6824 | 6824 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6825 | 6825 | (10 rows) |
6826 | 6826 |
@@ -6840,13 +6840,13 @@ error hint: | ||
6840 | 6840 | QUERY PLAN |
6841 | 6841 | ----------------------------------------------------------------------- |
6842 | 6842 | Append |
6843 | - -> Seq Scan on p2 | |
6843 | + -> Seq Scan on p2 p2_1 | |
6844 | 6844 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6845 | - -> Seq Scan on p2_c1 | |
6845 | + -> Seq Scan on p2_c1 p2_2 | |
6846 | 6846 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6847 | - -> Seq Scan on p2_c1_c1 | |
6847 | + -> Seq Scan on p2_c1_c1 p2_3 | |
6848 | 6848 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6849 | - -> Seq Scan on p2_c1_c2 | |
6849 | + -> Seq Scan on p2_c1_c2 p2_4 | |
6850 | 6850 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6851 | 6851 | (9 rows) |
6852 | 6852 |
@@ -6863,19 +6863,19 @@ not used hint: | ||
6863 | 6863 | duplication hint: |
6864 | 6864 | error hint: |
6865 | 6865 | |
6866 | - QUERY PLAN | |
6867 | --------------------------------------------------- | |
6866 | + QUERY PLAN | |
6867 | +------------------------------------------------------- | |
6868 | 6868 | Append |
6869 | - -> Index Scan using p2_pkey on p2 | |
6869 | + -> Index Scan using p2_pkey on p2 p2_1 | |
6870 | 6870 | Index Cond: ((id >= 50) AND (id <= 51)) |
6871 | 6871 | Filter: (ctid = '(1,1)'::tid) |
6872 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
6872 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
6873 | 6873 | Index Cond: ((id >= 50) AND (id <= 51)) |
6874 | 6874 | Filter: (ctid = '(1,1)'::tid) |
6875 | - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 | |
6875 | + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 | |
6876 | 6876 | Index Cond: ((id >= 50) AND (id <= 51)) |
6877 | 6877 | Filter: (ctid = '(1,1)'::tid) |
6878 | - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 | |
6878 | + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 | |
6879 | 6879 | Index Cond: ((id >= 50) AND (id <= 51)) |
6880 | 6880 | Filter: (ctid = '(1,1)'::tid) |
6881 | 6881 | (13 rows) |
@@ -6893,19 +6893,19 @@ not used hint: | ||
6893 | 6893 | duplication hint: |
6894 | 6894 | error hint: |
6895 | 6895 | |
6896 | - QUERY PLAN | |
6897 | --------------------------------------------------- | |
6896 | + QUERY PLAN | |
6897 | +------------------------------------------------------- | |
6898 | 6898 | Append |
6899 | - -> Index Scan using p2_pkey on p2 | |
6899 | + -> Index Scan using p2_pkey on p2 p2_1 | |
6900 | 6900 | Index Cond: ((id >= 50) AND (id <= 51)) |
6901 | 6901 | Filter: (ctid = '(1,1)'::tid) |
6902 | - -> Index Scan using p2_c1_pkey on p2_c1 | |
6902 | + -> Index Scan using p2_c1_pkey on p2_c1 p2_2 | |
6903 | 6903 | Index Cond: ((id >= 50) AND (id <= 51)) |
6904 | 6904 | Filter: (ctid = '(1,1)'::tid) |
6905 | - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 | |
6905 | + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 | |
6906 | 6906 | Index Cond: ((id >= 50) AND (id <= 51)) |
6907 | 6907 | Filter: (ctid = '(1,1)'::tid) |
6908 | - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 | |
6908 | + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 | |
6909 | 6909 | Index Cond: ((id >= 50) AND (id <= 51)) |
6910 | 6910 | Filter: (ctid = '(1,1)'::tid) |
6911 | 6911 | (13 rows) |
@@ -6926,14 +6926,14 @@ error hint: | ||
6926 | 6926 | QUERY PLAN |
6927 | 6927 | ----------------------------------------------------------------------- |
6928 | 6928 | Append |
6929 | - -> Seq Scan on p2 | |
6929 | + -> Seq Scan on p2 p2_1 | |
6930 | 6930 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6931 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
6931 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
6932 | 6932 | Index Cond: ((id >= 50) AND (id <= 51)) |
6933 | 6933 | Filter: (ctid = '(1,1)'::tid) |
6934 | - -> Seq Scan on p2_c1_c1 | |
6934 | + -> Seq Scan on p2_c1_c1 p2_3 | |
6935 | 6935 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6936 | - -> Seq Scan on p2_c1_c2 | |
6936 | + -> Seq Scan on p2_c1_c2 p2_4 | |
6937 | 6937 | Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid)) |
6938 | 6938 | (10 rows) |
6939 | 6939 |
@@ -6950,19 +6950,19 @@ not used hint: | ||
6950 | 6950 | duplication hint: |
6951 | 6951 | error hint: |
6952 | 6952 | |
6953 | - QUERY PLAN | |
6954 | --------------------------------------------------- | |
6953 | + QUERY PLAN | |
6954 | +------------------------------------------------------- | |
6955 | 6955 | Append |
6956 | - -> Index Scan using p2_pkey on p2 | |
6956 | + -> Index Scan using p2_pkey on p2 p2_1 | |
6957 | 6957 | Index Cond: ((id >= 50) AND (id <= 51)) |
6958 | 6958 | Filter: (ctid = '(1,1)'::tid) |
6959 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
6959 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
6960 | 6960 | Index Cond: ((id >= 50) AND (id <= 51)) |
6961 | 6961 | Filter: (ctid = '(1,1)'::tid) |
6962 | - -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 | |
6962 | + -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2_3 | |
6963 | 6963 | Index Cond: ((id >= 50) AND (id <= 51)) |
6964 | 6964 | Filter: (ctid = '(1,1)'::tid) |
6965 | - -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 | |
6965 | + -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2_4 | |
6966 | 6966 | Index Cond: ((id >= 50) AND (id <= 51)) |
6967 | 6967 | Filter: (ctid = '(1,1)'::tid) |
6968 | 6968 | (13 rows) |
@@ -6988,31 +6988,31 @@ error hint: | ||
6988 | 6988 | QUERY PLAN |
6989 | 6989 | ------------------------------------------------------------------- |
6990 | 6990 | Append |
6991 | - -> Index Scan using p2_val_idx on p2 | |
6991 | + -> Index Scan using p2_val_idx on p2 p2_1 | |
6992 | 6992 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
6993 | 6993 | Filter: (ctid = '(1,1)'::tid) |
6994 | - -> Index Scan using p2_c1_val_idx on p2_c1 | |
6994 | + -> Index Scan using p2_c1_val_idx on p2_c1 p2_2 | |
6995 | 6995 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
6996 | 6996 | Filter: (ctid = '(1,1)'::tid) |
6997 | - -> Index Scan using p2_c2_val_idx on p2_c2 | |
6997 | + -> Index Scan using p2_c2_val_idx on p2_c2 p2_3 | |
6998 | 6998 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
6999 | 6999 | Filter: (ctid = '(1,1)'::tid) |
7000 | - -> Index Scan using p2_c3_val_idx on p2_c3 | |
7000 | + -> Index Scan using p2_c3_val_idx on p2_c3 p2_4 | |
7001 | 7001 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7002 | 7002 | Filter: (ctid = '(1,1)'::tid) |
7003 | - -> Index Scan using p2_c4_val_idx on p2_c4 | |
7003 | + -> Index Scan using p2_c4_val_idx on p2_c4 p2_5 | |
7004 | 7004 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7005 | 7005 | Filter: (ctid = '(1,1)'::tid) |
7006 | - -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 | |
7006 | + -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 p2_6 | |
7007 | 7007 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7008 | 7008 | Filter: (ctid = '(1,1)'::tid) |
7009 | - -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 | |
7009 | + -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 p2_7 | |
7010 | 7010 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7011 | 7011 | Filter: (ctid = '(1,1)'::tid) |
7012 | - -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 | |
7012 | + -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 p2_8 | |
7013 | 7013 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7014 | 7014 | Filter: (ctid = '(1,1)'::tid) |
7015 | - -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 | |
7015 | + -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 p2_9 | |
7016 | 7016 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7017 | 7017 | Filter: (ctid = '(1,1)'::tid) |
7018 | 7018 | (28 rows) |
@@ -7038,23 +7038,23 @@ error hint: | ||
7038 | 7038 | QUERY PLAN |
7039 | 7039 | ----------------------------------------------------------------------------------------- |
7040 | 7040 | Append |
7041 | - -> Seq Scan on p2 | |
7041 | + -> Seq Scan on p2 p2_1 | |
7042 | 7042 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7043 | - -> Seq Scan on p2_c1 | |
7043 | + -> Seq Scan on p2_c1 p2_2 | |
7044 | 7044 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7045 | - -> Seq Scan on p2_c2 | |
7045 | + -> Seq Scan on p2_c2 p2_3 | |
7046 | 7046 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7047 | - -> Seq Scan on p2_c3 | |
7047 | + -> Seq Scan on p2_c3 p2_4 | |
7048 | 7048 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7049 | - -> Seq Scan on p2_c4 | |
7049 | + -> Seq Scan on p2_c4 p2_5 | |
7050 | 7050 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7051 | - -> Seq Scan on p2_c1_c1 | |
7051 | + -> Seq Scan on p2_c1_c1 p2_6 | |
7052 | 7052 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7053 | - -> Seq Scan on p2_c1_c2 | |
7053 | + -> Seq Scan on p2_c1_c2 p2_7 | |
7054 | 7054 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7055 | - -> Seq Scan on p2_c3_c1 | |
7055 | + -> Seq Scan on p2_c3_c1 p2_8 | |
7056 | 7056 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7057 | - -> Seq Scan on p2_c3_c2 | |
7057 | + -> Seq Scan on p2_c3_c2 p2_9 | |
7058 | 7058 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7059 | 7059 | (19 rows) |
7060 | 7060 |
@@ -7079,23 +7079,23 @@ error hint: | ||
7079 | 7079 | QUERY PLAN |
7080 | 7080 | ----------------------------------------------------------------------------------------- |
7081 | 7081 | Append |
7082 | - -> Seq Scan on p2 | |
7082 | + -> Seq Scan on p2 p2_1 | |
7083 | 7083 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7084 | - -> Seq Scan on p2_c1 | |
7084 | + -> Seq Scan on p2_c1 p2_2 | |
7085 | 7085 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7086 | - -> Seq Scan on p2_c2 | |
7086 | + -> Seq Scan on p2_c2 p2_3 | |
7087 | 7087 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7088 | - -> Seq Scan on p2_c3 | |
7088 | + -> Seq Scan on p2_c3 p2_4 | |
7089 | 7089 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7090 | - -> Seq Scan on p2_c4 | |
7090 | + -> Seq Scan on p2_c4 p2_5 | |
7091 | 7091 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7092 | - -> Seq Scan on p2_c1_c1 | |
7092 | + -> Seq Scan on p2_c1_c1 p2_6 | |
7093 | 7093 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7094 | - -> Seq Scan on p2_c1_c2 | |
7094 | + -> Seq Scan on p2_c1_c2 p2_7 | |
7095 | 7095 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7096 | - -> Seq Scan on p2_c3_c1 | |
7096 | + -> Seq Scan on p2_c3_c1 p2_8 | |
7097 | 7097 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7098 | - -> Seq Scan on p2_c3_c2 | |
7098 | + -> Seq Scan on p2_c3_c2 p2_9 | |
7099 | 7099 | Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid)) |
7100 | 7100 | (19 rows) |
7101 | 7101 |
@@ -7120,31 +7120,31 @@ error hint: | ||
7120 | 7120 | QUERY PLAN |
7121 | 7121 | ------------------------------------------------------------------- |
7122 | 7122 | Append |
7123 | - -> Index Scan using p2_val_idx on p2 | |
7123 | + -> Index Scan using p2_val_idx on p2 p2_1 | |
7124 | 7124 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7125 | 7125 | Filter: (ctid = '(1,1)'::tid) |
7126 | - -> Index Scan using p2_c1_val_idx on p2_c1 | |
7126 | + -> Index Scan using p2_c1_val_idx on p2_c1 p2_2 | |
7127 | 7127 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7128 | 7128 | Filter: (ctid = '(1,1)'::tid) |
7129 | - -> Index Scan using p2_c2_val_idx on p2_c2 | |
7129 | + -> Index Scan using p2_c2_val_idx on p2_c2 p2_3 | |
7130 | 7130 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7131 | 7131 | Filter: (ctid = '(1,1)'::tid) |
7132 | - -> Index Scan using p2_c3_val_idx on p2_c3 | |
7132 | + -> Index Scan using p2_c3_val_idx on p2_c3 p2_4 | |
7133 | 7133 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7134 | 7134 | Filter: (ctid = '(1,1)'::tid) |
7135 | - -> Index Scan using p2_c4_val_idx on p2_c4 | |
7135 | + -> Index Scan using p2_c4_val_idx on p2_c4 p2_5 | |
7136 | 7136 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7137 | 7137 | Filter: (ctid = '(1,1)'::tid) |
7138 | - -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 | |
7138 | + -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 p2_6 | |
7139 | 7139 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7140 | 7140 | Filter: (ctid = '(1,1)'::tid) |
7141 | - -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 | |
7141 | + -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 p2_7 | |
7142 | 7142 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7143 | 7143 | Filter: (ctid = '(1,1)'::tid) |
7144 | - -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 | |
7144 | + -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 p2_8 | |
7145 | 7145 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7146 | 7146 | Filter: (ctid = '(1,1)'::tid) |
7147 | - -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 | |
7147 | + -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 p2_9 | |
7148 | 7148 | Index Cond: ((val >= '50'::text) AND (val <= '51'::text)) |
7149 | 7149 | Filter: (ctid = '(1,1)'::tid) |
7150 | 7150 | (28 rows) |
@@ -7404,26 +7404,26 @@ error hint: | ||
7404 | 7404 | |
7405 | 7405 | -- Inheritance |
7406 | 7406 | EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1; |
7407 | - QUERY PLAN | |
7408 | ----------------------------- | |
7407 | + QUERY PLAN | |
7408 | +--------------------------------- | |
7409 | 7409 | Append |
7410 | - -> Seq Scan on p1 | |
7410 | + -> Seq Scan on p1 p1_1 | |
7411 | 7411 | Filter: (val = 1) |
7412 | - -> Seq Scan on p1_c1 | |
7412 | + -> Seq Scan on p1_c1 p1_2 | |
7413 | 7413 | Filter: (val = 1) |
7414 | - -> Seq Scan on p1_c2 | |
7414 | + -> Seq Scan on p1_c2 p1_3 | |
7415 | 7415 | Filter: (val = 1) |
7416 | - -> Seq Scan on p1_c3 | |
7416 | + -> Seq Scan on p1_c3 p1_4 | |
7417 | 7417 | Filter: (val = 1) |
7418 | - -> Seq Scan on p1_c4 | |
7418 | + -> Seq Scan on p1_c4 p1_5 | |
7419 | 7419 | Filter: (val = 1) |
7420 | - -> Seq Scan on p1_c1_c1 | |
7420 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7421 | 7421 | Filter: (val = 1) |
7422 | - -> Seq Scan on p1_c1_c2 | |
7422 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7423 | 7423 | Filter: (val = 1) |
7424 | - -> Seq Scan on p1_c3_c1 | |
7424 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7425 | 7425 | Filter: (val = 1) |
7426 | - -> Seq Scan on p1_c3_c2 | |
7426 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7427 | 7427 | Filter: (val = 1) |
7428 | 7428 | (19 rows) |
7429 | 7429 |
@@ -7445,26 +7445,26 @@ not used hint: | ||
7445 | 7445 | duplication hint: |
7446 | 7446 | error hint: |
7447 | 7447 | |
7448 | - QUERY PLAN | |
7449 | ----------------------------- | |
7448 | + QUERY PLAN | |
7449 | +--------------------------------- | |
7450 | 7450 | Append |
7451 | - -> Seq Scan on p1 | |
7451 | + -> Seq Scan on p1 p1_1 | |
7452 | 7452 | Filter: (val = 1) |
7453 | - -> Seq Scan on p1_c1 | |
7453 | + -> Seq Scan on p1_c1 p1_2 | |
7454 | 7454 | Filter: (val = 1) |
7455 | - -> Seq Scan on p1_c2 | |
7455 | + -> Seq Scan on p1_c2 p1_3 | |
7456 | 7456 | Filter: (val = 1) |
7457 | - -> Seq Scan on p1_c3 | |
7457 | + -> Seq Scan on p1_c3 p1_4 | |
7458 | 7458 | Filter: (val = 1) |
7459 | - -> Seq Scan on p1_c4 | |
7459 | + -> Seq Scan on p1_c4 p1_5 | |
7460 | 7460 | Filter: (val = 1) |
7461 | - -> Seq Scan on p1_c1_c1 | |
7461 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7462 | 7462 | Filter: (val = 1) |
7463 | - -> Seq Scan on p1_c1_c2 | |
7463 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7464 | 7464 | Filter: (val = 1) |
7465 | - -> Seq Scan on p1_c3_c1 | |
7465 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7466 | 7466 | Filter: (val = 1) |
7467 | - -> Seq Scan on p1_c3_c2 | |
7467 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7468 | 7468 | Filter: (val = 1) |
7469 | 7469 | (19 rows) |
7470 | 7470 |
@@ -7486,26 +7486,26 @@ not used hint: | ||
7486 | 7486 | duplication hint: |
7487 | 7487 | error hint: |
7488 | 7488 | |
7489 | - QUERY PLAN | |
7490 | --------------------------------------------------- | |
7489 | + QUERY PLAN | |
7490 | +------------------------------------------------------- | |
7491 | 7491 | Append |
7492 | - -> Index Scan using p1_val2 on p1 | |
7492 | + -> Index Scan using p1_val2 on p1 p1_1 | |
7493 | 7493 | Index Cond: (val = 1) |
7494 | - -> Index Scan using p1_c1_val2 on p1_c1 | |
7494 | + -> Index Scan using p1_c1_val2 on p1_c1 p1_2 | |
7495 | 7495 | Index Cond: (val = 1) |
7496 | - -> Index Scan using p1_c2_val2 on p1_c2 | |
7496 | + -> Index Scan using p1_c2_val2 on p1_c2 p1_3 | |
7497 | 7497 | Index Cond: (val = 1) |
7498 | - -> Index Scan using p1_c3_val2 on p1_c3 | |
7498 | + -> Index Scan using p1_c3_val2 on p1_c3 p1_4 | |
7499 | 7499 | Index Cond: (val = 1) |
7500 | - -> Index Scan using p1_c4_val2 on p1_c4 | |
7500 | + -> Index Scan using p1_c4_val2 on p1_c4 p1_5 | |
7501 | 7501 | Index Cond: (val = 1) |
7502 | - -> Index Scan using p1_c1_c1_val2 on p1_c1_c1 | |
7502 | + -> Index Scan using p1_c1_c1_val2 on p1_c1_c1 p1_6 | |
7503 | 7503 | Index Cond: (val = 1) |
7504 | - -> Index Scan using p1_c1_c2_val2 on p1_c1_c2 | |
7504 | + -> Index Scan using p1_c1_c2_val2 on p1_c1_c2 p1_7 | |
7505 | 7505 | Index Cond: (val = 1) |
7506 | - -> Index Scan using p1_c3_c1_val2 on p1_c3_c1 | |
7506 | + -> Index Scan using p1_c3_c1_val2 on p1_c3_c1 p1_8 | |
7507 | 7507 | Index Cond: (val = 1) |
7508 | - -> Index Scan using p1_c3_c2_val2 on p1_c3_c2 | |
7508 | + -> Index Scan using p1_c3_c2_val2 on p1_c3_c2 p1_9 | |
7509 | 7509 | Index Cond: (val = 1) |
7510 | 7510 | (19 rows) |
7511 | 7511 |
@@ -7527,26 +7527,26 @@ not used hint: | ||
7527 | 7527 | duplication hint: |
7528 | 7528 | error hint: |
7529 | 7529 | |
7530 | - QUERY PLAN | |
7531 | ----------------------------- | |
7530 | + QUERY PLAN | |
7531 | +--------------------------------- | |
7532 | 7532 | Append |
7533 | - -> Seq Scan on p1 | |
7533 | + -> Seq Scan on p1 p1_1 | |
7534 | 7534 | Filter: (val = 1) |
7535 | - -> Seq Scan on p1_c1 | |
7535 | + -> Seq Scan on p1_c1 p1_2 | |
7536 | 7536 | Filter: (val = 1) |
7537 | - -> Seq Scan on p1_c2 | |
7537 | + -> Seq Scan on p1_c2 p1_3 | |
7538 | 7538 | Filter: (val = 1) |
7539 | - -> Seq Scan on p1_c3 | |
7539 | + -> Seq Scan on p1_c3 p1_4 | |
7540 | 7540 | Filter: (val = 1) |
7541 | - -> Seq Scan on p1_c4 | |
7541 | + -> Seq Scan on p1_c4 p1_5 | |
7542 | 7542 | Filter: (val = 1) |
7543 | - -> Seq Scan on p1_c1_c1 | |
7543 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7544 | 7544 | Filter: (val = 1) |
7545 | - -> Seq Scan on p1_c1_c2 | |
7545 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7546 | 7546 | Filter: (val = 1) |
7547 | - -> Seq Scan on p1_c3_c1 | |
7547 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7548 | 7548 | Filter: (val = 1) |
7549 | - -> Seq Scan on p1_c3_c2 | |
7549 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7550 | 7550 | Filter: (val = 1) |
7551 | 7551 | (19 rows) |
7552 | 7552 |
@@ -7568,26 +7568,26 @@ not used hint: | ||
7568 | 7568 | duplication hint: |
7569 | 7569 | error hint: |
7570 | 7570 | |
7571 | - QUERY PLAN | |
7572 | ----------------------------- | |
7571 | + QUERY PLAN | |
7572 | +--------------------------------- | |
7573 | 7573 | Append |
7574 | - -> Seq Scan on p1 | |
7574 | + -> Seq Scan on p1 p1_1 | |
7575 | 7575 | Filter: (val = 1) |
7576 | - -> Seq Scan on p1_c1 | |
7576 | + -> Seq Scan on p1_c1 p1_2 | |
7577 | 7577 | Filter: (val = 1) |
7578 | - -> Seq Scan on p1_c2 | |
7578 | + -> Seq Scan on p1_c2 p1_3 | |
7579 | 7579 | Filter: (val = 1) |
7580 | - -> Seq Scan on p1_c3 | |
7580 | + -> Seq Scan on p1_c3 p1_4 | |
7581 | 7581 | Filter: (val = 1) |
7582 | - -> Seq Scan on p1_c4 | |
7582 | + -> Seq Scan on p1_c4 p1_5 | |
7583 | 7583 | Filter: (val = 1) |
7584 | - -> Seq Scan on p1_c1_c1 | |
7584 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7585 | 7585 | Filter: (val = 1) |
7586 | - -> Seq Scan on p1_c1_c2 | |
7586 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7587 | 7587 | Filter: (val = 1) |
7588 | - -> Seq Scan on p1_c3_c1 | |
7588 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7589 | 7589 | Filter: (val = 1) |
7590 | - -> Seq Scan on p1_c3_c2 | |
7590 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7591 | 7591 | Filter: (val = 1) |
7592 | 7592 | (19 rows) |
7593 | 7593 |
@@ -7609,26 +7609,26 @@ not used hint: | ||
7609 | 7609 | duplication hint: |
7610 | 7610 | error hint: |
7611 | 7611 | |
7612 | - QUERY PLAN | |
7613 | ----------------------------- | |
7612 | + QUERY PLAN | |
7613 | +--------------------------------- | |
7614 | 7614 | Append |
7615 | - -> Seq Scan on p1 | |
7615 | + -> Seq Scan on p1 p1_1 | |
7616 | 7616 | Filter: (val = 1) |
7617 | - -> Seq Scan on p1_c1 | |
7617 | + -> Seq Scan on p1_c1 p1_2 | |
7618 | 7618 | Filter: (val = 1) |
7619 | - -> Seq Scan on p1_c2 | |
7619 | + -> Seq Scan on p1_c2 p1_3 | |
7620 | 7620 | Filter: (val = 1) |
7621 | - -> Seq Scan on p1_c3 | |
7621 | + -> Seq Scan on p1_c3 p1_4 | |
7622 | 7622 | Filter: (val = 1) |
7623 | - -> Seq Scan on p1_c4 | |
7623 | + -> Seq Scan on p1_c4 p1_5 | |
7624 | 7624 | Filter: (val = 1) |
7625 | - -> Seq Scan on p1_c1_c1 | |
7625 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7626 | 7626 | Filter: (val = 1) |
7627 | - -> Seq Scan on p1_c1_c2 | |
7627 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7628 | 7628 | Filter: (val = 1) |
7629 | - -> Seq Scan on p1_c3_c1 | |
7629 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7630 | 7630 | Filter: (val = 1) |
7631 | - -> Seq Scan on p1_c3_c2 | |
7631 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7632 | 7632 | Filter: (val = 1) |
7633 | 7633 | (19 rows) |
7634 | 7634 |
@@ -7650,26 +7650,26 @@ not used hint: | ||
7650 | 7650 | duplication hint: |
7651 | 7651 | error hint: |
7652 | 7652 | |
7653 | - QUERY PLAN | |
7654 | -------------------------------------------------------- | |
7653 | + QUERY PLAN | |
7654 | +------------------------------------------------------------ | |
7655 | 7655 | Append |
7656 | - -> Index Only Scan using p1_val2 on p1 | |
7656 | + -> Index Only Scan using p1_val2 on p1 p1_1 | |
7657 | 7657 | Index Cond: (val = 1) |
7658 | - -> Index Only Scan using p1_c1_val2 on p1_c1 | |
7658 | + -> Index Only Scan using p1_c1_val2 on p1_c1 p1_2 | |
7659 | 7659 | Index Cond: (val = 1) |
7660 | - -> Index Only Scan using p1_c2_val2 on p1_c2 | |
7660 | + -> Index Only Scan using p1_c2_val2 on p1_c2 p1_3 | |
7661 | 7661 | Index Cond: (val = 1) |
7662 | - -> Index Only Scan using p1_c3_val2 on p1_c3 | |
7662 | + -> Index Only Scan using p1_c3_val2 on p1_c3 p1_4 | |
7663 | 7663 | Index Cond: (val = 1) |
7664 | - -> Index Only Scan using p1_c4_val2 on p1_c4 | |
7664 | + -> Index Only Scan using p1_c4_val2 on p1_c4 p1_5 | |
7665 | 7665 | Index Cond: (val = 1) |
7666 | - -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1 | |
7666 | + -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1 p1_6 | |
7667 | 7667 | Index Cond: (val = 1) |
7668 | - -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2 | |
7668 | + -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2 p1_7 | |
7669 | 7669 | Index Cond: (val = 1) |
7670 | - -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1 | |
7670 | + -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1 p1_8 | |
7671 | 7671 | Index Cond: (val = 1) |
7672 | - -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2 | |
7672 | + -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2 p1_9 | |
7673 | 7673 | Index Cond: (val = 1) |
7674 | 7674 | (19 rows) |
7675 | 7675 |
@@ -7691,26 +7691,26 @@ not used hint: | ||
7691 | 7691 | duplication hint: |
7692 | 7692 | error hint: |
7693 | 7693 | |
7694 | - QUERY PLAN | |
7695 | ----------------------------- | |
7694 | + QUERY PLAN | |
7695 | +--------------------------------- | |
7696 | 7696 | Append |
7697 | - -> Seq Scan on p1 | |
7697 | + -> Seq Scan on p1 p1_1 | |
7698 | 7698 | Filter: (val = 1) |
7699 | - -> Seq Scan on p1_c1 | |
7699 | + -> Seq Scan on p1_c1 p1_2 | |
7700 | 7700 | Filter: (val = 1) |
7701 | - -> Seq Scan on p1_c2 | |
7701 | + -> Seq Scan on p1_c2 p1_3 | |
7702 | 7702 | Filter: (val = 1) |
7703 | - -> Seq Scan on p1_c3 | |
7703 | + -> Seq Scan on p1_c3 p1_4 | |
7704 | 7704 | Filter: (val = 1) |
7705 | - -> Seq Scan on p1_c4 | |
7705 | + -> Seq Scan on p1_c4 p1_5 | |
7706 | 7706 | Filter: (val = 1) |
7707 | - -> Seq Scan on p1_c1_c1 | |
7707 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7708 | 7708 | Filter: (val = 1) |
7709 | - -> Seq Scan on p1_c1_c2 | |
7709 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7710 | 7710 | Filter: (val = 1) |
7711 | - -> Seq Scan on p1_c3_c1 | |
7711 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7712 | 7712 | Filter: (val = 1) |
7713 | - -> Seq Scan on p1_c3_c2 | |
7713 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7714 | 7714 | Filter: (val = 1) |
7715 | 7715 | (19 rows) |
7716 | 7716 |
@@ -7732,26 +7732,26 @@ not used hint: | ||
7732 | 7732 | duplication hint: |
7733 | 7733 | error hint: |
7734 | 7734 | |
7735 | - QUERY PLAN | |
7736 | ----------------------------- | |
7735 | + QUERY PLAN | |
7736 | +--------------------------------- | |
7737 | 7737 | Append |
7738 | - -> Seq Scan on p1 | |
7738 | + -> Seq Scan on p1 p1_1 | |
7739 | 7739 | Filter: (val = 1) |
7740 | - -> Seq Scan on p1_c1 | |
7740 | + -> Seq Scan on p1_c1 p1_2 | |
7741 | 7741 | Filter: (val = 1) |
7742 | - -> Seq Scan on p1_c2 | |
7742 | + -> Seq Scan on p1_c2 p1_3 | |
7743 | 7743 | Filter: (val = 1) |
7744 | - -> Seq Scan on p1_c3 | |
7744 | + -> Seq Scan on p1_c3 p1_4 | |
7745 | 7745 | Filter: (val = 1) |
7746 | - -> Seq Scan on p1_c4 | |
7746 | + -> Seq Scan on p1_c4 p1_5 | |
7747 | 7747 | Filter: (val = 1) |
7748 | - -> Seq Scan on p1_c1_c1 | |
7748 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7749 | 7749 | Filter: (val = 1) |
7750 | - -> Seq Scan on p1_c1_c2 | |
7750 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7751 | 7751 | Filter: (val = 1) |
7752 | - -> Seq Scan on p1_c3_c1 | |
7752 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7753 | 7753 | Filter: (val = 1) |
7754 | - -> Seq Scan on p1_c3_c2 | |
7754 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7755 | 7755 | Filter: (val = 1) |
7756 | 7756 | (19 rows) |
7757 | 7757 |
@@ -7773,26 +7773,26 @@ not used hint: | ||
7773 | 7773 | duplication hint: |
7774 | 7774 | error hint: |
7775 | 7775 | |
7776 | - QUERY PLAN | |
7777 | ----------------------------- | |
7776 | + QUERY PLAN | |
7777 | +--------------------------------- | |
7778 | 7778 | Append |
7779 | - -> Seq Scan on p1 | |
7779 | + -> Seq Scan on p1 p1_1 | |
7780 | 7780 | Filter: (val = 1) |
7781 | - -> Seq Scan on p1_c1 | |
7781 | + -> Seq Scan on p1_c1 p1_2 | |
7782 | 7782 | Filter: (val = 1) |
7783 | - -> Seq Scan on p1_c2 | |
7783 | + -> Seq Scan on p1_c2 p1_3 | |
7784 | 7784 | Filter: (val = 1) |
7785 | - -> Seq Scan on p1_c3 | |
7785 | + -> Seq Scan on p1_c3 p1_4 | |
7786 | 7786 | Filter: (val = 1) |
7787 | - -> Seq Scan on p1_c4 | |
7787 | + -> Seq Scan on p1_c4 p1_5 | |
7788 | 7788 | Filter: (val = 1) |
7789 | - -> Seq Scan on p1_c1_c1 | |
7789 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7790 | 7790 | Filter: (val = 1) |
7791 | - -> Seq Scan on p1_c1_c2 | |
7791 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7792 | 7792 | Filter: (val = 1) |
7793 | - -> Seq Scan on p1_c3_c1 | |
7793 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7794 | 7794 | Filter: (val = 1) |
7795 | - -> Seq Scan on p1_c3_c2 | |
7795 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7796 | 7796 | Filter: (val = 1) |
7797 | 7797 | (19 rows) |
7798 | 7798 |
@@ -7817,39 +7817,39 @@ error hint: | ||
7817 | 7817 | QUERY PLAN |
7818 | 7818 | ------------------------------------------------ |
7819 | 7819 | Append |
7820 | - -> Bitmap Heap Scan on p1 | |
7820 | + -> Bitmap Heap Scan on p1 p1_1 | |
7821 | 7821 | Recheck Cond: (val = 1) |
7822 | 7822 | -> Bitmap Index Scan on p1_val2 |
7823 | 7823 | Index Cond: (val = 1) |
7824 | - -> Bitmap Heap Scan on p1_c1 | |
7824 | + -> Bitmap Heap Scan on p1_c1 p1_2 | |
7825 | 7825 | Recheck Cond: (val = 1) |
7826 | 7826 | -> Bitmap Index Scan on p1_c1_val2 |
7827 | 7827 | Index Cond: (val = 1) |
7828 | - -> Bitmap Heap Scan on p1_c2 | |
7828 | + -> Bitmap Heap Scan on p1_c2 p1_3 | |
7829 | 7829 | Recheck Cond: (val = 1) |
7830 | 7830 | -> Bitmap Index Scan on p1_c2_val2 |
7831 | 7831 | Index Cond: (val = 1) |
7832 | - -> Bitmap Heap Scan on p1_c3 | |
7832 | + -> Bitmap Heap Scan on p1_c3 p1_4 | |
7833 | 7833 | Recheck Cond: (val = 1) |
7834 | 7834 | -> Bitmap Index Scan on p1_c3_val2 |
7835 | 7835 | Index Cond: (val = 1) |
7836 | - -> Bitmap Heap Scan on p1_c4 | |
7836 | + -> Bitmap Heap Scan on p1_c4 p1_5 | |
7837 | 7837 | Recheck Cond: (val = 1) |
7838 | 7838 | -> Bitmap Index Scan on p1_c4_val2 |
7839 | 7839 | Index Cond: (val = 1) |
7840 | - -> Bitmap Heap Scan on p1_c1_c1 | |
7840 | + -> Bitmap Heap Scan on p1_c1_c1 p1_6 | |
7841 | 7841 | Recheck Cond: (val = 1) |
7842 | 7842 | -> Bitmap Index Scan on p1_c1_c1_val2 |
7843 | 7843 | Index Cond: (val = 1) |
7844 | - -> Bitmap Heap Scan on p1_c1_c2 | |
7844 | + -> Bitmap Heap Scan on p1_c1_c2 p1_7 | |
7845 | 7845 | Recheck Cond: (val = 1) |
7846 | 7846 | -> Bitmap Index Scan on p1_c1_c2_val2 |
7847 | 7847 | Index Cond: (val = 1) |
7848 | - -> Bitmap Heap Scan on p1_c3_c1 | |
7848 | + -> Bitmap Heap Scan on p1_c3_c1 p1_8 | |
7849 | 7849 | Recheck Cond: (val = 1) |
7850 | 7850 | -> Bitmap Index Scan on p1_c3_c1_val2 |
7851 | 7851 | Index Cond: (val = 1) |
7852 | - -> Bitmap Heap Scan on p1_c3_c2 | |
7852 | + -> Bitmap Heap Scan on p1_c3_c2 p1_9 | |
7853 | 7853 | Recheck Cond: (val = 1) |
7854 | 7854 | -> Bitmap Index Scan on p1_c3_c2_val2 |
7855 | 7855 | Index Cond: (val = 1) |
@@ -7873,26 +7873,26 @@ not used hint: | ||
7873 | 7873 | duplication hint: |
7874 | 7874 | error hint: |
7875 | 7875 | |
7876 | - QUERY PLAN | |
7877 | ----------------------------- | |
7876 | + QUERY PLAN | |
7877 | +--------------------------------- | |
7878 | 7878 | Append |
7879 | - -> Seq Scan on p1 | |
7879 | + -> Seq Scan on p1 p1_1 | |
7880 | 7880 | Filter: (val = 1) |
7881 | - -> Seq Scan on p1_c1 | |
7881 | + -> Seq Scan on p1_c1 p1_2 | |
7882 | 7882 | Filter: (val = 1) |
7883 | - -> Seq Scan on p1_c2 | |
7883 | + -> Seq Scan on p1_c2 p1_3 | |
7884 | 7884 | Filter: (val = 1) |
7885 | - -> Seq Scan on p1_c3 | |
7885 | + -> Seq Scan on p1_c3 p1_4 | |
7886 | 7886 | Filter: (val = 1) |
7887 | - -> Seq Scan on p1_c4 | |
7887 | + -> Seq Scan on p1_c4 p1_5 | |
7888 | 7888 | Filter: (val = 1) |
7889 | - -> Seq Scan on p1_c1_c1 | |
7889 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7890 | 7890 | Filter: (val = 1) |
7891 | - -> Seq Scan on p1_c1_c2 | |
7891 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7892 | 7892 | Filter: (val = 1) |
7893 | - -> Seq Scan on p1_c3_c1 | |
7893 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7894 | 7894 | Filter: (val = 1) |
7895 | - -> Seq Scan on p1_c3_c2 | |
7895 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7896 | 7896 | Filter: (val = 1) |
7897 | 7897 | (19 rows) |
7898 | 7898 |
@@ -7914,26 +7914,26 @@ not used hint: | ||
7914 | 7914 | duplication hint: |
7915 | 7915 | error hint: |
7916 | 7916 | |
7917 | - QUERY PLAN | |
7918 | ----------------------------- | |
7917 | + QUERY PLAN | |
7918 | +--------------------------------- | |
7919 | 7919 | Append |
7920 | - -> Seq Scan on p1 | |
7920 | + -> Seq Scan on p1 p1_1 | |
7921 | 7921 | Filter: (val = 1) |
7922 | - -> Seq Scan on p1_c1 | |
7922 | + -> Seq Scan on p1_c1 p1_2 | |
7923 | 7923 | Filter: (val = 1) |
7924 | - -> Seq Scan on p1_c2 | |
7924 | + -> Seq Scan on p1_c2 p1_3 | |
7925 | 7925 | Filter: (val = 1) |
7926 | - -> Seq Scan on p1_c3 | |
7926 | + -> Seq Scan on p1_c3 p1_4 | |
7927 | 7927 | Filter: (val = 1) |
7928 | - -> Seq Scan on p1_c4 | |
7928 | + -> Seq Scan on p1_c4 p1_5 | |
7929 | 7929 | Filter: (val = 1) |
7930 | - -> Seq Scan on p1_c1_c1 | |
7930 | + -> Seq Scan on p1_c1_c1 p1_6 | |
7931 | 7931 | Filter: (val = 1) |
7932 | - -> Seq Scan on p1_c1_c2 | |
7932 | + -> Seq Scan on p1_c1_c2 p1_7 | |
7933 | 7933 | Filter: (val = 1) |
7934 | - -> Seq Scan on p1_c3_c1 | |
7934 | + -> Seq Scan on p1_c3_c1 p1_8 | |
7935 | 7935 | Filter: (val = 1) |
7936 | - -> Seq Scan on p1_c3_c2 | |
7936 | + -> Seq Scan on p1_c3_c2 p1_9 | |
7937 | 7937 | Filter: (val = 1) |
7938 | 7938 | (19 rows) |
7939 | 7939 |
@@ -8392,47 +8392,47 @@ SELECT relname, seq_scan, idx_scan FROM pg_stat_user_tables WHERE schemaname = ' | ||
8392 | 8392 | EXPLAIN (COSTS off) SELECT val FROM p1 WHERE val < 1000 |
8393 | 8393 | UNION ALL |
8394 | 8394 | SELECT val::int FROM p2 WHERE id < 1000; |
8395 | - QUERY PLAN | |
8396 | ------------------------------------------ | |
8395 | + QUERY PLAN | |
8396 | +--------------------------------------------- | |
8397 | 8397 | Append |
8398 | 8398 | -> Append |
8399 | - -> Seq Scan on p1 | |
8399 | + -> Seq Scan on p1 p1_1 | |
8400 | 8400 | Filter: (val < 1000) |
8401 | - -> Seq Scan on p1_c1 | |
8401 | + -> Seq Scan on p1_c1 p1_2 | |
8402 | 8402 | Filter: (val < 1000) |
8403 | - -> Seq Scan on p1_c2 | |
8403 | + -> Seq Scan on p1_c2 p1_3 | |
8404 | 8404 | Filter: (val < 1000) |
8405 | - -> Seq Scan on p1_c3 | |
8405 | + -> Seq Scan on p1_c3 p1_4 | |
8406 | 8406 | Filter: (val < 1000) |
8407 | - -> Seq Scan on p1_c4 | |
8407 | + -> Seq Scan on p1_c4 p1_5 | |
8408 | 8408 | Filter: (val < 1000) |
8409 | - -> Seq Scan on p1_c1_c1 | |
8409 | + -> Seq Scan on p1_c1_c1 p1_6 | |
8410 | 8410 | Filter: (val < 1000) |
8411 | - -> Seq Scan on p1_c1_c2 | |
8411 | + -> Seq Scan on p1_c1_c2 p1_7 | |
8412 | 8412 | Filter: (val < 1000) |
8413 | - -> Seq Scan on p1_c3_c1 | |
8413 | + -> Seq Scan on p1_c3_c1 p1_8 | |
8414 | 8414 | Filter: (val < 1000) |
8415 | - -> Seq Scan on p1_c3_c2 | |
8415 | + -> Seq Scan on p1_c3_c2 p1_9 | |
8416 | 8416 | Filter: (val < 1000) |
8417 | 8417 | -> Result |
8418 | 8418 | -> Append |
8419 | - -> Seq Scan on p2 | |
8419 | + -> Seq Scan on p2 p2_1 | |
8420 | 8420 | Filter: (id < 1000) |
8421 | - -> Seq Scan on p2_c1 | |
8421 | + -> Seq Scan on p2_c1 p2_2 | |
8422 | 8422 | Filter: (id < 1000) |
8423 | - -> Seq Scan on p2_c2 | |
8423 | + -> Seq Scan on p2_c2 p2_3 | |
8424 | 8424 | Filter: (id < 1000) |
8425 | - -> Seq Scan on p2_c3 | |
8425 | + -> Seq Scan on p2_c3 p2_4 | |
8426 | 8426 | Filter: (id < 1000) |
8427 | - -> Seq Scan on p2_c4 | |
8427 | + -> Seq Scan on p2_c4 p2_5 | |
8428 | 8428 | Filter: (id < 1000) |
8429 | - -> Seq Scan on p2_c1_c1 | |
8429 | + -> Seq Scan on p2_c1_c1 p2_6 | |
8430 | 8430 | Filter: (id < 1000) |
8431 | - -> Seq Scan on p2_c1_c2 | |
8431 | + -> Seq Scan on p2_c1_c2 p2_7 | |
8432 | 8432 | Filter: (id < 1000) |
8433 | - -> Seq Scan on p2_c3_c1 | |
8433 | + -> Seq Scan on p2_c3_c1 p2_8 | |
8434 | 8434 | Filter: (id < 1000) |
8435 | - -> Seq Scan on p2_c3_c2 | |
8435 | + -> Seq Scan on p2_c3_c2 p2_9 | |
8436 | 8436 | Filter: (id < 1000) |
8437 | 8437 | (40 rows) |
8438 | 8438 |
@@ -8456,47 +8456,47 @@ not used hint: | ||
8456 | 8456 | duplication hint: |
8457 | 8457 | error hint: |
8458 | 8458 | |
8459 | - QUERY PLAN | |
8460 | --------------------------------------------------------- | |
8459 | + QUERY PLAN | |
8460 | +------------------------------------------------------------- | |
8461 | 8461 | Append |
8462 | 8462 | -> Append |
8463 | - -> Index Scan using p1_val3 on p1 | |
8463 | + -> Index Scan using p1_val3 on p1 p1_1 | |
8464 | 8464 | Index Cond: (val < 1000) |
8465 | - -> Index Scan using p1_c1_val3 on p1_c1 | |
8465 | + -> Index Scan using p1_c1_val3 on p1_c1 p1_2 | |
8466 | 8466 | Index Cond: (val < 1000) |
8467 | - -> Index Scan using p1_c2_val3 on p1_c2 | |
8467 | + -> Index Scan using p1_c2_val3 on p1_c2 p1_3 | |
8468 | 8468 | Index Cond: (val < 1000) |
8469 | - -> Index Scan using p1_c3_val3 on p1_c3 | |
8469 | + -> Index Scan using p1_c3_val3 on p1_c3 p1_4 | |
8470 | 8470 | Index Cond: (val < 1000) |
8471 | - -> Index Scan using p1_c4_val3 on p1_c4 | |
8471 | + -> Index Scan using p1_c4_val3 on p1_c4 p1_5 | |
8472 | 8472 | Index Cond: (val < 1000) |
8473 | - -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 | |
8473 | + -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 p1_6 | |
8474 | 8474 | Index Cond: (val < 1000) |
8475 | - -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 | |
8475 | + -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 p1_7 | |
8476 | 8476 | Index Cond: (val < 1000) |
8477 | - -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 | |
8477 | + -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 p1_8 | |
8478 | 8478 | Index Cond: (val < 1000) |
8479 | - -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 | |
8479 | + -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 p1_9 | |
8480 | 8480 | Index Cond: (val < 1000) |
8481 | 8481 | -> Result |
8482 | 8482 | -> Append |
8483 | - -> Seq Scan on p2 | |
8483 | + -> Seq Scan on p2 p2_1 | |
8484 | 8484 | Filter: (id < 1000) |
8485 | - -> Seq Scan on p2_c1 | |
8485 | + -> Seq Scan on p2_c1 p2_2 | |
8486 | 8486 | Filter: (id < 1000) |
8487 | - -> Seq Scan on p2_c2 | |
8487 | + -> Seq Scan on p2_c2 p2_3 | |
8488 | 8488 | Filter: (id < 1000) |
8489 | - -> Seq Scan on p2_c3 | |
8489 | + -> Seq Scan on p2_c3 p2_4 | |
8490 | 8490 | Filter: (id < 1000) |
8491 | - -> Seq Scan on p2_c4 | |
8491 | + -> Seq Scan on p2_c4 p2_5 | |
8492 | 8492 | Filter: (id < 1000) |
8493 | - -> Seq Scan on p2_c1_c1 | |
8493 | + -> Seq Scan on p2_c1_c1 p2_6 | |
8494 | 8494 | Filter: (id < 1000) |
8495 | - -> Seq Scan on p2_c1_c2 | |
8495 | + -> Seq Scan on p2_c1_c2 p2_7 | |
8496 | 8496 | Filter: (id < 1000) |
8497 | - -> Seq Scan on p2_c3_c1 | |
8497 | + -> Seq Scan on p2_c3_c1 p2_8 | |
8498 | 8498 | Filter: (id < 1000) |
8499 | - -> Seq Scan on p2_c3_c2 | |
8499 | + -> Seq Scan on p2_c3_c2 p2_9 | |
8500 | 8500 | Filter: (id < 1000) |
8501 | 8501 | (40 rows) |
8502 | 8502 |
@@ -8530,47 +8530,47 @@ not used hint: | ||
8530 | 8530 | duplication hint: |
8531 | 8531 | error hint: |
8532 | 8532 | |
8533 | - QUERY PLAN | |
8534 | --------------------------------------------------------------------- | |
8533 | + QUERY PLAN | |
8534 | +------------------------------------------------------------------------- | |
8535 | 8535 | Append |
8536 | 8536 | -> Append |
8537 | - -> Index Scan using p1_val3 on p1 | |
8537 | + -> Index Scan using p1_val3 on p1 p1_1 | |
8538 | 8538 | Index Cond: (val < 1000) |
8539 | - -> Index Scan using p1_c1_val3 on p1_c1 | |
8539 | + -> Index Scan using p1_c1_val3 on p1_c1 p1_2 | |
8540 | 8540 | Index Cond: (val < 1000) |
8541 | - -> Index Scan using p1_c2_val3 on p1_c2 | |
8541 | + -> Index Scan using p1_c2_val3 on p1_c2 p1_3 | |
8542 | 8542 | Index Cond: (val < 1000) |
8543 | - -> Index Scan using p1_c3_val3 on p1_c3 | |
8543 | + -> Index Scan using p1_c3_val3 on p1_c3 p1_4 | |
8544 | 8544 | Index Cond: (val < 1000) |
8545 | - -> Index Scan using p1_c4_val3 on p1_c4 | |
8545 | + -> Index Scan using p1_c4_val3 on p1_c4 p1_5 | |
8546 | 8546 | Index Cond: (val < 1000) |
8547 | - -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 | |
8547 | + -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 p1_6 | |
8548 | 8548 | Index Cond: (val < 1000) |
8549 | - -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 | |
8549 | + -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 p1_7 | |
8550 | 8550 | Index Cond: (val < 1000) |
8551 | - -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 | |
8551 | + -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 p1_8 | |
8552 | 8552 | Index Cond: (val < 1000) |
8553 | - -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 | |
8553 | + -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 p1_9 | |
8554 | 8554 | Index Cond: (val < 1000) |
8555 | 8555 | -> Result |
8556 | 8556 | -> Append |
8557 | - -> Index Scan using p2_id_val_idx on p2 | |
8557 | + -> Index Scan using p2_id_val_idx on p2 p2_1 | |
8558 | 8558 | Index Cond: (id < 1000) |
8559 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
8559 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
8560 | 8560 | Index Cond: (id < 1000) |
8561 | - -> Index Scan using p2_c2_id_val_idx on p2_c2 | |
8561 | + -> Index Scan using p2_c2_id_val_idx on p2_c2 p2_3 | |
8562 | 8562 | Index Cond: (id < 1000) |
8563 | - -> Index Scan using p2_c3_id_val_idx on p2_c3 | |
8563 | + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 | |
8564 | 8564 | Index Cond: (id < 1000) |
8565 | - -> Index Scan using p2_c4_id_val_idx on p2_c4 | |
8565 | + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 | |
8566 | 8566 | Index Cond: (id < 1000) |
8567 | - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 | |
8567 | + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 | |
8568 | 8568 | Index Cond: (id < 1000) |
8569 | - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 | |
8569 | + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 | |
8570 | 8570 | Index Cond: (id < 1000) |
8571 | - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 | |
8571 | + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 | |
8572 | 8572 | Index Cond: (id < 1000) |
8573 | - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 | |
8573 | + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 | |
8574 | 8574 | Index Cond: (id < 1000) |
8575 | 8575 | (40 rows) |
8576 | 8576 |
@@ -8578,49 +8578,49 @@ error hint: | ||
8578 | 8578 | EXPLAIN (COSTS off) SELECT val FROM p1 WHERE val < 1000 |
8579 | 8579 | UNION |
8580 | 8580 | SELECT val::int FROM p2 WHERE id < 1000; |
8581 | - QUERY PLAN | |
8582 | ------------------------------------------------ | |
8581 | + QUERY PLAN | |
8582 | +--------------------------------------------------- | |
8583 | 8583 | HashAggregate |
8584 | 8584 | Group Key: p1.val |
8585 | 8585 | -> Append |
8586 | 8586 | -> Append |
8587 | - -> Seq Scan on p1 | |
8587 | + -> Seq Scan on p1 p1_1 | |
8588 | 8588 | Filter: (val < 1000) |
8589 | - -> Seq Scan on p1_c1 | |
8589 | + -> Seq Scan on p1_c1 p1_2 | |
8590 | 8590 | Filter: (val < 1000) |
8591 | - -> Seq Scan on p1_c2 | |
8591 | + -> Seq Scan on p1_c2 p1_3 | |
8592 | 8592 | Filter: (val < 1000) |
8593 | - -> Seq Scan on p1_c3 | |
8593 | + -> Seq Scan on p1_c3 p1_4 | |
8594 | 8594 | Filter: (val < 1000) |
8595 | - -> Seq Scan on p1_c4 | |
8595 | + -> Seq Scan on p1_c4 p1_5 | |
8596 | 8596 | Filter: (val < 1000) |
8597 | - -> Seq Scan on p1_c1_c1 | |
8597 | + -> Seq Scan on p1_c1_c1 p1_6 | |
8598 | 8598 | Filter: (val < 1000) |
8599 | - -> Seq Scan on p1_c1_c2 | |
8599 | + -> Seq Scan on p1_c1_c2 p1_7 | |
8600 | 8600 | Filter: (val < 1000) |
8601 | - -> Seq Scan on p1_c3_c1 | |
8601 | + -> Seq Scan on p1_c3_c1 p1_8 | |
8602 | 8602 | Filter: (val < 1000) |
8603 | - -> Seq Scan on p1_c3_c2 | |
8603 | + -> Seq Scan on p1_c3_c2 p1_9 | |
8604 | 8604 | Filter: (val < 1000) |
8605 | 8605 | -> Result |
8606 | 8606 | -> Append |
8607 | - -> Seq Scan on p2 | |
8607 | + -> Seq Scan on p2 p2_1 | |
8608 | 8608 | Filter: (id < 1000) |
8609 | - -> Seq Scan on p2_c1 | |
8609 | + -> Seq Scan on p2_c1 p2_2 | |
8610 | 8610 | Filter: (id < 1000) |
8611 | - -> Seq Scan on p2_c2 | |
8611 | + -> Seq Scan on p2_c2 p2_3 | |
8612 | 8612 | Filter: (id < 1000) |
8613 | - -> Seq Scan on p2_c3 | |
8613 | + -> Seq Scan on p2_c3 p2_4 | |
8614 | 8614 | Filter: (id < 1000) |
8615 | - -> Seq Scan on p2_c4 | |
8615 | + -> Seq Scan on p2_c4 p2_5 | |
8616 | 8616 | Filter: (id < 1000) |
8617 | - -> Seq Scan on p2_c1_c1 | |
8617 | + -> Seq Scan on p2_c1_c1 p2_6 | |
8618 | 8618 | Filter: (id < 1000) |
8619 | - -> Seq Scan on p2_c1_c2 | |
8619 | + -> Seq Scan on p2_c1_c2 p2_7 | |
8620 | 8620 | Filter: (id < 1000) |
8621 | - -> Seq Scan on p2_c3_c1 | |
8621 | + -> Seq Scan on p2_c3_c1 p2_8 | |
8622 | 8622 | Filter: (id < 1000) |
8623 | - -> Seq Scan on p2_c3_c2 | |
8623 | + -> Seq Scan on p2_c3_c2 p2_9 | |
8624 | 8624 | Filter: (id < 1000) |
8625 | 8625 | (42 rows) |
8626 | 8626 |
@@ -8644,49 +8644,49 @@ not used hint: | ||
8644 | 8644 | duplication hint: |
8645 | 8645 | error hint: |
8646 | 8646 | |
8647 | - QUERY PLAN | |
8648 | --------------------------------------------------------------------------- | |
8647 | + QUERY PLAN | |
8648 | +------------------------------------------------------------------------------- | |
8649 | 8649 | HashAggregate |
8650 | 8650 | Group Key: p1.val |
8651 | 8651 | -> Append |
8652 | 8652 | -> Append |
8653 | - -> Seq Scan on p1 | |
8653 | + -> Seq Scan on p1 p1_1 | |
8654 | 8654 | Filter: (val < 1000) |
8655 | - -> Seq Scan on p1_c1 | |
8655 | + -> Seq Scan on p1_c1 p1_2 | |
8656 | 8656 | Filter: (val < 1000) |
8657 | - -> Seq Scan on p1_c2 | |
8657 | + -> Seq Scan on p1_c2 p1_3 | |
8658 | 8658 | Filter: (val < 1000) |
8659 | - -> Seq Scan on p1_c3 | |
8659 | + -> Seq Scan on p1_c3 p1_4 | |
8660 | 8660 | Filter: (val < 1000) |
8661 | - -> Seq Scan on p1_c4 | |
8661 | + -> Seq Scan on p1_c4 p1_5 | |
8662 | 8662 | Filter: (val < 1000) |
8663 | - -> Seq Scan on p1_c1_c1 | |
8663 | + -> Seq Scan on p1_c1_c1 p1_6 | |
8664 | 8664 | Filter: (val < 1000) |
8665 | - -> Seq Scan on p1_c1_c2 | |
8665 | + -> Seq Scan on p1_c1_c2 p1_7 | |
8666 | 8666 | Filter: (val < 1000) |
8667 | - -> Seq Scan on p1_c3_c1 | |
8667 | + -> Seq Scan on p1_c3_c1 p1_8 | |
8668 | 8668 | Filter: (val < 1000) |
8669 | - -> Seq Scan on p1_c3_c2 | |
8669 | + -> Seq Scan on p1_c3_c2 p1_9 | |
8670 | 8670 | Filter: (val < 1000) |
8671 | 8671 | -> Result |
8672 | 8672 | -> Append |
8673 | - -> Index Scan using p2_id_val_idx on p2 | |
8673 | + -> Index Scan using p2_id_val_idx on p2 p2_1 | |
8674 | 8674 | Index Cond: (id < 1000) |
8675 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
8675 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
8676 | 8676 | Index Cond: (id < 1000) |
8677 | - -> Index Scan using p2_c2_id_val_idx on p2_c2 | |
8677 | + -> Index Scan using p2_c2_id_val_idx on p2_c2 p2_3 | |
8678 | 8678 | Index Cond: (id < 1000) |
8679 | - -> Index Scan using p2_c3_id_val_idx on p2_c3 | |
8679 | + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 | |
8680 | 8680 | Index Cond: (id < 1000) |
8681 | - -> Index Scan using p2_c4_id_val_idx on p2_c4 | |
8681 | + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 | |
8682 | 8682 | Index Cond: (id < 1000) |
8683 | - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 | |
8683 | + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 | |
8684 | 8684 | Index Cond: (id < 1000) |
8685 | - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 | |
8685 | + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 | |
8686 | 8686 | Index Cond: (id < 1000) |
8687 | - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 | |
8687 | + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 | |
8688 | 8688 | Index Cond: (id < 1000) |
8689 | - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 | |
8689 | + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 | |
8690 | 8690 | Index Cond: (id < 1000) |
8691 | 8691 | (42 rows) |
8692 | 8692 |
@@ -8720,49 +8720,49 @@ not used hint: | ||
8720 | 8720 | duplication hint: |
8721 | 8721 | error hint: |
8722 | 8722 | |
8723 | - QUERY PLAN | |
8724 | --------------------------------------------------------------------------- | |
8723 | + QUERY PLAN | |
8724 | +------------------------------------------------------------------------------- | |
8725 | 8725 | HashAggregate |
8726 | 8726 | Group Key: p1.val |
8727 | 8727 | -> Append |
8728 | 8728 | -> Append |
8729 | - -> Index Scan using p1_val3 on p1 | |
8729 | + -> Index Scan using p1_val3 on p1 p1_1 | |
8730 | 8730 | Index Cond: (val < 1000) |
8731 | - -> Index Scan using p1_c1_val3 on p1_c1 | |
8731 | + -> Index Scan using p1_c1_val3 on p1_c1 p1_2 | |
8732 | 8732 | Index Cond: (val < 1000) |
8733 | - -> Index Scan using p1_c2_val3 on p1_c2 | |
8733 | + -> Index Scan using p1_c2_val3 on p1_c2 p1_3 | |
8734 | 8734 | Index Cond: (val < 1000) |
8735 | - -> Index Scan using p1_c3_val3 on p1_c3 | |
8735 | + -> Index Scan using p1_c3_val3 on p1_c3 p1_4 | |
8736 | 8736 | Index Cond: (val < 1000) |
8737 | - -> Index Scan using p1_c4_val3 on p1_c4 | |
8737 | + -> Index Scan using p1_c4_val3 on p1_c4 p1_5 | |
8738 | 8738 | Index Cond: (val < 1000) |
8739 | - -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 | |
8739 | + -> Index Scan using p1_c1_c1_val3 on p1_c1_c1 p1_6 | |
8740 | 8740 | Index Cond: (val < 1000) |
8741 | - -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 | |
8741 | + -> Index Scan using p1_c1_c2_val3 on p1_c1_c2 p1_7 | |
8742 | 8742 | Index Cond: (val < 1000) |
8743 | - -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 | |
8743 | + -> Index Scan using p1_c3_c1_val3 on p1_c3_c1 p1_8 | |
8744 | 8744 | Index Cond: (val < 1000) |
8745 | - -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 | |
8745 | + -> Index Scan using p1_c3_c2_val3 on p1_c3_c2 p1_9 | |
8746 | 8746 | Index Cond: (val < 1000) |
8747 | 8747 | -> Result |
8748 | 8748 | -> Append |
8749 | - -> Index Scan using p2_id_val_idx on p2 | |
8749 | + -> Index Scan using p2_id_val_idx on p2 p2_1 | |
8750 | 8750 | Index Cond: (id < 1000) |
8751 | - -> Index Scan using p2_c1_id_val_idx on p2_c1 | |
8751 | + -> Index Scan using p2_c1_id_val_idx on p2_c1 p2_2 | |
8752 | 8752 | Index Cond: (id < 1000) |
8753 | - -> Index Scan using p2_c2_id_val_idx on p2_c2 | |
8753 | + -> Index Scan using p2_c2_id_val_idx on p2_c2 p2_3 | |
8754 | 8754 | Index Cond: (id < 1000) |
8755 | - -> Index Scan using p2_c3_id_val_idx on p2_c3 | |
8755 | + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 | |
8756 | 8756 | Index Cond: (id < 1000) |
8757 | - -> Index Scan using p2_c4_id_val_idx on p2_c4 | |
8757 | + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 | |
8758 | 8758 | Index Cond: (id < 1000) |
8759 | - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 | |
8759 | + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 | |
8760 | 8760 | Index Cond: (id < 1000) |
8761 | - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 | |
8761 | + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 | |
8762 | 8762 | Index Cond: (id < 1000) |
8763 | - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 | |
8763 | + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 | |
8764 | 8764 | Index Cond: (id < 1000) |
8765 | - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 | |
8765 | + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 | |
8766 | 8766 | Index Cond: (id < 1000) |
8767 | 8767 | (42 rows) |
8768 | 8768 |
@@ -3261,6 +3261,7 @@ SELECT name, setting FROM settings; | ||
3261 | 3261 | enable_gathermerge | on |
3262 | 3262 | enable_hashagg | on |
3263 | 3263 | enable_hashjoin | on |
3264 | + enable_incremental_sort | on | |
3264 | 3265 | enable_indexonlyscan | on |
3265 | 3266 | enable_indexscan | on |
3266 | 3267 | enable_material | on |
@@ -3274,7 +3275,7 @@ SELECT name, setting FROM settings; | ||
3274 | 3275 | enable_seqscan | on |
3275 | 3276 | enable_sort | on |
3276 | 3277 | enable_tidscan | on |
3277 | -(46 rows) | |
3278 | +(47 rows) | |
3278 | 3279 | |
3279 | 3280 | SET pg_hint_plan.parse_messages TO error; |
3280 | 3281 | /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/ |
@@ -3317,6 +3318,7 @@ SELECT name, setting FROM settings; | ||
3317 | 3318 | enable_gathermerge | on |
3318 | 3319 | enable_hashagg | on |
3319 | 3320 | enable_hashjoin | on |
3321 | + enable_incremental_sort | on | |
3320 | 3322 | enable_indexonlyscan | on |
3321 | 3323 | enable_indexscan | on |
3322 | 3324 | enable_material | on |
@@ -3330,7 +3332,7 @@ SELECT name, setting FROM settings; | ||
3330 | 3332 | enable_seqscan | on |
3331 | 3333 | enable_sort | on |
3332 | 3334 | enable_tidscan | on |
3333 | -(46 rows) | |
3335 | +(47 rows) | |
3334 | 3336 | |
3335 | 3337 | /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)*/ |
3336 | 3338 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1; |
@@ -3392,6 +3394,7 @@ SELECT name, setting FROM settings; | ||
3392 | 3394 | enable_gathermerge | on |
3393 | 3395 | enable_hashagg | on |
3394 | 3396 | enable_hashjoin | on |
3397 | + enable_incremental_sort | on | |
3395 | 3398 | enable_indexonlyscan | on |
3396 | 3399 | enable_indexscan | on |
3397 | 3400 | enable_material | on |
@@ -3405,7 +3408,7 @@ SELECT name, setting FROM settings; | ||
3405 | 3408 | enable_seqscan | on |
3406 | 3409 | enable_sort | on |
3407 | 3410 | enable_tidscan | on |
3408 | -(46 rows) | |
3411 | +(47 rows) | |
3409 | 3412 | |
3410 | 3413 | SET pg_hint_plan.parse_messages TO error; |
3411 | 3414 | /*+Set(enable_seqscan off)Set(geqo_threshold 100)SeqScan(t1)MergeJoin(t1 t2)NestLoop(t1 t1)*/ |
@@ -3448,6 +3451,7 @@ SELECT name, setting FROM settings; | ||
3448 | 3451 | enable_gathermerge | on |
3449 | 3452 | enable_hashagg | on |
3450 | 3453 | enable_hashjoin | on |
3454 | + enable_incremental_sort | on | |
3451 | 3455 | enable_indexonlyscan | on |
3452 | 3456 | enable_indexscan | on |
3453 | 3457 | enable_material | on |
@@ -3461,7 +3465,7 @@ SELECT name, setting FROM settings; | ||
3461 | 3465 | enable_seqscan | on |
3462 | 3466 | enable_sort | on |
3463 | 3467 | enable_tidscan | on |
3464 | -(46 rows) | |
3468 | +(47 rows) | |
3465 | 3469 | |
3466 | 3470 | EXPLAIN (COSTS false) EXECUTE p1; |
3467 | 3471 | QUERY PLAN |
@@ -3512,6 +3516,7 @@ SELECT name, setting FROM settings; | ||
3512 | 3516 | enable_gathermerge | on |
3513 | 3517 | enable_hashagg | on |
3514 | 3518 | enable_hashjoin | on |
3519 | + enable_incremental_sort | on | |
3515 | 3520 | enable_indexonlyscan | on |
3516 | 3521 | enable_indexscan | on |
3517 | 3522 | enable_material | on |
@@ -3525,7 +3530,7 @@ SELECT name, setting FROM settings; | ||
3525 | 3530 | enable_seqscan | on |
3526 | 3531 | enable_sort | on |
3527 | 3532 | enable_tidscan | on |
3528 | -(46 rows) | |
3533 | +(47 rows) | |
3529 | 3534 | |
3530 | 3535 | SET pg_hint_plan.parse_messages TO error; |
3531 | 3536 | EXPLAIN (COSTS false) EXECUTE p2; |
@@ -3599,6 +3604,7 @@ SELECT name, setting FROM settings; | ||
3599 | 3604 | enable_gathermerge | on |
3600 | 3605 | enable_hashagg | on |
3601 | 3606 | enable_hashjoin | on |
3607 | + enable_incremental_sort | on | |
3602 | 3608 | enable_indexonlyscan | on |
3603 | 3609 | enable_indexscan | on |
3604 | 3610 | enable_material | on |
@@ -3612,7 +3618,7 @@ SELECT name, setting FROM settings; | ||
3612 | 3618 | enable_seqscan | on |
3613 | 3619 | enable_sort | on |
3614 | 3620 | enable_tidscan | on |
3615 | -(46 rows) | |
3621 | +(47 rows) | |
3616 | 3622 | |
3617 | 3623 | -- No. A-12-1-4 |
3618 | 3624 | -- No. A-12-2-4 |
@@ -3652,6 +3658,7 @@ SELECT name, setting FROM settings; | ||
3652 | 3658 | enable_gathermerge | on |
3653 | 3659 | enable_hashagg | on |
3654 | 3660 | enable_hashjoin | on |
3661 | + enable_incremental_sort | on | |
3655 | 3662 | enable_indexonlyscan | on |
3656 | 3663 | enable_indexscan | on |
3657 | 3664 | enable_material | on |
@@ -3665,7 +3672,7 @@ SELECT name, setting FROM settings; | ||
3665 | 3672 | enable_seqscan | on |
3666 | 3673 | enable_sort | on |
3667 | 3674 | enable_tidscan | on |
3668 | -(46 rows) | |
3675 | +(47 rows) | |
3669 | 3676 | |
3670 | 3677 | SET pg_hint_plan.parse_messages TO error; |
3671 | 3678 | EXPLAIN (COSTS false) EXECUTE p2; |
@@ -3717,6 +3724,7 @@ SELECT name, setting FROM settings; | ||
3717 | 3724 | enable_gathermerge | on |
3718 | 3725 | enable_hashagg | on |
3719 | 3726 | enable_hashjoin | on |
3727 | + enable_incremental_sort | on | |
3720 | 3728 | enable_indexonlyscan | on |
3721 | 3729 | enable_indexscan | on |
3722 | 3730 | enable_material | on |
@@ -3730,7 +3738,7 @@ SELECT name, setting FROM settings; | ||
3730 | 3738 | enable_seqscan | on |
3731 | 3739 | enable_sort | on |
3732 | 3740 | enable_tidscan | on |
3733 | -(46 rows) | |
3741 | +(47 rows) | |
3734 | 3742 | |
3735 | 3743 | DEALLOCATE p1; |
3736 | 3744 | SET pg_hint_plan.parse_messages TO LOG; |
@@ -3797,6 +3805,7 @@ SELECT name, setting FROM settings; | ||
3797 | 3805 | enable_gathermerge | on |
3798 | 3806 | enable_hashagg | on |
3799 | 3807 | enable_hashjoin | on |
3808 | + enable_incremental_sort | on | |
3800 | 3809 | enable_indexonlyscan | on |
3801 | 3810 | enable_indexscan | off |
3802 | 3811 | enable_material | on |
@@ -3810,7 +3819,7 @@ SELECT name, setting FROM settings; | ||
3810 | 3819 | enable_seqscan | on |
3811 | 3820 | enable_sort | on |
3812 | 3821 | enable_tidscan | on |
3813 | -(46 rows) | |
3822 | +(47 rows) | |
3814 | 3823 | |
3815 | 3824 | /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/ |
3816 | 3825 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1; |
@@ -3869,6 +3878,7 @@ SELECT name, setting FROM settings; | ||
3869 | 3878 | enable_gathermerge | on |
3870 | 3879 | enable_hashagg | on |
3871 | 3880 | enable_hashjoin | on |
3881 | + enable_incremental_sort | on | |
3872 | 3882 | enable_indexonlyscan | on |
3873 | 3883 | enable_indexscan | off |
3874 | 3884 | enable_material | on |
@@ -3882,7 +3892,7 @@ SELECT name, setting FROM settings; | ||
3882 | 3892 | enable_seqscan | on |
3883 | 3893 | enable_sort | on |
3884 | 3894 | enable_tidscan | on |
3885 | -(46 rows) | |
3895 | +(47 rows) | |
3886 | 3896 | |
3887 | 3897 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1; |
3888 | 3898 | QUERY PLAN |
@@ -3943,6 +3953,7 @@ SELECT name, setting FROM settings; | ||
3943 | 3953 | enable_gathermerge | on |
3944 | 3954 | enable_hashagg | on |
3945 | 3955 | enable_hashjoin | on |
3956 | + enable_incremental_sort | on | |
3946 | 3957 | enable_indexonlyscan | on |
3947 | 3958 | enable_indexscan | off |
3948 | 3959 | enable_material | on |
@@ -3956,7 +3967,7 @@ SELECT name, setting FROM settings; | ||
3956 | 3967 | enable_seqscan | on |
3957 | 3968 | enable_sort | on |
3958 | 3969 | enable_tidscan | on |
3959 | -(46 rows) | |
3970 | +(47 rows) | |
3960 | 3971 | |
3961 | 3972 | BEGIN; |
3962 | 3973 | /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/ |
@@ -4018,6 +4029,7 @@ SELECT name, setting FROM settings; | ||
4018 | 4029 | enable_gathermerge | on |
4019 | 4030 | enable_hashagg | on |
4020 | 4031 | enable_hashjoin | on |
4032 | + enable_incremental_sort | on | |
4021 | 4033 | enable_indexonlyscan | on |
4022 | 4034 | enable_indexscan | off |
4023 | 4035 | enable_material | on |
@@ -4031,7 +4043,7 @@ SELECT name, setting FROM settings; | ||
4031 | 4043 | enable_seqscan | on |
4032 | 4044 | enable_sort | on |
4033 | 4045 | enable_tidscan | on |
4034 | -(46 rows) | |
4046 | +(47 rows) | |
4035 | 4047 | |
4036 | 4048 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1; |
4037 | 4049 | QUERY PLAN |
@@ -4093,6 +4105,7 @@ SELECT name, setting FROM settings; | ||
4093 | 4105 | enable_gathermerge | on |
4094 | 4106 | enable_hashagg | on |
4095 | 4107 | enable_hashjoin | on |
4108 | + enable_incremental_sort | on | |
4096 | 4109 | enable_indexonlyscan | on |
4097 | 4110 | enable_indexscan | off |
4098 | 4111 | enable_material | on |
@@ -4106,7 +4119,7 @@ SELECT name, setting FROM settings; | ||
4106 | 4119 | enable_seqscan | on |
4107 | 4120 | enable_sort | on |
4108 | 4121 | enable_tidscan | on |
4109 | -(46 rows) | |
4122 | +(47 rows) | |
4110 | 4123 | |
4111 | 4124 | /*+Set(enable_indexscan on)Set(geqo_threshold 100)IndexScan(t2)MergeJoin(t1 t2)Leading(t2 t1)*/ |
4112 | 4125 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1; |
@@ -4169,6 +4182,7 @@ SELECT name, setting FROM settings; | ||
4169 | 4182 | enable_gathermerge | on |
4170 | 4183 | enable_hashagg | on |
4171 | 4184 | enable_hashjoin | on |
4185 | + enable_incremental_sort | on | |
4172 | 4186 | enable_indexonlyscan | on |
4173 | 4187 | enable_indexscan | off |
4174 | 4188 | enable_material | on |
@@ -4182,7 +4196,7 @@ SELECT name, setting FROM settings; | ||
4182 | 4196 | enable_seqscan | on |
4183 | 4197 | enable_sort | on |
4184 | 4198 | enable_tidscan | on |
4185 | -(46 rows) | |
4199 | +(47 rows) | |
4186 | 4200 | |
4187 | 4201 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1; |
4188 | 4202 | QUERY PLAN |
@@ -472,16 +472,16 @@ EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1; | ||
472 | 472 | Hash Join |
473 | 473 | Hash Cond: (t1.c1 = t2.c1) |
474 | 474 | -> Append |
475 | - -> Seq Scan on p1 t1 | |
476 | - -> Seq Scan on p1c1 t1_1 | |
477 | - -> Seq Scan on p1c2 t1_2 | |
478 | - -> Seq Scan on p1c3 t1_3 | |
475 | + -> Seq Scan on p1 t1_1 | |
476 | + -> Seq Scan on p1c1 t1_2 | |
477 | + -> Seq Scan on p1c2 t1_3 | |
478 | + -> Seq Scan on p1c3 t1_4 | |
479 | 479 | -> Hash |
480 | 480 | -> Append |
481 | - -> Seq Scan on p1 t2 | |
482 | - -> Seq Scan on p1c1 t2_1 | |
483 | - -> Seq Scan on p1c2 t2_2 | |
484 | - -> Seq Scan on p1c3 t2_3 | |
481 | + -> Seq Scan on p1 t2_1 | |
482 | + -> Seq Scan on p1c1 t2_2 | |
483 | + -> Seq Scan on p1c2 t2_3 | |
484 | + -> Seq Scan on p1c3 t2_4 | |
485 | 485 | (13 rows) |
486 | 486 | |
487 | 487 | /*+NestLoop(t1 t2)*/ |
@@ -497,18 +497,18 @@ error hint: | ||
497 | 497 | -------------------------------------------------- |
498 | 498 | Nested Loop |
499 | 499 | -> Append |
500 | - -> Seq Scan on p1 t1 | |
501 | - -> Seq Scan on p1c1 t1_1 | |
502 | - -> Seq Scan on p1c2 t1_2 | |
503 | - -> Seq Scan on p1c3 t1_3 | |
500 | + -> Seq Scan on p1 t1_1 | |
501 | + -> Seq Scan on p1c1 t1_2 | |
502 | + -> Seq Scan on p1c2 t1_3 | |
503 | + -> Seq Scan on p1c3 t1_4 | |
504 | 504 | -> Append |
505 | - -> Seq Scan on p1 t2 | |
505 | + -> Seq Scan on p1 t2_1 | |
506 | 506 | Filter: (t1.c1 = c1) |
507 | - -> Index Scan using p1c1_i on p1c1 t2_1 | |
507 | + -> Index Scan using p1c1_i on p1c1 t2_2 | |
508 | 508 | Index Cond: (c1 = t1.c1) |
509 | - -> Index Scan using p1c2_i on p1c2 t2_2 | |
509 | + -> Index Scan using p1c2_i on p1c2 t2_3 | |
510 | 510 | Index Cond: (c1 = t1.c1) |
511 | - -> Index Scan using p1c3_i on p1c3 t2_3 | |
511 | + -> Index Scan using p1c3_i on p1c3 t2_4 | |
512 | 512 | Index Cond: (c1 = t1.c1) |
513 | 513 | (15 rows) |
514 | 514 |
@@ -4248,27 +4248,27 @@ SET enable_hashjoin TO on; | ||
4248 | 4248 | ---- No. J-3-2 join inherit tables |
4249 | 4249 | ---- |
4250 | 4250 | EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1; |
4251 | - QUERY PLAN | |
4252 | ------------------------------------- | |
4251 | + QUERY PLAN | |
4252 | +----------------------------------------- | |
4253 | 4253 | Hash Join |
4254 | 4254 | Hash Cond: (p2.c1 = p1.c1) |
4255 | 4255 | -> Append |
4256 | - -> Seq Scan on p2 | |
4257 | - -> Seq Scan on p2c1 | |
4258 | - -> Seq Scan on p2c2 | |
4259 | - -> Seq Scan on p2c3 | |
4260 | - -> Seq Scan on p2c1c1 | |
4261 | - -> Seq Scan on p2c1c2 | |
4262 | - -> Seq Scan on p2c2c1 | |
4263 | - -> Seq Scan on p2c2c2 | |
4264 | - -> Seq Scan on p2c3c1 | |
4265 | - -> Seq Scan on p2c3c2 | |
4256 | + -> Seq Scan on p2 p2_1 | |
4257 | + -> Seq Scan on p2c1 p2_2 | |
4258 | + -> Seq Scan on p2c2 p2_3 | |
4259 | + -> Seq Scan on p2c3 p2_4 | |
4260 | + -> Seq Scan on p2c1c1 p2_5 | |
4261 | + -> Seq Scan on p2c1c2 p2_6 | |
4262 | + -> Seq Scan on p2c2c1 p2_7 | |
4263 | + -> Seq Scan on p2c2c2 p2_8 | |
4264 | + -> Seq Scan on p2c3c1 p2_9 | |
4265 | + -> Seq Scan on p2c3c2 p2_10 | |
4266 | 4266 | -> Hash |
4267 | 4267 | -> Append |
4268 | - -> Seq Scan on p1 | |
4269 | - -> Seq Scan on p1c1 | |
4270 | - -> Seq Scan on p1c2 | |
4271 | - -> Seq Scan on p1c3 | |
4268 | + -> Seq Scan on p1 p1_1 | |
4269 | + -> Seq Scan on p1c1 p1_2 | |
4270 | + -> Seq Scan on p1c2 p1_3 | |
4271 | + -> Seq Scan on p1c3 p1_4 | |
4272 | 4272 | (19 rows) |
4273 | 4273 | |
4274 | 4274 | -- No. J-3-2-1 |
@@ -4281,30 +4281,30 @@ not used hint: | ||
4281 | 4281 | duplication hint: |
4282 | 4282 | error hint: |
4283 | 4283 | |
4284 | - QUERY PLAN | |
4285 | --------------------------------------- | |
4284 | + QUERY PLAN | |
4285 | +-------------------------------------------- | |
4286 | 4286 | Merge Join |
4287 | 4287 | Merge Cond: (p1.c1 = p2.c1) |
4288 | 4288 | -> Sort |
4289 | 4289 | Sort Key: p1.c1 |
4290 | 4290 | -> Append |
4291 | - -> Seq Scan on p1 | |
4292 | - -> Seq Scan on p1c1 | |
4293 | - -> Seq Scan on p1c2 | |
4294 | - -> Seq Scan on p1c3 | |
4291 | + -> Seq Scan on p1 p1_1 | |
4292 | + -> Seq Scan on p1c1 p1_2 | |
4293 | + -> Seq Scan on p1c2 p1_3 | |
4294 | + -> Seq Scan on p1c3 p1_4 | |
4295 | 4295 | -> Sort |
4296 | 4296 | Sort Key: p2.c1 |
4297 | 4297 | -> Append |
4298 | - -> Seq Scan on p2 | |
4299 | - -> Seq Scan on p2c1 | |
4300 | - -> Seq Scan on p2c2 | |
4301 | - -> Seq Scan on p2c3 | |
4302 | - -> Seq Scan on p2c1c1 | |
4303 | - -> Seq Scan on p2c1c2 | |
4304 | - -> Seq Scan on p2c2c1 | |
4305 | - -> Seq Scan on p2c2c2 | |
4306 | - -> Seq Scan on p2c3c1 | |
4307 | - -> Seq Scan on p2c3c2 | |
4298 | + -> Seq Scan on p2 p2_1 | |
4299 | + -> Seq Scan on p2c1 p2_2 | |
4300 | + -> Seq Scan on p2c2 p2_3 | |
4301 | + -> Seq Scan on p2c3 p2_4 | |
4302 | + -> Seq Scan on p2c1c1 p2_5 | |
4303 | + -> Seq Scan on p2c1c2 p2_6 | |
4304 | + -> Seq Scan on p2c2c1 p2_7 | |
4305 | + -> Seq Scan on p2c2c2 p2_8 | |
4306 | + -> Seq Scan on p2c3c1 p2_9 | |
4307 | + -> Seq Scan on p2c3c2 p2_10 | |
4308 | 4308 | (22 rows) |
4309 | 4309 | |
4310 | 4310 | -- No. J-3-2-2 |
@@ -4317,53 +4317,53 @@ MergeJoin(p1c1 p2c1) | ||
4317 | 4317 | duplication hint: |
4318 | 4318 | error hint: |
4319 | 4319 | |
4320 | - QUERY PLAN | |
4321 | ------------------------------------- | |
4320 | + QUERY PLAN | |
4321 | +----------------------------------------- | |
4322 | 4322 | Hash Join |
4323 | 4323 | Hash Cond: (p2.c1 = p1.c1) |
4324 | 4324 | -> Append |
4325 | - -> Seq Scan on p2 | |
4326 | - -> Seq Scan on p2c1 | |
4327 | - -> Seq Scan on p2c2 | |
4328 | - -> Seq Scan on p2c3 | |
4329 | - -> Seq Scan on p2c1c1 | |
4330 | - -> Seq Scan on p2c1c2 | |
4331 | - -> Seq Scan on p2c2c1 | |
4332 | - -> Seq Scan on p2c2c2 | |
4333 | - -> Seq Scan on p2c3c1 | |
4334 | - -> Seq Scan on p2c3c2 | |
4325 | + -> Seq Scan on p2 p2_1 | |
4326 | + -> Seq Scan on p2c1 p2_2 | |
4327 | + -> Seq Scan on p2c2 p2_3 | |
4328 | + -> Seq Scan on p2c3 p2_4 | |
4329 | + -> Seq Scan on p2c1c1 p2_5 | |
4330 | + -> Seq Scan on p2c1c2 p2_6 | |
4331 | + -> Seq Scan on p2c2c1 p2_7 | |
4332 | + -> Seq Scan on p2c2c2 p2_8 | |
4333 | + -> Seq Scan on p2c3c1 p2_9 | |
4334 | + -> Seq Scan on p2c3c2 p2_10 | |
4335 | 4335 | -> Hash |
4336 | 4336 | -> Append |
4337 | - -> Seq Scan on p1 | |
4338 | - -> Seq Scan on p1c1 | |
4339 | - -> Seq Scan on p1c2 | |
4340 | - -> Seq Scan on p1c3 | |
4337 | + -> Seq Scan on p1 p1_1 | |
4338 | + -> Seq Scan on p1c1 p1_2 | |
4339 | + -> Seq Scan on p1c2 p1_3 | |
4340 | + -> Seq Scan on p1c3 p1_4 | |
4341 | 4341 | (19 rows) |
4342 | 4342 | |
4343 | 4343 | ---- |
4344 | 4344 | ---- No. J-3-2-2 join partitioned tables |
4345 | 4345 | ---- |
4346 | 4346 | EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1; |
4347 | - QUERY PLAN | |
4348 | --------------------------------------- | |
4347 | + QUERY PLAN | |
4348 | +-------------------------------------------- | |
4349 | 4349 | Hash Join |
4350 | - Hash Cond: (p2.c1 = pt1_c1.c1) | |
4350 | + Hash Cond: (p2.c1 = pt1.c1) | |
4351 | 4351 | -> Append |
4352 | - -> Seq Scan on p2 | |
4353 | - -> Seq Scan on p2c1 | |
4354 | - -> Seq Scan on p2c2 | |
4355 | - -> Seq Scan on p2c3 | |
4356 | - -> Seq Scan on p2c1c1 | |
4357 | - -> Seq Scan on p2c1c2 | |
4358 | - -> Seq Scan on p2c2c1 | |
4359 | - -> Seq Scan on p2c2c2 | |
4360 | - -> Seq Scan on p2c3c1 | |
4361 | - -> Seq Scan on p2c3c2 | |
4352 | + -> Seq Scan on p2 p2_1 | |
4353 | + -> Seq Scan on p2c1 p2_2 | |
4354 | + -> Seq Scan on p2c2 p2_3 | |
4355 | + -> Seq Scan on p2c3 p2_4 | |
4356 | + -> Seq Scan on p2c1c1 p2_5 | |
4357 | + -> Seq Scan on p2c1c2 p2_6 | |
4358 | + -> Seq Scan on p2c2c1 p2_7 | |
4359 | + -> Seq Scan on p2c2c2 p2_8 | |
4360 | + -> Seq Scan on p2c3c1 p2_9 | |
4361 | + -> Seq Scan on p2c3c2 p2_10 | |
4362 | 4362 | -> Hash |
4363 | 4363 | -> Append |
4364 | - -> Seq Scan on pt1_c1 | |
4365 | - -> Seq Scan on pt1_c2 | |
4366 | - -> Seq Scan on pt1_c3 | |
4364 | + -> Seq Scan on pt1_c1 pt1_1 | |
4365 | + -> Seq Scan on pt1_c2 pt1_2 | |
4366 | + -> Seq Scan on pt1_c3 pt1_3 | |
4367 | 4367 | (18 rows) |
4368 | 4368 | |
4369 | 4369 | /*+MergeJoin(pt1 p2)*/ |
@@ -4375,29 +4375,29 @@ not used hint: | ||
4375 | 4375 | duplication hint: |
4376 | 4376 | error hint: |
4377 | 4377 | |
4378 | - QUERY PLAN | |
4379 | --------------------------------------- | |
4378 | + QUERY PLAN | |
4379 | +-------------------------------------------- | |
4380 | 4380 | Merge Join |
4381 | - Merge Cond: (pt1_c1.c1 = p2.c1) | |
4381 | + Merge Cond: (pt1.c1 = p2.c1) | |
4382 | 4382 | -> Sort |
4383 | - Sort Key: pt1_c1.c1 | |
4383 | + Sort Key: pt1.c1 | |
4384 | 4384 | -> Append |
4385 | - -> Seq Scan on pt1_c1 | |
4386 | - -> Seq Scan on pt1_c2 | |
4387 | - -> Seq Scan on pt1_c3 | |
4385 | + -> Seq Scan on pt1_c1 pt1_1 | |
4386 | + -> Seq Scan on pt1_c2 pt1_2 | |
4387 | + -> Seq Scan on pt1_c3 pt1_3 | |
4388 | 4388 | -> Sort |
4389 | 4389 | Sort Key: p2.c1 |
4390 | 4390 | -> Append |
4391 | - -> Seq Scan on p2 | |
4392 | - -> Seq Scan on p2c1 | |
4393 | - -> Seq Scan on p2c2 | |
4394 | - -> Seq Scan on p2c3 | |
4395 | - -> Seq Scan on p2c1c1 | |
4396 | - -> Seq Scan on p2c1c2 | |
4397 | - -> Seq Scan on p2c2c1 | |
4398 | - -> Seq Scan on p2c2c2 | |
4399 | - -> Seq Scan on p2c3c1 | |
4400 | - -> Seq Scan on p2c3c2 | |
4391 | + -> Seq Scan on p2 p2_1 | |
4392 | + -> Seq Scan on p2c1 p2_2 | |
4393 | + -> Seq Scan on p2c2 p2_3 | |
4394 | + -> Seq Scan on p2c3 p2_4 | |
4395 | + -> Seq Scan on p2c1c1 p2_5 | |
4396 | + -> Seq Scan on p2c1c2 p2_6 | |
4397 | + -> Seq Scan on p2c2c1 p2_7 | |
4398 | + -> Seq Scan on p2c2c2 p2_8 | |
4399 | + -> Seq Scan on p2c3c1 p2_9 | |
4400 | + -> Seq Scan on p2c3c2 p2_10 | |
4401 | 4401 | (21 rows) |
4402 | 4402 | |
4403 | 4403 | /*+MergeJoin(pt1_c1 p2c1)*/ /* will ignored */ |
@@ -4409,26 +4409,26 @@ MergeJoin(p2c1 pt1_c1) | ||
4409 | 4409 | duplication hint: |
4410 | 4410 | error hint: |
4411 | 4411 | |
4412 | - QUERY PLAN | |
4413 | --------------------------------------- | |
4412 | + QUERY PLAN | |
4413 | +-------------------------------------------- | |
4414 | 4414 | Hash Join |
4415 | - Hash Cond: (p2.c1 = pt1_c1.c1) | |
4415 | + Hash Cond: (p2.c1 = pt1.c1) | |
4416 | 4416 | -> Append |
4417 | - -> Seq Scan on p2 | |
4418 | - -> Seq Scan on p2c1 | |
4419 | - -> Seq Scan on p2c2 | |
4420 | - -> Seq Scan on p2c3 | |
4421 | - -> Seq Scan on p2c1c1 | |
4422 | - -> Seq Scan on p2c1c2 | |
4423 | - -> Seq Scan on p2c2c1 | |
4424 | - -> Seq Scan on p2c2c2 | |
4425 | - -> Seq Scan on p2c3c1 | |
4426 | - -> Seq Scan on p2c3c2 | |
4417 | + -> Seq Scan on p2 p2_1 | |
4418 | + -> Seq Scan on p2c1 p2_2 | |
4419 | + -> Seq Scan on p2c2 p2_3 | |
4420 | + -> Seq Scan on p2c3 p2_4 | |
4421 | + -> Seq Scan on p2c1c1 p2_5 | |
4422 | + -> Seq Scan on p2c1c2 p2_6 | |
4423 | + -> Seq Scan on p2c2c1 p2_7 | |
4424 | + -> Seq Scan on p2c2c2 p2_8 | |
4425 | + -> Seq Scan on p2c3c1 p2_9 | |
4426 | + -> Seq Scan on p2c3c2 p2_10 | |
4427 | 4427 | -> Hash |
4428 | 4428 | -> Append |
4429 | - -> Seq Scan on pt1_c1 | |
4430 | - -> Seq Scan on pt1_c2 | |
4431 | - -> Seq Scan on pt1_c3 | |
4429 | + -> Seq Scan on pt1_c1 pt1_1 | |
4430 | + -> Seq Scan on pt1_c2 pt1_2 | |
4431 | + -> Seq Scan on pt1_c3 pt1_3 | |
4432 | 4432 | (18 rows) |
4433 | 4433 | |
4434 | 4434 | ---- |
@@ -673,28 +673,28 @@ EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2, s1.p1 t3, s1.p1 t4 WHERE | ||
673 | 673 | -> Hash Join |
674 | 674 | Hash Cond: (t1.c1 = t2.c1) |
675 | 675 | -> Append |
676 | - -> Seq Scan on p1 t1 | |
677 | - -> Seq Scan on p1c1 t1_1 | |
678 | - -> Seq Scan on p1c2 t1_2 | |
679 | - -> Seq Scan on p1c3 t1_3 | |
676 | + -> Seq Scan on p1 t1_1 | |
677 | + -> Seq Scan on p1c1 t1_2 | |
678 | + -> Seq Scan on p1c2 t1_3 | |
679 | + -> Seq Scan on p1c3 t1_4 | |
680 | 680 | -> Hash |
681 | 681 | -> Append |
682 | - -> Seq Scan on p1 t2 | |
683 | - -> Seq Scan on p1c1 t2_1 | |
684 | - -> Seq Scan on p1c2 t2_2 | |
685 | - -> Seq Scan on p1c3 t2_3 | |
682 | + -> Seq Scan on p1 t2_1 | |
683 | + -> Seq Scan on p1c1 t2_2 | |
684 | + -> Seq Scan on p1c2 t2_3 | |
685 | + -> Seq Scan on p1c3 t2_4 | |
686 | 686 | -> Hash |
687 | 687 | -> Append |
688 | - -> Seq Scan on p1 t3 | |
689 | - -> Seq Scan on p1c1 t3_1 | |
690 | - -> Seq Scan on p1c2 t3_2 | |
691 | - -> Seq Scan on p1c3 t3_3 | |
688 | + -> Seq Scan on p1 t3_1 | |
689 | + -> Seq Scan on p1c1 t3_2 | |
690 | + -> Seq Scan on p1c2 t3_3 | |
691 | + -> Seq Scan on p1c3 t3_4 | |
692 | 692 | -> Hash |
693 | 693 | -> Append |
694 | - -> Seq Scan on p1 t4 | |
695 | - -> Seq Scan on p1c1 t4_1 | |
696 | - -> Seq Scan on p1c2 t4_2 | |
697 | - -> Seq Scan on p1c3 t4_3 | |
694 | + -> Seq Scan on p1 t4_1 | |
695 | + -> Seq Scan on p1c1 t4_2 | |
696 | + -> Seq Scan on p1c2 t4_3 | |
697 | + -> Seq Scan on p1c3 t4_4 | |
698 | 698 | (29 rows) |
699 | 699 | |
700 | 700 | /*+Leading(t4 t3 t2 t1)*/ |
@@ -715,28 +715,28 @@ error hint: | ||
715 | 715 | -> Hash Join |
716 | 716 | Hash Cond: (t3.c1 = t4.c1) |
717 | 717 | -> Append |
718 | - -> Seq Scan on p1 t3 | |
719 | - -> Seq Scan on p1c1 t3_1 | |
720 | - -> Seq Scan on p1c2 t3_2 | |
721 | - -> Seq Scan on p1c3 t3_3 | |
718 | + -> Seq Scan on p1 t3_1 | |
719 | + -> Seq Scan on p1c1 t3_2 | |
720 | + -> Seq Scan on p1c2 t3_3 | |
721 | + -> Seq Scan on p1c3 t3_4 | |
722 | 722 | -> Hash |
723 | 723 | -> Append |
724 | - -> Seq Scan on p1 t4 | |
725 | - -> Seq Scan on p1c1 t4_1 | |
726 | - -> Seq Scan on p1c2 t4_2 | |
727 | - -> Seq Scan on p1c3 t4_3 | |
724 | + -> Seq Scan on p1 t4_1 | |
725 | + -> Seq Scan on p1c1 t4_2 | |
726 | + -> Seq Scan on p1c2 t4_3 | |
727 | + -> Seq Scan on p1c3 t4_4 | |
728 | 728 | -> Hash |
729 | 729 | -> Append |
730 | - -> Seq Scan on p1 t2 | |
731 | - -> Seq Scan on p1c1 t2_1 | |
732 | - -> Seq Scan on p1c2 t2_2 | |
733 | - -> Seq Scan on p1c3 t2_3 | |
730 | + -> Seq Scan on p1 t2_1 | |
731 | + -> Seq Scan on p1c1 t2_2 | |
732 | + -> Seq Scan on p1c2 t2_3 | |
733 | + -> Seq Scan on p1c3 t2_4 | |
734 | 734 | -> Hash |
735 | 735 | -> Append |
736 | - -> Seq Scan on p1 t1 | |
737 | - -> Seq Scan on p1c1 t1_1 | |
738 | - -> Seq Scan on p1c2 t1_2 | |
739 | - -> Seq Scan on p1c3 t1_3 | |
736 | + -> Seq Scan on p1 t1_1 | |
737 | + -> Seq Scan on p1c1 t1_2 | |
738 | + -> Seq Scan on p1c2 t1_3 | |
739 | + -> Seq Scan on p1c3 t1_4 | |
740 | 740 | (29 rows) |
741 | 741 | |
742 | 742 | -- No. L-1-6-3 |
@@ -3999,19 +3999,19 @@ error hint: | ||
3999 | 3999 | -> Hash Join |
4000 | 4000 | Hash Cond: (t1.c1 = t2.c1) |
4001 | 4001 | -> Append |
4002 | - -> Seq Scan on p2c1 t1 | |
4003 | - -> Seq Scan on p2c1c1 t1_1 | |
4004 | - -> Seq Scan on p2c1c2 t1_2 | |
4002 | + -> Seq Scan on p2c1 t1_1 | |
4003 | + -> Seq Scan on p2c1c1 t1_2 | |
4004 | + -> Seq Scan on p2c1c2 t1_3 | |
4005 | 4005 | -> Hash |
4006 | 4006 | -> Append |
4007 | - -> Seq Scan on p2c2 t2 | |
4008 | - -> Seq Scan on p2c2c1 t2_1 | |
4009 | - -> Seq Scan on p2c2c2 t2_2 | |
4007 | + -> Seq Scan on p2c2 t2_1 | |
4008 | + -> Seq Scan on p2c2c1 t2_2 | |
4009 | + -> Seq Scan on p2c2c2 t2_3 | |
4010 | 4010 | -> Hash |
4011 | 4011 | -> Append |
4012 | - -> Seq Scan on p2c3 t3 | |
4013 | - -> Seq Scan on p2c3c1 t3_1 | |
4014 | - -> Seq Scan on p2c3c2 t3_2 | |
4012 | + -> Seq Scan on p2c3 t3_1 | |
4013 | + -> Seq Scan on p2c3c1 t3_2 | |
4014 | + -> Seq Scan on p2c3c2 t3_3 | |
4015 | 4015 | (18 rows) |
4016 | 4016 | |
4017 | 4017 | -- No. L-3-3-2 |
@@ -4033,19 +4033,19 @@ error hint: | ||
4033 | 4033 | -> Hash Join |
4034 | 4034 | Hash Cond: (t1.c1 = t2.c1) |
4035 | 4035 | -> Append |
4036 | - -> Seq Scan on p2c1 t1 | |
4037 | - -> Seq Scan on p2c1c1 t1_1 | |
4038 | - -> Seq Scan on p2c1c2 t1_2 | |
4036 | + -> Seq Scan on p2c1 t1_1 | |
4037 | + -> Seq Scan on p2c1c1 t1_2 | |
4038 | + -> Seq Scan on p2c1c2 t1_3 | |
4039 | 4039 | -> Hash |
4040 | 4040 | -> Append |
4041 | - -> Seq Scan on p2c2 t2 | |
4042 | - -> Seq Scan on p2c2c1 t2_1 | |
4043 | - -> Seq Scan on p2c2c2 t2_2 | |
4041 | + -> Seq Scan on p2c2 t2_1 | |
4042 | + -> Seq Scan on p2c2c1 t2_2 | |
4043 | + -> Seq Scan on p2c2c2 t2_3 | |
4044 | 4044 | -> Hash |
4045 | 4045 | -> Append |
4046 | - -> Seq Scan on p2c3 t3 | |
4047 | - -> Seq Scan on p2c3c1 t3_1 | |
4048 | - -> Seq Scan on p2c3c2 t3_2 | |
4046 | + -> Seq Scan on p2c3 t3_1 | |
4047 | + -> Seq Scan on p2c3c1 t3_2 | |
4048 | + -> Seq Scan on p2c3c2 t3_3 | |
4049 | 4049 | (18 rows) |
4050 | 4050 | |
4051 | 4051 | ---- |
@@ -516,16 +516,16 @@ EXPLAIN SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1; | ||
516 | 516 | Hash Join (cost=xxx..xxx rows=301 width=xxx) |
517 | 517 | Hash Cond: (t1.c1 = t2.c1) |
518 | 518 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
519 | - -> Seq Scan on p1 t1 (cost=xxx..xxx rows=1 width=xxx) | |
520 | - -> Seq Scan on p1c1 t1_1 (cost=xxx..xxx rows=100 width=xxx) | |
521 | - -> Seq Scan on p1c2 t1_2 (cost=xxx..xxx rows=100 width=xxx) | |
522 | - -> Seq Scan on p1c3 t1_3 (cost=xxx..xxx rows=100 width=xxx) | |
519 | + -> Seq Scan on p1 t1_1 (cost=xxx..xxx rows=1 width=xxx) | |
520 | + -> Seq Scan on p1c1 t1_2 (cost=xxx..xxx rows=100 width=xxx) | |
521 | + -> Seq Scan on p1c2 t1_3 (cost=xxx..xxx rows=100 width=xxx) | |
522 | + -> Seq Scan on p1c3 t1_4 (cost=xxx..xxx rows=100 width=xxx) | |
523 | 523 | -> Hash (cost=xxx..xxx rows=301 width=xxx) |
524 | 524 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
525 | - -> Seq Scan on p1 t2 (cost=xxx..xxx rows=1 width=xxx) | |
526 | - -> Seq Scan on p1c1 t2_1 (cost=xxx..xxx rows=100 width=xxx) | |
527 | - -> Seq Scan on p1c2 t2_2 (cost=xxx..xxx rows=100 width=xxx) | |
528 | - -> Seq Scan on p1c3 t2_3 (cost=xxx..xxx rows=100 width=xxx) | |
525 | + -> Seq Scan on p1 t2_1 (cost=xxx..xxx rows=1 width=xxx) | |
526 | + -> Seq Scan on p1c1 t2_2 (cost=xxx..xxx rows=100 width=xxx) | |
527 | + -> Seq Scan on p1c2 t2_3 (cost=xxx..xxx rows=100 width=xxx) | |
528 | + -> Seq Scan on p1c3 t2_4 (cost=xxx..xxx rows=100 width=xxx) | |
529 | 529 | |
530 | 530 | \o results/ut-R.tmpout |
531 | 531 | /*+Rows(t1 t2 #1)*/ |
@@ -544,16 +544,16 @@ error hint: | ||
544 | 544 | Hash Join (cost=xxx..xxx rows=1 width=xxx) |
545 | 545 | Hash Cond: (t1.c1 = t2.c1) |
546 | 546 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
547 | - -> Seq Scan on p1 t1 (cost=xxx..xxx rows=1 width=xxx) | |
548 | - -> Seq Scan on p1c1 t1_1 (cost=xxx..xxx rows=100 width=xxx) | |
549 | - -> Seq Scan on p1c2 t1_2 (cost=xxx..xxx rows=100 width=xxx) | |
550 | - -> Seq Scan on p1c3 t1_3 (cost=xxx..xxx rows=100 width=xxx) | |
547 | + -> Seq Scan on p1 t1_1 (cost=xxx..xxx rows=1 width=xxx) | |
548 | + -> Seq Scan on p1c1 t1_2 (cost=xxx..xxx rows=100 width=xxx) | |
549 | + -> Seq Scan on p1c2 t1_3 (cost=xxx..xxx rows=100 width=xxx) | |
550 | + -> Seq Scan on p1c3 t1_4 (cost=xxx..xxx rows=100 width=xxx) | |
551 | 551 | -> Hash (cost=xxx..xxx rows=301 width=xxx) |
552 | 552 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
553 | - -> Seq Scan on p1 t2 (cost=xxx..xxx rows=1 width=xxx) | |
554 | - -> Seq Scan on p1c1 t2_1 (cost=xxx..xxx rows=100 width=xxx) | |
555 | - -> Seq Scan on p1c2 t2_2 (cost=xxx..xxx rows=100 width=xxx) | |
556 | - -> Seq Scan on p1c3 t2_3 (cost=xxx..xxx rows=100 width=xxx) | |
553 | + -> Seq Scan on p1 t2_1 (cost=xxx..xxx rows=1 width=xxx) | |
554 | + -> Seq Scan on p1c1 t2_2 (cost=xxx..xxx rows=100 width=xxx) | |
555 | + -> Seq Scan on p1c2 t2_3 (cost=xxx..xxx rows=100 width=xxx) | |
556 | + -> Seq Scan on p1c3 t2_4 (cost=xxx..xxx rows=100 width=xxx) | |
557 | 557 | |
558 | 558 | -- No. R-1-6-3 |
559 | 559 | \o results/ut-R.tmpout |
@@ -4696,27 +4696,27 @@ error hint: | ||
4696 | 4696 | EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1; |
4697 | 4697 | \o |
4698 | 4698 | \! sql/maskout.sh results/ut-R.tmpout |
4699 | - QUERY PLAN | |
4700 | -------------------------------------------------------------------------- | |
4699 | + QUERY PLAN | |
4700 | +------------------------------------------------------------------------------ | |
4701 | 4701 | Hash Join (cost=xxx..xxx rows=301 width=xxx) |
4702 | 4702 | Hash Cond: (p2.c1 = p1.c1) |
4703 | 4703 | -> Append (cost=xxx..xxx rows=304 width=xxx) |
4704 | - -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx) | |
4705 | - -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx) | |
4706 | - -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx) | |
4707 | - -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx) | |
4708 | - -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx) | |
4709 | - -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx) | |
4710 | - -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx) | |
4711 | - -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx) | |
4712 | - -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx) | |
4713 | - -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx) | |
4704 | + -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx) | |
4705 | + -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx) | |
4706 | + -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx) | |
4707 | + -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx) | |
4708 | + -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx) | |
4709 | + -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx) | |
4710 | + -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx) | |
4711 | + -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx) | |
4712 | + -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx) | |
4713 | + -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx) | |
4714 | 4714 | -> Hash (cost=xxx..xxx rows=301 width=xxx) |
4715 | 4715 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
4716 | - -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx) | |
4717 | - -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx) | |
4718 | - -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx) | |
4719 | - -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx) | |
4716 | + -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
4717 | + -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx) | |
4718 | + -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx) | |
4719 | + -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx) | |
4720 | 4720 | |
4721 | 4721 | \o results/ut-R.tmpout |
4722 | 4722 | /*+Rows(p1 p2 #1)*/ |
@@ -4730,54 +4730,54 @@ error hint: | ||
4730 | 4730 | |
4731 | 4731 | \o |
4732 | 4732 | \! sql/maskout.sh results/ut-R.tmpout |
4733 | - QUERY PLAN | |
4734 | -------------------------------------------------------------------------- | |
4733 | + QUERY PLAN | |
4734 | +------------------------------------------------------------------------------ | |
4735 | 4735 | Hash Join (cost=xxx..xxx rows=1 width=xxx) |
4736 | 4736 | Hash Cond: (p2.c1 = p1.c1) |
4737 | 4737 | -> Append (cost=xxx..xxx rows=304 width=xxx) |
4738 | - -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx) | |
4739 | - -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx) | |
4740 | - -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx) | |
4741 | - -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx) | |
4742 | - -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx) | |
4743 | - -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx) | |
4744 | - -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx) | |
4745 | - -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx) | |
4746 | - -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx) | |
4747 | - -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx) | |
4738 | + -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx) | |
4739 | + -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx) | |
4740 | + -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx) | |
4741 | + -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx) | |
4742 | + -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx) | |
4743 | + -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx) | |
4744 | + -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx) | |
4745 | + -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx) | |
4746 | + -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx) | |
4747 | + -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx) | |
4748 | 4748 | -> Hash (cost=xxx..xxx rows=301 width=xxx) |
4749 | 4749 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
4750 | - -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx) | |
4751 | - -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx) | |
4752 | - -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx) | |
4753 | - -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx) | |
4750 | + -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
4751 | + -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx) | |
4752 | + -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx) | |
4753 | + -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx) | |
4754 | 4754 | |
4755 | 4755 | -- No. R-3-4-2 |
4756 | 4756 | \o results/ut-R.tmpout |
4757 | 4757 | EXPLAIN SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1; |
4758 | 4758 | \o |
4759 | 4759 | \! sql/maskout.sh results/ut-R.tmpout |
4760 | - QUERY PLAN | |
4761 | -------------------------------------------------------------------------- | |
4760 | + QUERY PLAN | |
4761 | +------------------------------------------------------------------------------ | |
4762 | 4762 | Hash Join (cost=xxx..xxx rows=301 width=xxx) |
4763 | 4763 | Hash Cond: (p2.c1 = p1.c1) |
4764 | 4764 | -> Append (cost=xxx..xxx rows=304 width=xxx) |
4765 | - -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx) | |
4766 | - -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx) | |
4767 | - -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx) | |
4768 | - -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx) | |
4769 | - -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx) | |
4770 | - -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx) | |
4771 | - -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx) | |
4772 | - -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx) | |
4773 | - -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx) | |
4774 | - -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx) | |
4765 | + -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx) | |
4766 | + -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx) | |
4767 | + -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx) | |
4768 | + -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx) | |
4769 | + -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx) | |
4770 | + -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx) | |
4771 | + -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx) | |
4772 | + -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx) | |
4773 | + -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx) | |
4774 | + -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx) | |
4775 | 4775 | -> Hash (cost=xxx..xxx rows=301 width=xxx) |
4776 | 4776 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
4777 | - -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx) | |
4778 | - -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx) | |
4779 | - -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx) | |
4780 | - -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx) | |
4777 | + -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
4778 | + -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx) | |
4779 | + -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx) | |
4780 | + -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx) | |
4781 | 4781 | |
4782 | 4782 | \o results/ut-R.tmpout |
4783 | 4783 | /*+Rows(p1c1 p2c1 #1)*/ |
@@ -4791,27 +4791,27 @@ error hint: | ||
4791 | 4791 | |
4792 | 4792 | \o |
4793 | 4793 | \! sql/maskout.sh results/ut-R.tmpout |
4794 | - QUERY PLAN | |
4795 | -------------------------------------------------------------------------- | |
4794 | + QUERY PLAN | |
4795 | +------------------------------------------------------------------------------ | |
4796 | 4796 | Hash Join (cost=xxx..xxx rows=301 width=xxx) |
4797 | 4797 | Hash Cond: (p2.c1 = p1.c1) |
4798 | 4798 | -> Append (cost=xxx..xxx rows=304 width=xxx) |
4799 | - -> Seq Scan on p2 (cost=xxx..xxx rows=1 width=xxx) | |
4800 | - -> Seq Scan on p2c1 (cost=xxx..xxx rows=1 width=xxx) | |
4801 | - -> Seq Scan on p2c2 (cost=xxx..xxx rows=1 width=xxx) | |
4802 | - -> Seq Scan on p2c3 (cost=xxx..xxx rows=1 width=xxx) | |
4803 | - -> Seq Scan on p2c1c1 (cost=xxx..xxx rows=50 width=xxx) | |
4804 | - -> Seq Scan on p2c1c2 (cost=xxx..xxx rows=50 width=xxx) | |
4805 | - -> Seq Scan on p2c2c1 (cost=xxx..xxx rows=50 width=xxx) | |
4806 | - -> Seq Scan on p2c2c2 (cost=xxx..xxx rows=50 width=xxx) | |
4807 | - -> Seq Scan on p2c3c1 (cost=xxx..xxx rows=50 width=xxx) | |
4808 | - -> Seq Scan on p2c3c2 (cost=xxx..xxx rows=50 width=xxx) | |
4799 | + -> Seq Scan on p2 p2_1 (cost=xxx..xxx rows=1 width=xxx) | |
4800 | + -> Seq Scan on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx) | |
4801 | + -> Seq Scan on p2c2 p2_3 (cost=xxx..xxx rows=1 width=xxx) | |
4802 | + -> Seq Scan on p2c3 p2_4 (cost=xxx..xxx rows=1 width=xxx) | |
4803 | + -> Seq Scan on p2c1c1 p2_5 (cost=xxx..xxx rows=50 width=xxx) | |
4804 | + -> Seq Scan on p2c1c2 p2_6 (cost=xxx..xxx rows=50 width=xxx) | |
4805 | + -> Seq Scan on p2c2c1 p2_7 (cost=xxx..xxx rows=50 width=xxx) | |
4806 | + -> Seq Scan on p2c2c2 p2_8 (cost=xxx..xxx rows=50 width=xxx) | |
4807 | + -> Seq Scan on p2c3c1 p2_9 (cost=xxx..xxx rows=50 width=xxx) | |
4808 | + -> Seq Scan on p2c3c2 p2_10 (cost=xxx..xxx rows=50 width=xxx) | |
4809 | 4809 | -> Hash (cost=xxx..xxx rows=301 width=xxx) |
4810 | 4810 | -> Append (cost=xxx..xxx rows=301 width=xxx) |
4811 | - -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx) | |
4812 | - -> Seq Scan on p1c1 (cost=xxx..xxx rows=100 width=xxx) | |
4813 | - -> Seq Scan on p1c2 (cost=xxx..xxx rows=100 width=xxx) | |
4814 | - -> Seq Scan on p1c3 (cost=xxx..xxx rows=100 width=xxx) | |
4811 | + -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
4812 | + -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=100 width=xxx) | |
4813 | + -> Seq Scan on p1c2 p1_3 (cost=xxx..xxx rows=100 width=xxx) | |
4814 | + -> Seq Scan on p1c3 p1_4 (cost=xxx..xxx rows=100 width=xxx) | |
4815 | 4815 | |
4816 | 4816 | ---- |
4817 | 4817 | ---- No. R-3-5 conflict join method hint |
@@ -377,12 +377,12 @@ error hint: | ||
377 | 377 | |
378 | 378 | -- No. S-1-5-2 |
379 | 379 | EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE p1.c1 = 1; |
380 | - QUERY PLAN | |
381 | --------------------------- | |
380 | + QUERY PLAN | |
381 | +----------------------------- | |
382 | 382 | Append |
383 | - -> Seq Scan on p1 | |
383 | + -> Seq Scan on p1 p1_1 | |
384 | 384 | Filter: (c1 = 1) |
385 | - -> Seq Scan on p1c1 | |
385 | + -> Seq Scan on p1c1 p1_2 | |
386 | 386 | Filter: (c1 = 1) |
387 | 387 | (5 rows) |
388 | 388 |
@@ -395,12 +395,12 @@ not used hint: | ||
395 | 395 | duplication hint: |
396 | 396 | error hint: |
397 | 397 | |
398 | - QUERY PLAN | |
399 | ---------------------------------------- | |
398 | + QUERY PLAN | |
399 | +-------------------------------------------- | |
400 | 400 | Append |
401 | - -> Index Scan using p1_i on p1 | |
401 | + -> Index Scan using p1_i on p1 p1_1 | |
402 | 402 | Index Cond: (c1 = 1) |
403 | - -> Index Scan using p1c1_i on p1c1 | |
403 | + -> Index Scan using p1c1_i on p1c1 p1_2 | |
404 | 404 | Index Cond: (c1 = 1) |
405 | 405 | (5 rows) |
406 | 406 |
@@ -3761,9 +3761,8 @@ error hint: | ||
3761 | 3761 | c4 | text | | | |
3762 | 3762 | Indexes: |
3763 | 3763 | "ti1_pkey" PRIMARY KEY, btree (c1) |
3764 | - "ti1_c2_key" UNIQUE CONSTRAINT, btree (c2) | |
3765 | - "ti1_uniq" UNIQUE, btree (c1) | |
3766 | 3764 | "ti1_btree" btree (c1) |
3765 | + "ti1_c2_key" UNIQUE CONSTRAINT, btree (c2) | |
3767 | 3766 | "ti1_expr" btree ((c1 < 100)) |
3768 | 3767 | "ti1_gin" gin (c1) |
3769 | 3768 | "ti1_gist" gist (c1) |
@@ -3775,6 +3774,7 @@ Indexes: | ||
3775 | 3774 | "ti1_multi" btree (c1, c2, c3, c4) |
3776 | 3775 | "ti1_pred" btree (lower(c4)) |
3777 | 3776 | "ti1_ts" gin (to_tsvector('english'::regconfig, c4)) |
3777 | + "ti1_uniq" UNIQUE, btree (c1) | |
3778 | 3778 | |
3779 | 3779 | EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c4) = '1' AND to_tsvector('english', c4) @@ 'a & b' AND ctid = '(1,1)'; |
3780 | 3780 | QUERY PLAN |
@@ -4979,12 +4979,12 @@ error hint: | ||
4979 | 4979 | |
4980 | 4980 | -- No. S-3-8-2 |
4981 | 4981 | EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1; |
4982 | - QUERY PLAN | |
4983 | --------------------------- | |
4982 | + QUERY PLAN | |
4983 | +----------------------------- | |
4984 | 4984 | Append |
4985 | - -> Seq Scan on p1 | |
4985 | + -> Seq Scan on p1 p1_1 | |
4986 | 4986 | Filter: (c1 = 1) |
4987 | - -> Seq Scan on p1c1 | |
4987 | + -> Seq Scan on p1c1 p1_2 | |
4988 | 4988 | Filter: (c1 = 1) |
4989 | 4989 | (5 rows) |
4990 | 4990 |
@@ -4997,12 +4997,12 @@ not used hint: | ||
4997 | 4997 | duplication hint: |
4998 | 4998 | error hint: |
4999 | 4999 | |
5000 | - QUERY PLAN | |
5001 | ---------------------------------------- | |
5000 | + QUERY PLAN | |
5001 | +-------------------------------------------- | |
5002 | 5002 | Append |
5003 | - -> Index Scan using p1_i on p1 | |
5003 | + -> Index Scan using p1_i on p1 p1_1 | |
5004 | 5004 | Index Cond: (c1 = 1) |
5005 | - -> Index Scan using p1c1_i on p1c1 | |
5005 | + -> Index Scan using p1c1_i on p1c1 p1_2 | |
5006 | 5006 | Index Cond: (c1 = 1) |
5007 | 5007 | (5 rows) |
5008 | 5008 |
@@ -5050,14 +5050,14 @@ error hint: | ||
5050 | 5050 | |
5051 | 5051 | -- No. S-3-8-4 |
5052 | 5052 | EXPLAIN (COSTS false) UPDATE s1.p1 SET c4 = c4 WHERE c1 = 1; |
5053 | - QUERY PLAN | |
5054 | --------------------------- | |
5053 | + QUERY PLAN | |
5054 | +----------------------------- | |
5055 | 5055 | Update on p1 |
5056 | 5056 | Update on p1 |
5057 | - Update on p1c1 | |
5057 | + Update on p1c1 p1_1 | |
5058 | 5058 | -> Seq Scan on p1 |
5059 | 5059 | Filter: (c1 = 1) |
5060 | - -> Seq Scan on p1c1 | |
5060 | + -> Seq Scan on p1c1 p1_1 | |
5061 | 5061 | Filter: (c1 = 1) |
5062 | 5062 | (7 rows) |
5063 | 5063 |
@@ -5070,14 +5070,14 @@ not used hint: | ||
5070 | 5070 | duplication hint: |
5071 | 5071 | error hint: |
5072 | 5072 | |
5073 | - QUERY PLAN | |
5074 | ---------------------------------------- | |
5073 | + QUERY PLAN | |
5074 | +-------------------------------------------- | |
5075 | 5075 | Update on p1 |
5076 | 5076 | Update on p1 |
5077 | - Update on p1c1 | |
5077 | + Update on p1c1 p1_1 | |
5078 | 5078 | -> Index Scan using p1_i on p1 |
5079 | 5079 | Index Cond: (c1 = 1) |
5080 | - -> Index Scan using p1c1_i on p1c1 | |
5080 | + -> Index Scan using p1c1_i on p1c1 p1_1 | |
5081 | 5081 | Index Cond: (c1 = 1) |
5082 | 5082 | (7 rows) |
5083 | 5083 |
@@ -5094,14 +5094,14 @@ not used hint: | ||
5094 | 5094 | duplication hint: |
5095 | 5095 | error hint: |
5096 | 5096 | |
5097 | - QUERY PLAN | |
5098 | ------------------------------------------- | |
5097 | + QUERY PLAN | |
5098 | +----------------------------------------------- | |
5099 | 5099 | Update on p1 |
5100 | 5100 | Update on p1 |
5101 | - Update on p1c1 | |
5101 | + Update on p1c1 p1_1 | |
5102 | 5102 | -> Index Scan using p1_pkey on p1 |
5103 | 5103 | Index Cond: (c1 = 1) |
5104 | - -> Index Scan using p1c1_pkey on p1c1 | |
5104 | + -> Index Scan using p1c1_pkey on p1c1 p1_1 | |
5105 | 5105 | Index Cond: (c1 = 1) |
5106 | 5106 | (7 rows) |
5107 | 5107 |
@@ -5110,12 +5110,12 @@ error hint: | ||
5110 | 5110 | ---- |
5111 | 5111 | -- No. S-3-9-1 |
5112 | 5112 | EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE c1 = 1; |
5113 | - QUERY PLAN | |
5114 | --------------------------- | |
5113 | + QUERY PLAN | |
5114 | +----------------------------- | |
5115 | 5115 | Append |
5116 | - -> Seq Scan on p1 | |
5116 | + -> Seq Scan on p1 p1_1 | |
5117 | 5117 | Filter: (c1 = 1) |
5118 | - -> Seq Scan on p1c1 | |
5118 | + -> Seq Scan on p1c1 p1_2 | |
5119 | 5119 | Filter: (c1 = 1) |
5120 | 5120 | (5 rows) |
5121 | 5121 |
@@ -5128,25 +5128,25 @@ not used hint: | ||
5128 | 5128 | duplication hint: |
5129 | 5129 | error hint: |
5130 | 5130 | |
5131 | - QUERY PLAN | |
5132 | ---------------------------------------- | |
5131 | + QUERY PLAN | |
5132 | +-------------------------------------------- | |
5133 | 5133 | Append |
5134 | - -> Index Scan using p1_i on p1 | |
5134 | + -> Index Scan using p1_i on p1 p1_1 | |
5135 | 5135 | Index Cond: (c1 = 1) |
5136 | - -> Index Scan using p1c1_i on p1c1 | |
5136 | + -> Index Scan using p1c1_i on p1c1 p1_2 | |
5137 | 5137 | Index Cond: (c1 = 1) |
5138 | 5138 | (5 rows) |
5139 | 5139 | |
5140 | 5140 | -- No. S-3-9-2 |
5141 | 5141 | EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1; |
5142 | - QUERY PLAN | |
5143 | --------------------------- | |
5142 | + QUERY PLAN | |
5143 | +------------------------------- | |
5144 | 5144 | Append |
5145 | - -> Seq Scan on p2 | |
5145 | + -> Seq Scan on p2 p2_1 | |
5146 | 5146 | Filter: (c1 = 1) |
5147 | - -> Seq Scan on p2c1 | |
5147 | + -> Seq Scan on p2c1 p2_2 | |
5148 | 5148 | Filter: (c1 = 1) |
5149 | - -> Seq Scan on p2c1c1 | |
5149 | + -> Seq Scan on p2c1c1 p2_3 | |
5150 | 5150 | Filter: (c1 = 1) |
5151 | 5151 | (7 rows) |
5152 | 5152 |
@@ -5159,14 +5159,14 @@ not used hint: | ||
5159 | 5159 | duplication hint: |
5160 | 5160 | error hint: |
5161 | 5161 | |
5162 | - QUERY PLAN | |
5163 | -------------------------------------------- | |
5162 | + QUERY PLAN | |
5163 | +------------------------------------------------ | |
5164 | 5164 | Append |
5165 | - -> Index Scan using p2_i on p2 | |
5165 | + -> Index Scan using p2_i on p2 p2_1 | |
5166 | 5166 | Index Cond: (c1 = 1) |
5167 | - -> Index Scan using p2c1_i on p2c1 | |
5167 | + -> Index Scan using p2c1_i on p2c1 p2_2 | |
5168 | 5168 | Index Cond: (c1 = 1) |
5169 | - -> Index Scan using p2c1c1_i on p2c1c1 | |
5169 | + -> Index Scan using p2c1c1_i on p2c1c1 p2_3 | |
5170 | 5170 | Index Cond: (c1 = 1) |
5171 | 5171 | (7 rows) |
5172 | 5172 |
@@ -5174,14 +5174,14 @@ error hint: | ||
5174 | 5174 | ---- No. S-3-10 inheritance table specified table |
5175 | 5175 | ---- |
5176 | 5176 | EXPLAIN (COSTS false) SELECT * FROM s1.p2 WHERE c1 = 1; |
5177 | - QUERY PLAN | |
5178 | --------------------------- | |
5177 | + QUERY PLAN | |
5178 | +------------------------------- | |
5179 | 5179 | Append |
5180 | - -> Seq Scan on p2 | |
5180 | + -> Seq Scan on p2 p2_1 | |
5181 | 5181 | Filter: (c1 = 1) |
5182 | - -> Seq Scan on p2c1 | |
5182 | + -> Seq Scan on p2c1 p2_2 | |
5183 | 5183 | Filter: (c1 = 1) |
5184 | - -> Seq Scan on p2c1c1 | |
5184 | + -> Seq Scan on p2c1c1 p2_3 | |
5185 | 5185 | Filter: (c1 = 1) |
5186 | 5186 | (7 rows) |
5187 | 5187 |
@@ -5195,14 +5195,14 @@ not used hint: | ||
5195 | 5195 | duplication hint: |
5196 | 5196 | error hint: |
5197 | 5197 | |
5198 | - QUERY PLAN | |
5199 | -------------------------------------------- | |
5198 | + QUERY PLAN | |
5199 | +------------------------------------------------ | |
5200 | 5200 | Append |
5201 | - -> Index Scan using p2_i on p2 | |
5201 | + -> Index Scan using p2_i on p2 p2_1 | |
5202 | 5202 | Index Cond: (c1 = 1) |
5203 | - -> Index Scan using p2c1_i on p2c1 | |
5203 | + -> Index Scan using p2c1_i on p2c1 p2_2 | |
5204 | 5204 | Index Cond: (c1 = 1) |
5205 | - -> Index Scan using p2c1c1_i on p2c1c1 | |
5205 | + -> Index Scan using p2c1c1_i on p2c1c1 p2_3 | |
5206 | 5206 | Index Cond: (c1 = 1) |
5207 | 5207 | (7 rows) |
5208 | 5208 |
@@ -5216,14 +5216,14 @@ not used hint: | ||
5216 | 5216 | duplication hint: |
5217 | 5217 | error hint: |
5218 | 5218 | |
5219 | - QUERY PLAN | |
5220 | ---------------------------------------- | |
5219 | + QUERY PLAN | |
5220 | +-------------------------------------------- | |
5221 | 5221 | Append |
5222 | - -> Seq Scan on p2 | |
5222 | + -> Seq Scan on p2 p2_1 | |
5223 | 5223 | Filter: (c1 = 1) |
5224 | - -> Index Scan using p2c1_i on p2c1 | |
5224 | + -> Index Scan using p2c1_i on p2c1 p2_2 | |
5225 | 5225 | Index Cond: (c1 = 1) |
5226 | - -> Seq Scan on p2c1c1 | |
5226 | + -> Seq Scan on p2c1c1 p2_3 | |
5227 | 5227 | Filter: (c1 = 1) |
5228 | 5228 | (7 rows) |
5229 | 5229 |
@@ -5232,12 +5232,12 @@ error hint: | ||
5232 | 5232 | EXPLAIN SELECT c4 FROM s1.p1 WHERE c2 * 2 < 100 AND c1 < 10; |
5233 | 5233 | \o |
5234 | 5234 | \! sql/maskout.sh results/ut-S.tmpout |
5235 | - QUERY PLAN | |
5236 | ----------------------------------------------------------- | |
5235 | + QUERY PLAN | |
5236 | +--------------------------------------------------------------- | |
5237 | 5237 | Append (cost=xxx..xxx rows=4 width=xxx) |
5238 | - -> Seq Scan on p1 (cost=xxx..xxx rows=1 width=xxx) | |
5238 | + -> Seq Scan on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
5239 | 5239 | Filter: ((c1 < 10) AND ((c2 * 2) < 100)) |
5240 | - -> Seq Scan on p1c1 (cost=xxx..xxx rows=3 width=xxx) | |
5240 | + -> Seq Scan on p1c1 p1_2 (cost=xxx..xxx rows=3 width=xxx) | |
5241 | 5241 | Filter: ((c1 < 10) AND ((c2 * 2) < 100)) |
5242 | 5242 | |
5243 | 5243 | \o results/ut-S.tmpout |
@@ -5253,12 +5253,12 @@ error hint: | ||
5253 | 5253 | |
5254 | 5254 | \o |
5255 | 5255 | \! sql/maskout.sh results/ut-S.tmpout |
5256 | - QUERY PLAN | |
5257 | ------------------------------------------------------------------------------------- | |
5256 | + QUERY PLAN | |
5257 | +----------------------------------------------------------------------------------------- | |
5258 | 5258 | Append (cost=xxx..xxx rows=4 width=xxx) |
5259 | - -> Index Scan using p1_parent on p1 (cost=xxx..xxx rows=1 width=xxx) | |
5259 | + -> Index Scan using p1_parent on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
5260 | 5260 | Filter: ((c2 * 2) < 100) |
5261 | - -> Index Scan using p1c1_c4_expr_idx on p1c1 (cost=xxx..xxx rows=3 width=xxx) | |
5261 | + -> Index Scan using p1c1_c4_expr_idx on p1c1 p1_2 (cost=xxx..xxx rows=3 width=xxx) | |
5262 | 5262 | Filter: ((c2 * 2) < 100) |
5263 | 5263 | |
5264 | 5264 | -- No. S-3-10-4 |
@@ -5277,16 +5277,16 @@ error hint: | ||
5277 | 5277 | |
5278 | 5278 | \o |
5279 | 5279 | \! sql/maskout.sh results/ut-S.tmpout |
5280 | - QUERY PLAN | |
5281 | -------------------------------------------------------------------------------- | |
5280 | + QUERY PLAN | |
5281 | +----------------------------------------------------------------------------------- | |
5282 | 5282 | Append (cost=xxx..xxx rows=4 width=xxx) |
5283 | - -> Index Scan using p1_i2 on p1 (cost=xxx..xxx rows=1 width=xxx) | |
5283 | + -> Index Scan using p1_i2 on p1 p1_1 (cost=xxx..xxx rows=1 width=xxx) | |
5284 | 5284 | Index Cond: (c2 = 1) |
5285 | - -> Seq Scan on p1c1 (cost={inf}..{inf} rows=1 width=xxx) | |
5285 | + -> Seq Scan on p1c1 p1_2 (cost={inf}..{inf} rows=1 width=xxx) | |
5286 | 5286 | Filter: (c2 = 1) |
5287 | - -> Seq Scan on p1c2 (cost={inf}..{inf} rows=1 width=xxx) | |
5287 | + -> Seq Scan on p1c2 p1_3 (cost={inf}..{inf} rows=1 width=xxx) | |
5288 | 5288 | Filter: (c2 = 1) |
5289 | - -> Seq Scan on p1c3 (cost={inf}..{inf} rows=1 width=xxx) | |
5289 | + -> Seq Scan on p1c3 p1_4 (cost={inf}..{inf} rows=1 width=xxx) | |
5290 | 5290 | Filter: (c2 = 1) |
5291 | 5291 | |
5292 | 5292 | -- No. S-3-10-5 |
@@ -5304,14 +5304,14 @@ error hint: | ||
5304 | 5304 | |
5305 | 5305 | \o |
5306 | 5306 | \! sql/maskout.sh results/ut-S.tmpout |
5307 | - QUERY PLAN | |
5308 | ---------------------------------------------------------------------------------- | |
5307 | + QUERY PLAN | |
5308 | +-------------------------------------------------------------------------------------- | |
5309 | 5309 | Append (cost={inf}..{inf} rows=3 width=xxx) |
5310 | - -> Seq Scan on p2 (cost={inf}..{inf} rows=1 width=xxx) | |
5310 | + -> Seq Scan on p2 p2_1 (cost={inf}..{inf} rows=1 width=xxx) | |
5311 | 5311 | Filter: (c1 = 1) |
5312 | - -> Index Scan using p2c1_pkey on p2c1 (cost=xxx..xxx rows=1 width=xxx) | |
5312 | + -> Index Scan using p2c1_pkey on p2c1 p2_2 (cost=xxx..xxx rows=1 width=xxx) | |
5313 | 5313 | Index Cond: (c1 = 1) |
5314 | - -> Seq Scan on p2c1c1 (cost={inf}..{inf} rows=1 width=xxx) | |
5314 | + -> Seq Scan on p2c1c1 p2_3 (cost={inf}..{inf} rows=1 width=xxx) | |
5315 | 5315 | Filter: (c1 = 1) |
5316 | 5316 | |
5317 | 5317 | ---- |
@@ -6032,12 +6032,12 @@ not used hint: | ||
6032 | 6032 | duplication hint: |
6033 | 6033 | error hint: |
6034 | 6034 | |
6035 | - QUERY PLAN | |
6036 | ------------------------------------------- | |
6035 | + QUERY PLAN | |
6036 | +----------------------------------------------- | |
6037 | 6037 | Append |
6038 | - -> Index Scan using p1_pkey on p1 | |
6038 | + -> Index Scan using p1_pkey on p1 p1_1 | |
6039 | 6039 | Index Cond: (c1 = 1) |
6040 | - -> Index Scan using p1c1_pkey on p1c1 | |
6040 | + -> Index Scan using p1c1_pkey on p1c1 p1_2 | |
6041 | 6041 | Index Cond: (c1 = 1) |
6042 | 6042 | (5 rows) |
6043 | 6043 |
@@ -6053,12 +6053,12 @@ not used hint: | ||
6053 | 6053 | duplication hint: |
6054 | 6054 | error hint: |
6055 | 6055 | |
6056 | - QUERY PLAN | |
6057 | ---------------------------------------- | |
6056 | + QUERY PLAN | |
6057 | +-------------------------------------------- | |
6058 | 6058 | Append |
6059 | - -> Index Scan using p1_i on p1 | |
6059 | + -> Index Scan using p1_i on p1 p1_1 | |
6060 | 6060 | Index Cond: (c1 = 1) |
6061 | - -> Index Scan using p1c1_i on p1c1 | |
6061 | + -> Index Scan using p1c1_i on p1c1 p1_2 | |
6062 | 6062 | Index Cond: (c1 = 1) |
6063 | 6063 | (5 rows) |
6064 | 6064 |
@@ -6074,12 +6074,12 @@ not used hint: | ||
6074 | 6074 | duplication hint: |
6075 | 6075 | error hint: |
6076 | 6076 | |
6077 | - QUERY PLAN | |
6078 | --------------------------- | |
6077 | + QUERY PLAN | |
6078 | +----------------------------- | |
6079 | 6079 | Append |
6080 | - -> Seq Scan on p1 | |
6080 | + -> Seq Scan on p1 p1_1 | |
6081 | 6081 | Filter: (c1 = 1) |
6082 | - -> Seq Scan on p1c1 | |
6082 | + -> Seq Scan on p1c1 p1_2 | |
6083 | 6083 | Filter: (c1 = 1) |
6084 | 6084 | (5 rows) |
6085 | 6085 |
@@ -97,20 +97,20 @@ not used hint: | ||
97 | 97 | duplication hint: |
98 | 98 | error hint: |
99 | 99 | |
100 | - QUERY PLAN | |
101 | -------------------------------------------- | |
100 | + QUERY PLAN | |
101 | +------------------------------------------------ | |
102 | 102 | Gather |
103 | 103 | Workers Planned: 1 |
104 | 104 | -> Append |
105 | - -> Parallel Seq Scan on p1 | |
106 | - -> Parallel Seq Scan on p1_c1 | |
107 | - -> Parallel Seq Scan on p1_c2 | |
108 | - -> Parallel Seq Scan on p1_c3 | |
109 | - -> Parallel Seq Scan on p1_c4 | |
110 | - -> Parallel Seq Scan on p1_c1_c1 | |
111 | - -> Parallel Seq Scan on p1_c1_c2 | |
112 | - -> Parallel Seq Scan on p1_c3_c1 | |
113 | - -> Parallel Seq Scan on p1_c3_c2 | |
105 | + -> Parallel Seq Scan on p1 p1_1 | |
106 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
107 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
108 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
109 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
110 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
111 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
112 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
113 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
114 | 114 | (12 rows) |
115 | 115 | |
116 | 116 | SET enable_parallel_append to true; |
@@ -123,20 +123,20 @@ not used hint: | ||
123 | 123 | duplication hint: |
124 | 124 | error hint: |
125 | 125 | |
126 | - QUERY PLAN | |
127 | -------------------------------------------- | |
126 | + QUERY PLAN | |
127 | +------------------------------------------------ | |
128 | 128 | Gather |
129 | 129 | Workers Planned: 2 |
130 | 130 | -> Parallel Append |
131 | - -> Seq Scan on p1 | |
132 | - -> Seq Scan on p1_c1 | |
133 | - -> Seq Scan on p1_c3 | |
134 | - -> Parallel Seq Scan on p1_c2 | |
135 | - -> Parallel Seq Scan on p1_c4 | |
136 | - -> Parallel Seq Scan on p1_c1_c1 | |
137 | - -> Parallel Seq Scan on p1_c1_c2 | |
138 | - -> Parallel Seq Scan on p1_c3_c1 | |
139 | - -> Parallel Seq Scan on p1_c3_c2 | |
131 | + -> Seq Scan on p1 p1_1 | |
132 | + -> Seq Scan on p1_c1 p1_2 | |
133 | + -> Seq Scan on p1_c3 p1_4 | |
134 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
135 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
136 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
137 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
138 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
139 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
140 | 140 | (12 rows) |
141 | 141 | |
142 | 142 | SET parallel_setup_cost to DEFAULT; |
@@ -153,20 +153,20 @@ not used hint: | ||
153 | 153 | duplication hint: |
154 | 154 | error hint: |
155 | 155 | |
156 | - QUERY PLAN | |
157 | -------------------------------------------- | |
156 | + QUERY PLAN | |
157 | +------------------------------------------------ | |
158 | 158 | Gather |
159 | 159 | Workers Planned: 8 |
160 | 160 | -> Append |
161 | - -> Parallel Seq Scan on p1 | |
162 | - -> Parallel Seq Scan on p1_c1 | |
163 | - -> Parallel Seq Scan on p1_c2 | |
164 | - -> Parallel Seq Scan on p1_c3 | |
165 | - -> Parallel Seq Scan on p1_c4 | |
166 | - -> Parallel Seq Scan on p1_c1_c1 | |
167 | - -> Parallel Seq Scan on p1_c1_c2 | |
168 | - -> Parallel Seq Scan on p1_c3_c1 | |
169 | - -> Parallel Seq Scan on p1_c3_c2 | |
161 | + -> Parallel Seq Scan on p1 p1_1 | |
162 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
163 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
164 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
165 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
166 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
167 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
168 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
169 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
170 | 170 | (12 rows) |
171 | 171 | |
172 | 172 | SET enable_parallel_append to true; |
@@ -179,20 +179,20 @@ not used hint: | ||
179 | 179 | duplication hint: |
180 | 180 | error hint: |
181 | 181 | |
182 | - QUERY PLAN | |
183 | -------------------------------------------- | |
182 | + QUERY PLAN | |
183 | +------------------------------------------------ | |
184 | 184 | Gather |
185 | 185 | Workers Planned: 8 |
186 | 186 | -> Parallel Append |
187 | - -> Seq Scan on p1 | |
188 | - -> Seq Scan on p1_c1 | |
189 | - -> Seq Scan on p1_c3 | |
190 | - -> Parallel Seq Scan on p1_c2 | |
191 | - -> Parallel Seq Scan on p1_c4 | |
192 | - -> Parallel Seq Scan on p1_c1_c1 | |
193 | - -> Parallel Seq Scan on p1_c1_c2 | |
194 | - -> Parallel Seq Scan on p1_c3_c1 | |
195 | - -> Parallel Seq Scan on p1_c3_c2 | |
187 | + -> Seq Scan on p1 p1_1 | |
188 | + -> Seq Scan on p1_c1 p1_2 | |
189 | + -> Seq Scan on p1_c3 p1_4 | |
190 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
191 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
192 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
193 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
194 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
195 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
196 | 196 | (12 rows) |
197 | 197 | |
198 | 198 | -- hinting on children doesn't work (changed as of pg_hint_plan 10) |
@@ -206,18 +206,18 @@ not used hint: | ||
206 | 206 | duplication hint: |
207 | 207 | error hint: |
208 | 208 | |
209 | - QUERY PLAN | |
210 | ----------------------------- | |
209 | + QUERY PLAN | |
210 | +--------------------------------- | |
211 | 211 | Append |
212 | - -> Seq Scan on p1 | |
213 | - -> Seq Scan on p1_c1 | |
214 | - -> Seq Scan on p1_c2 | |
215 | - -> Seq Scan on p1_c3 | |
216 | - -> Seq Scan on p1_c4 | |
217 | - -> Seq Scan on p1_c1_c1 | |
218 | - -> Seq Scan on p1_c1_c2 | |
219 | - -> Seq Scan on p1_c3_c1 | |
220 | - -> Seq Scan on p1_c3_c2 | |
212 | + -> Seq Scan on p1 p1_1 | |
213 | + -> Seq Scan on p1_c1 p1_2 | |
214 | + -> Seq Scan on p1_c2 p1_3 | |
215 | + -> Seq Scan on p1_c3 p1_4 | |
216 | + -> Seq Scan on p1_c4 p1_5 | |
217 | + -> Seq Scan on p1_c1_c1 p1_6 | |
218 | + -> Seq Scan on p1_c1_c2 p1_7 | |
219 | + -> Seq Scan on p1_c3_c1 p1_8 | |
220 | + -> Seq Scan on p1_c3_c2 p1_9 | |
221 | 221 | (10 rows) |
222 | 222 | |
223 | 223 | SET enable_parallel_append to true; |
@@ -230,18 +230,18 @@ not used hint: | ||
230 | 230 | duplication hint: |
231 | 231 | error hint: |
232 | 232 | |
233 | - QUERY PLAN | |
234 | ----------------------------- | |
233 | + QUERY PLAN | |
234 | +--------------------------------- | |
235 | 235 | Append |
236 | - -> Seq Scan on p1 | |
237 | - -> Seq Scan on p1_c1 | |
238 | - -> Seq Scan on p1_c2 | |
239 | - -> Seq Scan on p1_c3 | |
240 | - -> Seq Scan on p1_c4 | |
241 | - -> Seq Scan on p1_c1_c1 | |
242 | - -> Seq Scan on p1_c1_c2 | |
243 | - -> Seq Scan on p1_c3_c1 | |
244 | - -> Seq Scan on p1_c3_c2 | |
236 | + -> Seq Scan on p1 p1_1 | |
237 | + -> Seq Scan on p1_c1 p1_2 | |
238 | + -> Seq Scan on p1_c2 p1_3 | |
239 | + -> Seq Scan on p1_c3 p1_4 | |
240 | + -> Seq Scan on p1_c4 p1_5 | |
241 | + -> Seq Scan on p1_c1_c1 p1_6 | |
242 | + -> Seq Scan on p1_c1_c2 p1_7 | |
243 | + -> Seq Scan on p1_c3_c1 p1_8 | |
244 | + -> Seq Scan on p1_c3_c2 p1_9 | |
245 | 245 | (10 rows) |
246 | 246 | |
247 | 247 | -- Joins |
@@ -357,33 +357,33 @@ not used hint: | ||
357 | 357 | duplication hint: |
358 | 358 | error hint: |
359 | 359 | |
360 | - QUERY PLAN | |
361 | -------------------------------------------------------- | |
360 | + QUERY PLAN | |
361 | +------------------------------------------------------------ | |
362 | 362 | Gather |
363 | 363 | Workers Planned: 1 |
364 | 364 | -> Parallel Hash Join |
365 | 365 | Hash Cond: (p1.id = p2.id) |
366 | 366 | -> Append |
367 | - -> Parallel Seq Scan on p1 | |
368 | - -> Parallel Seq Scan on p1_c1 | |
369 | - -> Parallel Seq Scan on p1_c2 | |
370 | - -> Parallel Seq Scan on p1_c3 | |
371 | - -> Parallel Seq Scan on p1_c4 | |
372 | - -> Parallel Seq Scan on p1_c1_c1 | |
373 | - -> Parallel Seq Scan on p1_c1_c2 | |
374 | - -> Parallel Seq Scan on p1_c3_c1 | |
375 | - -> Parallel Seq Scan on p1_c3_c2 | |
367 | + -> Parallel Seq Scan on p1 p1_1 | |
368 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
369 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
370 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
371 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
372 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
373 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
374 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
375 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
376 | 376 | -> Parallel Hash |
377 | 377 | -> Append |
378 | - -> Parallel Seq Scan on p2 | |
379 | - -> Parallel Seq Scan on p2_c1 | |
380 | - -> Parallel Seq Scan on p2_c2 | |
381 | - -> Parallel Seq Scan on p2_c3 | |
382 | - -> Parallel Seq Scan on p2_c4 | |
383 | - -> Parallel Seq Scan on p2_c1_c1 | |
384 | - -> Parallel Seq Scan on p2_c1_c2 | |
385 | - -> Parallel Seq Scan on p2_c3_c1 | |
386 | - -> Parallel Seq Scan on p2_c3_c2 | |
378 | + -> Parallel Seq Scan on p2 p2_1 | |
379 | + -> Parallel Seq Scan on p2_c1 p2_2 | |
380 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
381 | + -> Parallel Seq Scan on p2_c3 p2_4 | |
382 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
383 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
384 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
385 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
386 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
387 | 387 | (25 rows) |
388 | 388 | |
389 | 389 | SET enable_parallel_append to true; |
@@ -396,33 +396,33 @@ not used hint: | ||
396 | 396 | duplication hint: |
397 | 397 | error hint: |
398 | 398 | |
399 | - QUERY PLAN | |
400 | -------------------------------------------------------- | |
399 | + QUERY PLAN | |
400 | +------------------------------------------------------------ | |
401 | 401 | Gather |
402 | 402 | Workers Planned: 2 |
403 | 403 | -> Parallel Hash Join |
404 | 404 | Hash Cond: (p1.id = p2.id) |
405 | 405 | -> Parallel Append |
406 | - -> Seq Scan on p1 | |
407 | - -> Seq Scan on p1_c1 | |
408 | - -> Seq Scan on p1_c3 | |
409 | - -> Parallel Seq Scan on p1_c2 | |
410 | - -> Parallel Seq Scan on p1_c4 | |
411 | - -> Parallel Seq Scan on p1_c1_c1 | |
412 | - -> Parallel Seq Scan on p1_c1_c2 | |
413 | - -> Parallel Seq Scan on p1_c3_c1 | |
414 | - -> Parallel Seq Scan on p1_c3_c2 | |
406 | + -> Seq Scan on p1 p1_1 | |
407 | + -> Seq Scan on p1_c1 p1_2 | |
408 | + -> Seq Scan on p1_c3 p1_4 | |
409 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
410 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
411 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
412 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
413 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
414 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
415 | 415 | -> Parallel Hash |
416 | 416 | -> Parallel Append |
417 | - -> Seq Scan on p2 | |
418 | - -> Seq Scan on p2_c1 | |
419 | - -> Seq Scan on p2_c3 | |
420 | - -> Parallel Seq Scan on p2_c2 | |
421 | - -> Parallel Seq Scan on p2_c4 | |
422 | - -> Parallel Seq Scan on p2_c1_c1 | |
423 | - -> Parallel Seq Scan on p2_c1_c2 | |
424 | - -> Parallel Seq Scan on p2_c3_c1 | |
425 | - -> Parallel Seq Scan on p2_c3_c2 | |
417 | + -> Seq Scan on p2 p2_1 | |
418 | + -> Seq Scan on p2_c1 p2_2 | |
419 | + -> Seq Scan on p2_c3 p2_4 | |
420 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
421 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
422 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
423 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
424 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
425 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
426 | 426 | (25 rows) |
427 | 427 | |
428 | 428 | SET enable_parallel_append to false; |
@@ -436,33 +436,33 @@ not used hint: | ||
436 | 436 | duplication hint: |
437 | 437 | error hint: |
438 | 438 | |
439 | - QUERY PLAN | |
440 | -------------------------------------------------- | |
439 | + QUERY PLAN | |
440 | +------------------------------------------------------ | |
441 | 441 | Gather |
442 | 442 | Workers Planned: 1 |
443 | 443 | -> Hash Join |
444 | 444 | Hash Cond: (p1.id = p2.id) |
445 | 445 | -> Append |
446 | - -> Parallel Seq Scan on p1 | |
447 | - -> Parallel Seq Scan on p1_c1 | |
448 | - -> Parallel Seq Scan on p1_c2 | |
449 | - -> Parallel Seq Scan on p1_c3 | |
450 | - -> Parallel Seq Scan on p1_c4 | |
451 | - -> Parallel Seq Scan on p1_c1_c1 | |
452 | - -> Parallel Seq Scan on p1_c1_c2 | |
453 | - -> Parallel Seq Scan on p1_c3_c1 | |
454 | - -> Parallel Seq Scan on p1_c3_c2 | |
446 | + -> Parallel Seq Scan on p1 p1_1 | |
447 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
448 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
449 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
450 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
451 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
452 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
453 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
454 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
455 | 455 | -> Hash |
456 | 456 | -> Append |
457 | - -> Seq Scan on p2 | |
458 | - -> Seq Scan on p2_c1 | |
459 | - -> Seq Scan on p2_c2 | |
460 | - -> Seq Scan on p2_c3 | |
461 | - -> Seq Scan on p2_c4 | |
462 | - -> Seq Scan on p2_c1_c1 | |
463 | - -> Seq Scan on p2_c1_c2 | |
464 | - -> Seq Scan on p2_c3_c1 | |
465 | - -> Seq Scan on p2_c3_c2 | |
457 | + -> Seq Scan on p2 p2_1 | |
458 | + -> Seq Scan on p2_c1 p2_2 | |
459 | + -> Seq Scan on p2_c2 p2_3 | |
460 | + -> Seq Scan on p2_c3 p2_4 | |
461 | + -> Seq Scan on p2_c4 p2_5 | |
462 | + -> Seq Scan on p2_c1_c1 p2_6 | |
463 | + -> Seq Scan on p2_c1_c2 p2_7 | |
464 | + -> Seq Scan on p2_c3_c1 p2_8 | |
465 | + -> Seq Scan on p2_c3_c2 p2_9 | |
466 | 466 | (25 rows) |
467 | 467 | |
468 | 468 | SET enable_parallel_append to true; |
@@ -476,33 +476,33 @@ not used hint: | ||
476 | 476 | duplication hint: |
477 | 477 | error hint: |
478 | 478 | |
479 | - QUERY PLAN | |
480 | -------------------------------------------------- | |
479 | + QUERY PLAN | |
480 | +------------------------------------------------------ | |
481 | 481 | Gather |
482 | 482 | Workers Planned: 2 |
483 | 483 | -> Parallel Hash Join |
484 | - Hash Cond: (p1.id = p2_c2.id) | |
484 | + Hash Cond: (p1.id = p2.id) | |
485 | 485 | -> Parallel Append |
486 | - -> Seq Scan on p1 | |
487 | - -> Seq Scan on p1_c1 | |
488 | - -> Seq Scan on p1_c3 | |
489 | - -> Parallel Seq Scan on p1_c2 | |
490 | - -> Parallel Seq Scan on p1_c4 | |
491 | - -> Parallel Seq Scan on p1_c1_c1 | |
492 | - -> Parallel Seq Scan on p1_c1_c2 | |
493 | - -> Parallel Seq Scan on p1_c3_c1 | |
494 | - -> Parallel Seq Scan on p1_c3_c2 | |
486 | + -> Seq Scan on p1 p1_1 | |
487 | + -> Seq Scan on p1_c1 p1_2 | |
488 | + -> Seq Scan on p1_c3 p1_4 | |
489 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
490 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
491 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
492 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
493 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
494 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
495 | 495 | -> Parallel Hash |
496 | 496 | -> Parallel Append |
497 | - -> Seq Scan on p2_c2 | |
498 | - -> Seq Scan on p2_c4 | |
499 | - -> Seq Scan on p2_c1_c1 | |
500 | - -> Seq Scan on p2_c1_c2 | |
501 | - -> Seq Scan on p2_c3_c1 | |
502 | - -> Seq Scan on p2_c3_c2 | |
503 | - -> Seq Scan on p2 | |
504 | - -> Seq Scan on p2_c1 | |
505 | - -> Seq Scan on p2_c3 | |
497 | + -> Seq Scan on p2_c2 p2_3 | |
498 | + -> Seq Scan on p2_c4 p2_5 | |
499 | + -> Seq Scan on p2_c1_c1 p2_6 | |
500 | + -> Seq Scan on p2_c1_c2 p2_7 | |
501 | + -> Seq Scan on p2_c3_c1 p2_8 | |
502 | + -> Seq Scan on p2_c3_c2 p2_9 | |
503 | + -> Seq Scan on p2 p2_1 | |
504 | + -> Seq Scan on p2_c1 p2_2 | |
505 | + -> Seq Scan on p2_c3 p2_4 | |
506 | 506 | (25 rows) |
507 | 507 | |
508 | 508 | SET parallel_setup_cost to DEFAULT; |
@@ -518,31 +518,31 @@ not used hint: | ||
518 | 518 | duplication hint: |
519 | 519 | error hint: |
520 | 520 | |
521 | - QUERY PLAN | |
522 | ----------------------------------------- | |
521 | + QUERY PLAN | |
522 | +--------------------------------------------- | |
523 | 523 | Hash Join |
524 | 524 | Hash Cond: (p1.id = p2.id) |
525 | 525 | -> Append |
526 | - -> Seq Scan on p1 | |
527 | - -> Seq Scan on p1_c1 | |
528 | - -> Seq Scan on p1_c2 | |
529 | - -> Seq Scan on p1_c3 | |
530 | - -> Seq Scan on p1_c4 | |
531 | - -> Seq Scan on p1_c1_c1 | |
532 | - -> Seq Scan on p1_c1_c2 | |
533 | - -> Seq Scan on p1_c3_c1 | |
534 | - -> Seq Scan on p1_c3_c2 | |
526 | + -> Seq Scan on p1 p1_1 | |
527 | + -> Seq Scan on p1_c1 p1_2 | |
528 | + -> Seq Scan on p1_c2 p1_3 | |
529 | + -> Seq Scan on p1_c3 p1_4 | |
530 | + -> Seq Scan on p1_c4 p1_5 | |
531 | + -> Seq Scan on p1_c1_c1 p1_6 | |
532 | + -> Seq Scan on p1_c1_c2 p1_7 | |
533 | + -> Seq Scan on p1_c3_c1 p1_8 | |
534 | + -> Seq Scan on p1_c3_c2 p1_9 | |
535 | 535 | -> Hash |
536 | 536 | -> Append |
537 | - -> Seq Scan on p2 | |
538 | - -> Seq Scan on p2_c1 | |
539 | - -> Seq Scan on p2_c2 | |
540 | - -> Seq Scan on p2_c3 | |
541 | - -> Seq Scan on p2_c4 | |
542 | - -> Seq Scan on p2_c1_c1 | |
543 | - -> Seq Scan on p2_c1_c2 | |
544 | - -> Seq Scan on p2_c3_c1 | |
545 | - -> Seq Scan on p2_c3_c2 | |
537 | + -> Seq Scan on p2 p2_1 | |
538 | + -> Seq Scan on p2_c1 p2_2 | |
539 | + -> Seq Scan on p2_c2 p2_3 | |
540 | + -> Seq Scan on p2_c3 p2_4 | |
541 | + -> Seq Scan on p2_c4 p2_5 | |
542 | + -> Seq Scan on p2_c1_c1 p2_6 | |
543 | + -> Seq Scan on p2_c1_c2 p2_7 | |
544 | + -> Seq Scan on p2_c3_c1 p2_8 | |
545 | + -> Seq Scan on p2_c3_c2 p2_9 | |
546 | 546 | (23 rows) |
547 | 547 | |
548 | 548 | /*+Parallel(p2 8 hard)*/ |
@@ -554,33 +554,33 @@ not used hint: | ||
554 | 554 | duplication hint: |
555 | 555 | error hint: |
556 | 556 | |
557 | - QUERY PLAN | |
558 | -------------------------------------------------------- | |
557 | + QUERY PLAN | |
558 | +------------------------------------------------------------ | |
559 | 559 | Gather |
560 | 560 | Workers Planned: 8 |
561 | 561 | -> Parallel Hash Join |
562 | 562 | Hash Cond: (p2.id = p1.id) |
563 | 563 | -> Parallel Append |
564 | - -> Seq Scan on p2 | |
565 | - -> Seq Scan on p2_c1 | |
566 | - -> Seq Scan on p2_c3 | |
567 | - -> Parallel Seq Scan on p2_c2 | |
568 | - -> Parallel Seq Scan on p2_c4 | |
569 | - -> Parallel Seq Scan on p2_c1_c1 | |
570 | - -> Parallel Seq Scan on p2_c1_c2 | |
571 | - -> Parallel Seq Scan on p2_c3_c1 | |
572 | - -> Parallel Seq Scan on p2_c3_c2 | |
564 | + -> Seq Scan on p2 p2_1 | |
565 | + -> Seq Scan on p2_c1 p2_2 | |
566 | + -> Seq Scan on p2_c3 p2_4 | |
567 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
568 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
569 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
570 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
571 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
572 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
573 | 573 | -> Parallel Hash |
574 | 574 | -> Parallel Append |
575 | - -> Seq Scan on p1 | |
576 | - -> Seq Scan on p1_c1 | |
577 | - -> Seq Scan on p1_c3 | |
578 | - -> Parallel Seq Scan on p1_c2 | |
579 | - -> Parallel Seq Scan on p1_c4 | |
580 | - -> Parallel Seq Scan on p1_c1_c1 | |
581 | - -> Parallel Seq Scan on p1_c1_c2 | |
582 | - -> Parallel Seq Scan on p1_c3_c1 | |
583 | - -> Parallel Seq Scan on p1_c3_c2 | |
575 | + -> Seq Scan on p1 p1_1 | |
576 | + -> Seq Scan on p1_c1 p1_2 | |
577 | + -> Seq Scan on p1_c3 p1_4 | |
578 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
579 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
580 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
581 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
582 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
583 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
584 | 584 | (25 rows) |
585 | 585 | |
586 | 586 | -- Number of workers results to the largest number |
@@ -595,33 +595,33 @@ not used hint: | ||
595 | 595 | duplication hint: |
596 | 596 | error hint: |
597 | 597 | |
598 | - QUERY PLAN | |
599 | -------------------------------------------------------- | |
598 | + QUERY PLAN | |
599 | +------------------------------------------------------------ | |
600 | 600 | Gather |
601 | 601 | Workers Planned: 8 |
602 | 602 | -> Parallel Hash Join |
603 | 603 | Hash Cond: (p1.id = p2.id) |
604 | 604 | -> Append |
605 | - -> Parallel Seq Scan on p1 | |
606 | - -> Parallel Seq Scan on p1_c1 | |
607 | - -> Parallel Seq Scan on p1_c2 | |
608 | - -> Parallel Seq Scan on p1_c3 | |
609 | - -> Parallel Seq Scan on p1_c4 | |
610 | - -> Parallel Seq Scan on p1_c1_c1 | |
611 | - -> Parallel Seq Scan on p1_c1_c2 | |
612 | - -> Parallel Seq Scan on p1_c3_c1 | |
613 | - -> Parallel Seq Scan on p1_c3_c2 | |
605 | + -> Parallel Seq Scan on p1 p1_1 | |
606 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
607 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
608 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
609 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
610 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
611 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
612 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
613 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
614 | 614 | -> Parallel Hash |
615 | 615 | -> Append |
616 | - -> Parallel Seq Scan on p2 | |
617 | - -> Parallel Seq Scan on p2_c1 | |
618 | - -> Parallel Seq Scan on p2_c2 | |
619 | - -> Parallel Seq Scan on p2_c3 | |
620 | - -> Parallel Seq Scan on p2_c4 | |
621 | - -> Parallel Seq Scan on p2_c1_c1 | |
622 | - -> Parallel Seq Scan on p2_c1_c2 | |
623 | - -> Parallel Seq Scan on p2_c3_c1 | |
624 | - -> Parallel Seq Scan on p2_c3_c2 | |
616 | + -> Parallel Seq Scan on p2 p2_1 | |
617 | + -> Parallel Seq Scan on p2_c1 p2_2 | |
618 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
619 | + -> Parallel Seq Scan on p2_c3 p2_4 | |
620 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
621 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
622 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
623 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
624 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
625 | 625 | (25 rows) |
626 | 626 | |
627 | 627 | SET enable_parallel_append to true; |
@@ -635,33 +635,33 @@ not used hint: | ||
635 | 635 | duplication hint: |
636 | 636 | error hint: |
637 | 637 | |
638 | - QUERY PLAN | |
639 | -------------------------------------------------------- | |
638 | + QUERY PLAN | |
639 | +------------------------------------------------------------ | |
640 | 640 | Gather |
641 | 641 | Workers Planned: 8 |
642 | 642 | -> Parallel Hash Join |
643 | 643 | Hash Cond: (p2.id = p1.id) |
644 | 644 | -> Parallel Append |
645 | - -> Seq Scan on p2 | |
646 | - -> Seq Scan on p2_c1 | |
647 | - -> Seq Scan on p2_c3 | |
648 | - -> Parallel Seq Scan on p2_c2 | |
649 | - -> Parallel Seq Scan on p2_c4 | |
650 | - -> Parallel Seq Scan on p2_c1_c1 | |
651 | - -> Parallel Seq Scan on p2_c1_c2 | |
652 | - -> Parallel Seq Scan on p2_c3_c1 | |
653 | - -> Parallel Seq Scan on p2_c3_c2 | |
645 | + -> Seq Scan on p2 p2_1 | |
646 | + -> Seq Scan on p2_c1 p2_2 | |
647 | + -> Seq Scan on p2_c3 p2_4 | |
648 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
649 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
650 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
651 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
652 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
653 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
654 | 654 | -> Parallel Hash |
655 | 655 | -> Parallel Append |
656 | - -> Seq Scan on p1 | |
657 | - -> Seq Scan on p1_c1 | |
658 | - -> Seq Scan on p1_c3 | |
659 | - -> Parallel Seq Scan on p1_c2 | |
660 | - -> Parallel Seq Scan on p1_c4 | |
661 | - -> Parallel Seq Scan on p1_c1_c1 | |
662 | - -> Parallel Seq Scan on p1_c1_c2 | |
663 | - -> Parallel Seq Scan on p1_c3_c1 | |
664 | - -> Parallel Seq Scan on p1_c3_c2 | |
656 | + -> Seq Scan on p1 p1_1 | |
657 | + -> Seq Scan on p1_c1 p1_2 | |
658 | + -> Seq Scan on p1_c3 p1_4 | |
659 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
660 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
661 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
662 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
663 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
664 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
665 | 665 | (25 rows) |
666 | 666 | |
667 | 667 | -- Mixture with scan hints |
@@ -677,33 +677,33 @@ not used hint: | ||
677 | 677 | duplication hint: |
678 | 678 | error hint: |
679 | 679 | |
680 | - QUERY PLAN | |
681 | --------------------------------------------------------------- | |
680 | + QUERY PLAN | |
681 | +------------------------------------------------------------------- | |
682 | 682 | Hash Join |
683 | 683 | Hash Cond: (p2.id = p1.id) |
684 | 684 | -> Append |
685 | - -> Index Scan using p2_id2_val on p2 | |
686 | - -> Index Scan using p2_c1_id2_val on p2_c1 | |
687 | - -> Index Scan using p2_c2_id2_val on p2_c2 | |
688 | - -> Index Scan using p2_c3_id_val_idx on p2_c3 | |
689 | - -> Index Scan using p2_c4_id_val_idx on p2_c4 | |
690 | - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 | |
691 | - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 | |
692 | - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 | |
693 | - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 | |
685 | + -> Index Scan using p2_id2_val on p2 p2_1 | |
686 | + -> Index Scan using p2_c1_id2_val on p2_c1 p2_2 | |
687 | + -> Index Scan using p2_c2_id2_val on p2_c2 p2_3 | |
688 | + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 | |
689 | + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 | |
690 | + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 | |
691 | + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 | |
692 | + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 | |
693 | + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 | |
694 | 694 | -> Hash |
695 | 695 | -> Gather |
696 | 696 | Workers Planned: 8 |
697 | 697 | -> Append |
698 | - -> Parallel Seq Scan on p1 | |
699 | - -> Parallel Seq Scan on p1_c1 | |
700 | - -> Parallel Seq Scan on p1_c2 | |
701 | - -> Parallel Seq Scan on p1_c3 | |
702 | - -> Parallel Seq Scan on p1_c4 | |
703 | - -> Parallel Seq Scan on p1_c1_c1 | |
704 | - -> Parallel Seq Scan on p1_c1_c2 | |
705 | - -> Parallel Seq Scan on p1_c3_c1 | |
706 | - -> Parallel Seq Scan on p1_c3_c2 | |
698 | + -> Parallel Seq Scan on p1 p1_1 | |
699 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
700 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
701 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
702 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
703 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
704 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
705 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
706 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
707 | 707 | (25 rows) |
708 | 708 | |
709 | 709 | SET enable_parallel_append to true; |
@@ -717,33 +717,33 @@ not used hint: | ||
717 | 717 | duplication hint: |
718 | 718 | error hint: |
719 | 719 | |
720 | - QUERY PLAN | |
721 | --------------------------------------------------------------- | |
720 | + QUERY PLAN | |
721 | +------------------------------------------------------------------- | |
722 | 722 | Hash Join |
723 | 723 | Hash Cond: (p2.id = p1.id) |
724 | 724 | -> Append |
725 | - -> Index Scan using p2_id2_val on p2 | |
726 | - -> Index Scan using p2_c1_id2_val on p2_c1 | |
727 | - -> Index Scan using p2_c2_id2_val on p2_c2 | |
728 | - -> Index Scan using p2_c3_id_val_idx on p2_c3 | |
729 | - -> Index Scan using p2_c4_id_val_idx on p2_c4 | |
730 | - -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 | |
731 | - -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 | |
732 | - -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 | |
733 | - -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 | |
725 | + -> Index Scan using p2_id2_val on p2 p2_1 | |
726 | + -> Index Scan using p2_c1_id2_val on p2_c1 p2_2 | |
727 | + -> Index Scan using p2_c2_id2_val on p2_c2 p2_3 | |
728 | + -> Index Scan using p2_c3_id_val_idx on p2_c3 p2_4 | |
729 | + -> Index Scan using p2_c4_id_val_idx on p2_c4 p2_5 | |
730 | + -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2_6 | |
731 | + -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2_7 | |
732 | + -> Index Scan using p2_c3_c1_id_val_idx on p2_c3_c1 p2_8 | |
733 | + -> Index Scan using p2_c3_c2_id_val_idx on p2_c3_c2 p2_9 | |
734 | 734 | -> Hash |
735 | 735 | -> Gather |
736 | 736 | Workers Planned: 8 |
737 | 737 | -> Parallel Append |
738 | - -> Seq Scan on p1 | |
739 | - -> Seq Scan on p1_c1 | |
740 | - -> Seq Scan on p1_c3 | |
741 | - -> Parallel Seq Scan on p1_c2 | |
742 | - -> Parallel Seq Scan on p1_c4 | |
743 | - -> Parallel Seq Scan on p1_c1_c1 | |
744 | - -> Parallel Seq Scan on p1_c1_c2 | |
745 | - -> Parallel Seq Scan on p1_c3_c1 | |
746 | - -> Parallel Seq Scan on p1_c3_c2 | |
738 | + -> Seq Scan on p1 p1_1 | |
739 | + -> Seq Scan on p1_c1 p1_2 | |
740 | + -> Seq Scan on p1_c3 p1_4 | |
741 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
742 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
743 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
744 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
745 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
746 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
747 | 747 | (25 rows) |
748 | 748 | |
749 | 749 | -- Parallel sequential scan |
@@ -758,33 +758,33 @@ not used hint: | ||
758 | 758 | duplication hint: |
759 | 759 | error hint: |
760 | 760 | |
761 | - QUERY PLAN | |
762 | -------------------------------------------------------- | |
761 | + QUERY PLAN | |
762 | +------------------------------------------------------------ | |
763 | 763 | Gather |
764 | 764 | Workers Planned: 8 |
765 | 765 | -> Parallel Hash Join |
766 | 766 | Hash Cond: (p1.id = p2.id) |
767 | 767 | -> Append |
768 | - -> Parallel Seq Scan on p1 | |
769 | - -> Parallel Seq Scan on p1_c1 | |
770 | - -> Parallel Seq Scan on p1_c2 | |
771 | - -> Parallel Seq Scan on p1_c3 | |
772 | - -> Parallel Seq Scan on p1_c4 | |
773 | - -> Parallel Seq Scan on p1_c1_c1 | |
774 | - -> Parallel Seq Scan on p1_c1_c2 | |
775 | - -> Parallel Seq Scan on p1_c3_c1 | |
776 | - -> Parallel Seq Scan on p1_c3_c2 | |
768 | + -> Parallel Seq Scan on p1 p1_1 | |
769 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
770 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
771 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
772 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
773 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
774 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
775 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
776 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
777 | 777 | -> Parallel Hash |
778 | 778 | -> Append |
779 | - -> Parallel Seq Scan on p2 | |
780 | - -> Parallel Seq Scan on p2_c1 | |
781 | - -> Parallel Seq Scan on p2_c2 | |
782 | - -> Parallel Seq Scan on p2_c3 | |
783 | - -> Parallel Seq Scan on p2_c4 | |
784 | - -> Parallel Seq Scan on p2_c1_c1 | |
785 | - -> Parallel Seq Scan on p2_c1_c2 | |
786 | - -> Parallel Seq Scan on p2_c3_c1 | |
787 | - -> Parallel Seq Scan on p2_c3_c2 | |
779 | + -> Parallel Seq Scan on p2 p2_1 | |
780 | + -> Parallel Seq Scan on p2_c1 p2_2 | |
781 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
782 | + -> Parallel Seq Scan on p2_c3 p2_4 | |
783 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
784 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
785 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
786 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
787 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
788 | 788 | (25 rows) |
789 | 789 | |
790 | 790 | SET enable_parallel_append to true; |
@@ -798,33 +798,33 @@ not used hint: | ||
798 | 798 | duplication hint: |
799 | 799 | error hint: |
800 | 800 | |
801 | - QUERY PLAN | |
802 | -------------------------------------------------------- | |
801 | + QUERY PLAN | |
802 | +------------------------------------------------------------ | |
803 | 803 | Gather |
804 | 804 | Workers Planned: 8 |
805 | 805 | -> Parallel Hash Join |
806 | 806 | Hash Cond: (p1.id = p2.id) |
807 | 807 | -> Parallel Append |
808 | - -> Seq Scan on p1 | |
809 | - -> Seq Scan on p1_c1 | |
810 | - -> Seq Scan on p1_c3 | |
811 | - -> Parallel Seq Scan on p1_c2 | |
812 | - -> Parallel Seq Scan on p1_c4 | |
813 | - -> Parallel Seq Scan on p1_c1_c1 | |
814 | - -> Parallel Seq Scan on p1_c1_c2 | |
815 | - -> Parallel Seq Scan on p1_c3_c1 | |
816 | - -> Parallel Seq Scan on p1_c3_c2 | |
808 | + -> Seq Scan on p1 p1_1 | |
809 | + -> Seq Scan on p1_c1 p1_2 | |
810 | + -> Seq Scan on p1_c3 p1_4 | |
811 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
812 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
813 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
814 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
815 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
816 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
817 | 817 | -> Parallel Hash |
818 | 818 | -> Parallel Append |
819 | - -> Seq Scan on p2 | |
820 | - -> Seq Scan on p2_c1 | |
821 | - -> Seq Scan on p2_c3 | |
822 | - -> Parallel Seq Scan on p2_c2 | |
823 | - -> Parallel Seq Scan on p2_c4 | |
824 | - -> Parallel Seq Scan on p2_c1_c1 | |
825 | - -> Parallel Seq Scan on p2_c1_c2 | |
826 | - -> Parallel Seq Scan on p2_c3_c1 | |
827 | - -> Parallel Seq Scan on p2_c3_c2 | |
819 | + -> Seq Scan on p2 p2_1 | |
820 | + -> Seq Scan on p2_c1 p2_2 | |
821 | + -> Seq Scan on p2_c3 p2_4 | |
822 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
823 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
824 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
825 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
826 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
827 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
828 | 828 | (25 rows) |
829 | 829 | |
830 | 830 | -- Parallel index scan |
@@ -839,33 +839,33 @@ not used hint: | ||
839 | 839 | duplication hint: |
840 | 840 | error hint: |
841 | 841 | |
842 | - QUERY PLAN | |
843 | ------------------------------------------------------------------------ | |
842 | + QUERY PLAN | |
843 | +---------------------------------------------------------------------------- | |
844 | 844 | Gather |
845 | 845 | Workers Planned: 8 |
846 | 846 | -> Parallel Hash Join |
847 | 847 | Hash Cond: (p1.id = p2.id) |
848 | 848 | -> Append |
849 | - -> Parallel Index Scan using p1_pkey on p1 | |
850 | - -> Parallel Index Scan using p1_c1_pkey on p1_c1 | |
851 | - -> Parallel Index Scan using p1_c2_pkey on p1_c2 | |
852 | - -> Parallel Index Scan using p1_c3_pkey on p1_c3 | |
853 | - -> Parallel Index Scan using p1_c4_pkey on p1_c4 | |
854 | - -> Parallel Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
855 | - -> Parallel Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
856 | - -> Parallel Index Scan using p1_c3_c1_pkey on p1_c3_c1 | |
857 | - -> Parallel Index Scan using p1_c3_c2_pkey on p1_c3_c2 | |
849 | + -> Parallel Index Scan using p1_pkey on p1 p1_1 | |
850 | + -> Parallel Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
851 | + -> Parallel Index Scan using p1_c2_pkey on p1_c2 p1_3 | |
852 | + -> Parallel Index Scan using p1_c3_pkey on p1_c3 p1_4 | |
853 | + -> Parallel Index Scan using p1_c4_pkey on p1_c4 p1_5 | |
854 | + -> Parallel Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 | |
855 | + -> Parallel Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 | |
856 | + -> Parallel Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 | |
857 | + -> Parallel Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 | |
858 | 858 | -> Parallel Hash |
859 | 859 | -> Append |
860 | - -> Parallel Seq Scan on p2 | |
861 | - -> Parallel Seq Scan on p2_c1 | |
862 | - -> Parallel Seq Scan on p2_c2 | |
863 | - -> Parallel Seq Scan on p2_c3 | |
864 | - -> Parallel Seq Scan on p2_c4 | |
865 | - -> Parallel Seq Scan on p2_c1_c1 | |
866 | - -> Parallel Seq Scan on p2_c1_c2 | |
867 | - -> Parallel Seq Scan on p2_c3_c1 | |
868 | - -> Parallel Seq Scan on p2_c3_c2 | |
860 | + -> Parallel Seq Scan on p2 p2_1 | |
861 | + -> Parallel Seq Scan on p2_c1 p2_2 | |
862 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
863 | + -> Parallel Seq Scan on p2_c3 p2_4 | |
864 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
865 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
866 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
867 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
868 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
869 | 869 | (25 rows) |
870 | 870 | |
871 | 871 | SET enable_parallel_append to true; |
@@ -879,33 +879,33 @@ not used hint: | ||
879 | 879 | duplication hint: |
880 | 880 | error hint: |
881 | 881 | |
882 | - QUERY PLAN | |
883 | ------------------------------------------------------------------------ | |
882 | + QUERY PLAN | |
883 | +---------------------------------------------------------------------------- | |
884 | 884 | Gather |
885 | 885 | Workers Planned: 8 |
886 | 886 | -> Parallel Hash Join |
887 | 887 | Hash Cond: (p1.id = p2.id) |
888 | 888 | -> Parallel Append |
889 | - -> Parallel Index Scan using p1_pkey on p1 | |
890 | - -> Parallel Index Scan using p1_c1_pkey on p1_c1 | |
891 | - -> Parallel Index Scan using p1_c2_pkey on p1_c2 | |
892 | - -> Parallel Index Scan using p1_c3_pkey on p1_c3 | |
893 | - -> Parallel Index Scan using p1_c4_pkey on p1_c4 | |
894 | - -> Parallel Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
895 | - -> Parallel Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
896 | - -> Parallel Index Scan using p1_c3_c1_pkey on p1_c3_c1 | |
897 | - -> Parallel Index Scan using p1_c3_c2_pkey on p1_c3_c2 | |
889 | + -> Parallel Index Scan using p1_pkey on p1 p1_1 | |
890 | + -> Parallel Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
891 | + -> Parallel Index Scan using p1_c2_pkey on p1_c2 p1_3 | |
892 | + -> Parallel Index Scan using p1_c3_pkey on p1_c3 p1_4 | |
893 | + -> Parallel Index Scan using p1_c4_pkey on p1_c4 p1_5 | |
894 | + -> Parallel Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 | |
895 | + -> Parallel Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 | |
896 | + -> Parallel Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 | |
897 | + -> Parallel Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 | |
898 | 898 | -> Parallel Hash |
899 | 899 | -> Parallel Append |
900 | - -> Seq Scan on p2 | |
901 | - -> Seq Scan on p2_c1 | |
902 | - -> Seq Scan on p2_c3 | |
903 | - -> Parallel Seq Scan on p2_c2 | |
904 | - -> Parallel Seq Scan on p2_c4 | |
905 | - -> Parallel Seq Scan on p2_c1_c1 | |
906 | - -> Parallel Seq Scan on p2_c1_c2 | |
907 | - -> Parallel Seq Scan on p2_c3_c1 | |
908 | - -> Parallel Seq Scan on p2_c3_c2 | |
900 | + -> Seq Scan on p2 p2_1 | |
901 | + -> Seq Scan on p2_c1 p2_2 | |
902 | + -> Seq Scan on p2_c3 p2_4 | |
903 | + -> Parallel Seq Scan on p2_c2 p2_3 | |
904 | + -> Parallel Seq Scan on p2_c4 p2_5 | |
905 | + -> Parallel Seq Scan on p2_c1_c1 p2_6 | |
906 | + -> Parallel Seq Scan on p2_c1_c2 p2_7 | |
907 | + -> Parallel Seq Scan on p2_c3_c1 p2_8 | |
908 | + -> Parallel Seq Scan on p2_c3_c2 p2_9 | |
909 | 909 | (25 rows) |
910 | 910 | |
911 | 911 | -- This hint doesn't turn on parallel, so the Parallel hint is ignored |
@@ -920,56 +920,56 @@ Parallel(p1 0 hard) | ||
920 | 920 | duplication hint: |
921 | 921 | error hint: |
922 | 922 | |
923 | - QUERY PLAN | |
924 | --------------------------------------------------------- | |
923 | + QUERY PLAN | |
924 | +------------------------------------------------------------- | |
925 | 925 | Hash Join |
926 | 926 | Hash Cond: (p1.id = p2.id) |
927 | 927 | -> Append |
928 | - -> Index Scan using p1_pkey on p1 | |
929 | - -> Index Scan using p1_c1_pkey on p1_c1 | |
930 | - -> Index Scan using p1_c2_pkey on p1_c2 | |
931 | - -> Index Scan using p1_c3_pkey on p1_c3 | |
932 | - -> Index Scan using p1_c4_pkey on p1_c4 | |
933 | - -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 | |
934 | - -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 | |
935 | - -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 | |
936 | - -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 | |
928 | + -> Index Scan using p1_pkey on p1 p1_1 | |
929 | + -> Index Scan using p1_c1_pkey on p1_c1 p1_2 | |
930 | + -> Index Scan using p1_c2_pkey on p1_c2 p1_3 | |
931 | + -> Index Scan using p1_c3_pkey on p1_c3 p1_4 | |
932 | + -> Index Scan using p1_c4_pkey on p1_c4 p1_5 | |
933 | + -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1_6 | |
934 | + -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1_7 | |
935 | + -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1_8 | |
936 | + -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1_9 | |
937 | 937 | -> Hash |
938 | 938 | -> Append |
939 | - -> Seq Scan on p2 | |
940 | - -> Seq Scan on p2_c1 | |
941 | - -> Seq Scan on p2_c2 | |
942 | - -> Seq Scan on p2_c3 | |
943 | - -> Seq Scan on p2_c4 | |
944 | - -> Seq Scan on p2_c1_c1 | |
945 | - -> Seq Scan on p2_c1_c2 | |
946 | - -> Seq Scan on p2_c3_c1 | |
947 | - -> Seq Scan on p2_c3_c2 | |
939 | + -> Seq Scan on p2 p2_1 | |
940 | + -> Seq Scan on p2_c1 p2_2 | |
941 | + -> Seq Scan on p2_c2 p2_3 | |
942 | + -> Seq Scan on p2_c3 p2_4 | |
943 | + -> Seq Scan on p2_c4 p2_5 | |
944 | + -> Seq Scan on p2_c1_c1 p2_6 | |
945 | + -> Seq Scan on p2_c1_c2 p2_7 | |
946 | + -> Seq Scan on p2_c3_c1 p2_8 | |
947 | + -> Seq Scan on p2_c3_c2 p2_9 | |
948 | 948 | (23 rows) |
949 | 949 | |
950 | 950 | -- Parallel on UNION |
951 | 951 | EXPLAIN (COSTS false) SELECT id FROM p1 UNION ALL SELECT id FROM p2; |
952 | - QUERY PLAN | |
953 | ----------------------------- | |
952 | + QUERY PLAN | |
953 | +--------------------------------- | |
954 | 954 | Append |
955 | 955 | -> Seq Scan on p1 |
956 | - -> Seq Scan on p1_c1 | |
957 | - -> Seq Scan on p1_c2 | |
958 | - -> Seq Scan on p1_c3 | |
959 | - -> Seq Scan on p1_c4 | |
960 | - -> Seq Scan on p1_c1_c1 | |
961 | - -> Seq Scan on p1_c1_c2 | |
962 | - -> Seq Scan on p1_c3_c1 | |
963 | - -> Seq Scan on p1_c3_c2 | |
956 | + -> Seq Scan on p1_c1 p1_1 | |
957 | + -> Seq Scan on p1_c2 p1_2 | |
958 | + -> Seq Scan on p1_c3 p1_3 | |
959 | + -> Seq Scan on p1_c4 p1_4 | |
960 | + -> Seq Scan on p1_c1_c1 p1_5 | |
961 | + -> Seq Scan on p1_c1_c2 p1_6 | |
962 | + -> Seq Scan on p1_c3_c1 p1_7 | |
963 | + -> Seq Scan on p1_c3_c2 p1_8 | |
964 | 964 | -> Seq Scan on p2 |
965 | - -> Seq Scan on p2_c1 | |
966 | - -> Seq Scan on p2_c2 | |
967 | - -> Seq Scan on p2_c3 | |
968 | - -> Seq Scan on p2_c4 | |
969 | - -> Seq Scan on p2_c1_c1 | |
970 | - -> Seq Scan on p2_c1_c2 | |
971 | - -> Seq Scan on p2_c3_c1 | |
972 | - -> Seq Scan on p2_c3_c2 | |
965 | + -> Seq Scan on p2_c1 p2_1 | |
966 | + -> Seq Scan on p2_c2 p2_2 | |
967 | + -> Seq Scan on p2_c3 p2_3 | |
968 | + -> Seq Scan on p2_c4 p2_4 | |
969 | + -> Seq Scan on p2_c1_c1 p2_5 | |
970 | + -> Seq Scan on p2_c1_c2 p2_6 | |
971 | + -> Seq Scan on p2_c3_c1 p2_7 | |
972 | + -> Seq Scan on p2_c3_c2 p2_8 | |
973 | 973 | (19 rows) |
974 | 974 | |
975 | 975 | -- parallel hinting on any relation enables parallel |
@@ -987,29 +987,29 @@ not used hint: | ||
987 | 987 | duplication hint: |
988 | 988 | error hint: |
989 | 989 | |
990 | - QUERY PLAN | |
991 | -------------------------------------------- | |
990 | + QUERY PLAN | |
991 | +------------------------------------------------ | |
992 | 992 | Gather |
993 | 993 | Workers Planned: 1 |
994 | 994 | -> Parallel Append |
995 | - -> Parallel Seq Scan on p2_c2 | |
996 | - -> Parallel Seq Scan on p2_c4 | |
997 | - -> Parallel Seq Scan on p2_c1_c1 | |
998 | - -> Parallel Seq Scan on p2_c1_c2 | |
999 | - -> Parallel Seq Scan on p2_c3_c1 | |
1000 | - -> Parallel Seq Scan on p2_c3_c2 | |
995 | + -> Parallel Seq Scan on p2_c2 p2_2 | |
996 | + -> Parallel Seq Scan on p2_c4 p2_4 | |
997 | + -> Parallel Seq Scan on p2_c1_c1 p2_5 | |
998 | + -> Parallel Seq Scan on p2_c1_c2 p2_6 | |
999 | + -> Parallel Seq Scan on p2_c3_c1 p2_7 | |
1000 | + -> Parallel Seq Scan on p2_c3_c2 p2_8 | |
1001 | 1001 | -> Parallel Seq Scan on p1 |
1002 | - -> Parallel Seq Scan on p1_c1 | |
1003 | - -> Parallel Seq Scan on p1_c2 | |
1004 | - -> Parallel Seq Scan on p1_c3 | |
1005 | - -> Parallel Seq Scan on p1_c4 | |
1006 | - -> Parallel Seq Scan on p1_c1_c1 | |
1007 | - -> Parallel Seq Scan on p1_c1_c2 | |
1008 | - -> Parallel Seq Scan on p1_c3_c1 | |
1009 | - -> Parallel Seq Scan on p1_c3_c2 | |
1002 | + -> Parallel Seq Scan on p1_c1 p1_1 | |
1003 | + -> Parallel Seq Scan on p1_c2 p1_2 | |
1004 | + -> Parallel Seq Scan on p1_c3 p1_3 | |
1005 | + -> Parallel Seq Scan on p1_c4 p1_4 | |
1006 | + -> Parallel Seq Scan on p1_c1_c1 p1_5 | |
1007 | + -> Parallel Seq Scan on p1_c1_c2 p1_6 | |
1008 | + -> Parallel Seq Scan on p1_c3_c1 p1_7 | |
1009 | + -> Parallel Seq Scan on p1_c3_c2 p1_8 | |
1010 | 1010 | -> Parallel Seq Scan on p2 |
1011 | - -> Parallel Seq Scan on p2_c1 | |
1012 | - -> Parallel Seq Scan on p2_c3 | |
1011 | + -> Parallel Seq Scan on p2_c1 p2_1 | |
1012 | + -> Parallel Seq Scan on p2_c3 p2_3 | |
1013 | 1013 | (21 rows) |
1014 | 1014 | |
1015 | 1015 | -- set hint has the same effect |
@@ -1022,29 +1022,29 @@ not used hint: | ||
1022 | 1022 | duplication hint: |
1023 | 1023 | error hint: |
1024 | 1024 | |
1025 | - QUERY PLAN | |
1026 | -------------------------------------------- | |
1025 | + QUERY PLAN | |
1026 | +------------------------------------------------ | |
1027 | 1027 | Gather |
1028 | 1028 | Workers Planned: 1 |
1029 | 1029 | -> Parallel Append |
1030 | - -> Parallel Seq Scan on p1_c2 | |
1031 | - -> Parallel Seq Scan on p1_c4 | |
1032 | - -> Parallel Seq Scan on p2_c2 | |
1033 | - -> Parallel Seq Scan on p2_c4 | |
1034 | - -> Parallel Seq Scan on p1_c1_c1 | |
1035 | - -> Parallel Seq Scan on p1_c1_c2 | |
1036 | - -> Parallel Seq Scan on p1_c3_c1 | |
1037 | - -> Parallel Seq Scan on p1_c3_c2 | |
1038 | - -> Parallel Seq Scan on p2_c1_c1 | |
1039 | - -> Parallel Seq Scan on p2_c1_c2 | |
1040 | - -> Parallel Seq Scan on p2_c3_c1 | |
1041 | - -> Parallel Seq Scan on p2_c3_c2 | |
1030 | + -> Parallel Seq Scan on p1_c2 p1_2 | |
1031 | + -> Parallel Seq Scan on p1_c4 p1_4 | |
1032 | + -> Parallel Seq Scan on p2_c2 p2_2 | |
1033 | + -> Parallel Seq Scan on p2_c4 p2_4 | |
1034 | + -> Parallel Seq Scan on p1_c1_c1 p1_5 | |
1035 | + -> Parallel Seq Scan on p1_c1_c2 p1_6 | |
1036 | + -> Parallel Seq Scan on p1_c3_c1 p1_7 | |
1037 | + -> Parallel Seq Scan on p1_c3_c2 p1_8 | |
1038 | + -> Parallel Seq Scan on p2_c1_c1 p2_5 | |
1039 | + -> Parallel Seq Scan on p2_c1_c2 p2_6 | |
1040 | + -> Parallel Seq Scan on p2_c3_c1 p2_7 | |
1041 | + -> Parallel Seq Scan on p2_c3_c2 p2_8 | |
1042 | 1042 | -> Parallel Seq Scan on p1 |
1043 | - -> Parallel Seq Scan on p1_c1 | |
1044 | - -> Parallel Seq Scan on p1_c3 | |
1043 | + -> Parallel Seq Scan on p1_c1 p1_1 | |
1044 | + -> Parallel Seq Scan on p1_c3 p1_3 | |
1045 | 1045 | -> Parallel Seq Scan on p2 |
1046 | - -> Parallel Seq Scan on p2_c1 | |
1047 | - -> Parallel Seq Scan on p2_c3 | |
1046 | + -> Parallel Seq Scan on p2_c1 p2_1 | |
1047 | + -> Parallel Seq Scan on p2_c3 p2_3 | |
1048 | 1048 | (21 rows) |
1049 | 1049 | |
1050 | 1050 | -- applies largest number of workers on merged parallel paths |
@@ -1063,29 +1063,29 @@ not used hint: | ||
1063 | 1063 | duplication hint: |
1064 | 1064 | error hint: |
1065 | 1065 | |
1066 | - QUERY PLAN | |
1067 | -------------------------------------------- | |
1066 | + QUERY PLAN | |
1067 | +------------------------------------------------ | |
1068 | 1068 | Gather |
1069 | 1069 | Workers Planned: 6 |
1070 | 1070 | -> Parallel Append |
1071 | 1071 | -> Seq Scan on p1 |
1072 | - -> Seq Scan on p1_c1 | |
1073 | - -> Seq Scan on p1_c3 | |
1072 | + -> Seq Scan on p1_c1 p1_1 | |
1073 | + -> Seq Scan on p1_c3 p1_3 | |
1074 | 1074 | -> Seq Scan on p2 |
1075 | - -> Seq Scan on p2_c1 | |
1076 | - -> Seq Scan on p2_c3 | |
1077 | - -> Parallel Seq Scan on p1_c2 | |
1078 | - -> Parallel Seq Scan on p1_c4 | |
1079 | - -> Parallel Seq Scan on p1_c1_c1 | |
1080 | - -> Parallel Seq Scan on p1_c1_c2 | |
1081 | - -> Parallel Seq Scan on p1_c3_c1 | |
1082 | - -> Parallel Seq Scan on p1_c3_c2 | |
1083 | - -> Parallel Seq Scan on p2_c2 | |
1084 | - -> Parallel Seq Scan on p2_c4 | |
1085 | - -> Parallel Seq Scan on p2_c1_c1 | |
1086 | - -> Parallel Seq Scan on p2_c1_c2 | |
1087 | - -> Parallel Seq Scan on p2_c3_c1 | |
1088 | - -> Parallel Seq Scan on p2_c3_c2 | |
1075 | + -> Seq Scan on p2_c1 p2_1 | |
1076 | + -> Seq Scan on p2_c3 p2_3 | |
1077 | + -> Parallel Seq Scan on p1_c2 p1_2 | |
1078 | + -> Parallel Seq Scan on p1_c4 p1_4 | |
1079 | + -> Parallel Seq Scan on p1_c1_c1 p1_5 | |
1080 | + -> Parallel Seq Scan on p1_c1_c2 p1_6 | |
1081 | + -> Parallel Seq Scan on p1_c3_c1 p1_7 | |
1082 | + -> Parallel Seq Scan on p1_c3_c2 p1_8 | |
1083 | + -> Parallel Seq Scan on p2_c2 p2_2 | |
1084 | + -> Parallel Seq Scan on p2_c4 p2_4 | |
1085 | + -> Parallel Seq Scan on p2_c1_c1 p2_5 | |
1086 | + -> Parallel Seq Scan on p2_c1_c2 p2_6 | |
1087 | + -> Parallel Seq Scan on p2_c3_c1 p2_7 | |
1088 | + -> Parallel Seq Scan on p2_c3_c2 p2_8 | |
1089 | 1089 | (21 rows) |
1090 | 1090 | |
1091 | 1091 | -- Negative hints |
@@ -1096,20 +1096,20 @@ SET min_parallel_table_scan_size to 0; | ||
1096 | 1096 | SET min_parallel_index_scan_size to 0; |
1097 | 1097 | SET max_parallel_workers_per_gather to 5; |
1098 | 1098 | EXPLAIN (COSTS false) SELECT * FROM p1; |
1099 | - QUERY PLAN | |
1100 | -------------------------------------------- | |
1099 | + QUERY PLAN | |
1100 | +------------------------------------------------ | |
1101 | 1101 | Gather |
1102 | 1102 | Workers Planned: 4 |
1103 | 1103 | -> Parallel Append |
1104 | - -> Parallel Seq Scan on p1_c2 | |
1105 | - -> Parallel Seq Scan on p1_c4 | |
1106 | - -> Parallel Seq Scan on p1_c1_c1 | |
1107 | - -> Parallel Seq Scan on p1_c1_c2 | |
1108 | - -> Parallel Seq Scan on p1_c3_c1 | |
1109 | - -> Parallel Seq Scan on p1_c3_c2 | |
1110 | - -> Parallel Seq Scan on p1 | |
1111 | - -> Parallel Seq Scan on p1_c1 | |
1112 | - -> Parallel Seq Scan on p1_c3 | |
1104 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
1105 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
1106 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
1107 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
1108 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
1109 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
1110 | + -> Parallel Seq Scan on p1 p1_1 | |
1111 | + -> Parallel Seq Scan on p1_c1 p1_2 | |
1112 | + -> Parallel Seq Scan on p1_c3 p1_4 | |
1113 | 1113 | (12 rows) |
1114 | 1114 | |
1115 | 1115 | SET enable_parallel_append to false; |
@@ -1122,18 +1122,18 @@ not used hint: | ||
1122 | 1122 | duplication hint: |
1123 | 1123 | error hint: |
1124 | 1124 | |
1125 | - QUERY PLAN | |
1126 | ----------------------------- | |
1125 | + QUERY PLAN | |
1126 | +--------------------------------- | |
1127 | 1127 | Append |
1128 | - -> Seq Scan on p1 | |
1129 | - -> Seq Scan on p1_c1 | |
1130 | - -> Seq Scan on p1_c2 | |
1131 | - -> Seq Scan on p1_c3 | |
1132 | - -> Seq Scan on p1_c4 | |
1133 | - -> Seq Scan on p1_c1_c1 | |
1134 | - -> Seq Scan on p1_c1_c2 | |
1135 | - -> Seq Scan on p1_c3_c1 | |
1136 | - -> Seq Scan on p1_c3_c2 | |
1128 | + -> Seq Scan on p1 p1_1 | |
1129 | + -> Seq Scan on p1_c1 p1_2 | |
1130 | + -> Seq Scan on p1_c2 p1_3 | |
1131 | + -> Seq Scan on p1_c3 p1_4 | |
1132 | + -> Seq Scan on p1_c4 p1_5 | |
1133 | + -> Seq Scan on p1_c1_c1 p1_6 | |
1134 | + -> Seq Scan on p1_c1_c2 p1_7 | |
1135 | + -> Seq Scan on p1_c3_c1 p1_8 | |
1136 | + -> Seq Scan on p1_c3_c2 p1_9 | |
1137 | 1137 | (10 rows) |
1138 | 1138 | |
1139 | 1139 | SET enable_parallel_append to true; |
@@ -1146,18 +1146,18 @@ not used hint: | ||
1146 | 1146 | duplication hint: |
1147 | 1147 | error hint: |
1148 | 1148 | |
1149 | - QUERY PLAN | |
1150 | ----------------------------- | |
1149 | + QUERY PLAN | |
1150 | +--------------------------------- | |
1151 | 1151 | Append |
1152 | - -> Seq Scan on p1 | |
1153 | - -> Seq Scan on p1_c1 | |
1154 | - -> Seq Scan on p1_c2 | |
1155 | - -> Seq Scan on p1_c3 | |
1156 | - -> Seq Scan on p1_c4 | |
1157 | - -> Seq Scan on p1_c1_c1 | |
1158 | - -> Seq Scan on p1_c1_c2 | |
1159 | - -> Seq Scan on p1_c3_c1 | |
1160 | - -> Seq Scan on p1_c3_c2 | |
1152 | + -> Seq Scan on p1 p1_1 | |
1153 | + -> Seq Scan on p1_c1 p1_2 | |
1154 | + -> Seq Scan on p1_c2 p1_3 | |
1155 | + -> Seq Scan on p1_c3 p1_4 | |
1156 | + -> Seq Scan on p1_c4 p1_5 | |
1157 | + -> Seq Scan on p1_c1_c1 p1_6 | |
1158 | + -> Seq Scan on p1_c1_c2 p1_7 | |
1159 | + -> Seq Scan on p1_c3_c1 p1_8 | |
1160 | + -> Seq Scan on p1_c3_c2 p1_9 | |
1161 | 1161 | (10 rows) |
1162 | 1162 | |
1163 | 1163 | -- Errors |
@@ -1188,29 +1188,29 @@ Parallel(p1 8 soft) | ||
1188 | 1188 | Parallel() |
1189 | 1189 | Parallel() |
1190 | 1190 | |
1191 | - QUERY PLAN | |
1192 | -------------------------------------------- | |
1191 | + QUERY PLAN | |
1192 | +------------------------------------------------ | |
1193 | 1193 | Gather |
1194 | 1194 | Workers Planned: 1 |
1195 | 1195 | -> Parallel Append |
1196 | - -> Parallel Seq Scan on p1_c2 | |
1197 | - -> Parallel Seq Scan on p1_c4 | |
1198 | - -> Parallel Seq Scan on p2_c2 | |
1199 | - -> Parallel Seq Scan on p2_c4 | |
1200 | - -> Parallel Seq Scan on p1_c1_c1 | |
1201 | - -> Parallel Seq Scan on p1_c1_c2 | |
1202 | - -> Parallel Seq Scan on p1_c3_c1 | |
1203 | - -> Parallel Seq Scan on p1_c3_c2 | |
1204 | - -> Parallel Seq Scan on p2_c1_c1 | |
1205 | - -> Parallel Seq Scan on p2_c1_c2 | |
1206 | - -> Parallel Seq Scan on p2_c3_c1 | |
1207 | - -> Parallel Seq Scan on p2_c3_c2 | |
1196 | + -> Parallel Seq Scan on p1_c2 p1_2 | |
1197 | + -> Parallel Seq Scan on p1_c4 p1_4 | |
1198 | + -> Parallel Seq Scan on p2_c2 p2_2 | |
1199 | + -> Parallel Seq Scan on p2_c4 p2_4 | |
1200 | + -> Parallel Seq Scan on p1_c1_c1 p1_5 | |
1201 | + -> Parallel Seq Scan on p1_c1_c2 p1_6 | |
1202 | + -> Parallel Seq Scan on p1_c3_c1 p1_7 | |
1203 | + -> Parallel Seq Scan on p1_c3_c2 p1_8 | |
1204 | + -> Parallel Seq Scan on p2_c1_c1 p2_5 | |
1205 | + -> Parallel Seq Scan on p2_c1_c2 p2_6 | |
1206 | + -> Parallel Seq Scan on p2_c3_c1 p2_7 | |
1207 | + -> Parallel Seq Scan on p2_c3_c2 p2_8 | |
1208 | 1208 | -> Parallel Seq Scan on p1 |
1209 | - -> Parallel Seq Scan on p1_c1 | |
1210 | - -> Parallel Seq Scan on p1_c3 | |
1209 | + -> Parallel Seq Scan on p1_c1 p1_1 | |
1210 | + -> Parallel Seq Scan on p1_c3 p1_3 | |
1211 | 1211 | -> Parallel Seq Scan on p2 |
1212 | - -> Parallel Seq Scan on p2_c1 | |
1213 | - -> Parallel Seq Scan on p2_c3 | |
1212 | + -> Parallel Seq Scan on p2_c1 p2_1 | |
1213 | + -> Parallel Seq Scan on p2_c3 p2_3 | |
1214 | 1214 | (21 rows) |
1215 | 1215 | |
1216 | 1216 | -- Hints on unhintable relations are just ignored |
@@ -1253,23 +1253,23 @@ error hint: | ||
1253 | 1253 | -> Gather |
1254 | 1254 | Workers Planned: 5 |
1255 | 1255 | -> Parallel Append |
1256 | - -> Seq Scan on p1 | |
1256 | + -> Seq Scan on p1 p1_1 | |
1257 | 1257 | Filter: ((id % 2) = 0) |
1258 | - -> Seq Scan on p1_c1 | |
1258 | + -> Seq Scan on p1_c1 p1_2 | |
1259 | 1259 | Filter: ((id % 2) = 0) |
1260 | - -> Seq Scan on p1_c3 | |
1260 | + -> Seq Scan on p1_c3 p1_4 | |
1261 | 1261 | Filter: ((id % 2) = 0) |
1262 | - -> Parallel Seq Scan on p1_c2 | |
1262 | + -> Parallel Seq Scan on p1_c2 p1_3 | |
1263 | 1263 | Filter: ((id % 2) = 0) |
1264 | - -> Parallel Seq Scan on p1_c4 | |
1264 | + -> Parallel Seq Scan on p1_c4 p1_5 | |
1265 | 1265 | Filter: ((id % 2) = 0) |
1266 | - -> Parallel Seq Scan on p1_c1_c1 | |
1266 | + -> Parallel Seq Scan on p1_c1_c1 p1_6 | |
1267 | 1267 | Filter: ((id % 2) = 0) |
1268 | - -> Parallel Seq Scan on p1_c1_c2 | |
1268 | + -> Parallel Seq Scan on p1_c1_c2 p1_7 | |
1269 | 1269 | Filter: ((id % 2) = 0) |
1270 | - -> Parallel Seq Scan on p1_c3_c1 | |
1270 | + -> Parallel Seq Scan on p1_c3_c1 p1_8 | |
1271 | 1271 | Filter: ((id % 2) = 0) |
1272 | - -> Parallel Seq Scan on p1_c3_c2 | |
1272 | + -> Parallel Seq Scan on p1_c3_c2 p1_9 | |
1273 | 1273 | Filter: ((id % 2) = 0) |
1274 | 1274 | -> Function Scan on pg_stat_statements |
1275 | 1275 | -> Subquery Scan on "*SELECT* 5" |
@@ -405,8 +405,9 @@ static void pg_hint_plan_ProcessUtility(PlannedStmt *pstmt, | ||
405 | 405 | const char *queryString, |
406 | 406 | ProcessUtilityContext context, |
407 | 407 | ParamListInfo params, QueryEnvironment *queryEnv, |
408 | - DestReceiver *dest, char *completionTag); | |
409 | -static PlannedStmt *pg_hint_plan_planner(Query *parse, int cursorOptions, | |
408 | + DestReceiver *dest, QueryCompletion *qc); | |
409 | +static PlannedStmt *pg_hint_plan_planner(Query *parse, const char *query_string, | |
410 | + int cursorOptions, | |
410 | 411 | ParamListInfo boundParams); |
411 | 412 | static RelOptInfo *pg_hint_plan_join_search(PlannerInfo *root, |
412 | 413 | int levels_needed, |
@@ -480,10 +481,11 @@ void pg_hint_plan_set_rel_pathlist(PlannerInfo * root, RelOptInfo *rel, | ||
480 | 481 | static void create_plain_partial_paths(PlannerInfo *root, |
481 | 482 | RelOptInfo *rel); |
482 | 483 | static void make_rels_by_clause_joins(PlannerInfo *root, RelOptInfo *old_rel, |
484 | + List *other_rels_list, | |
483 | 485 | ListCell *other_rels); |
484 | 486 | static void make_rels_by_clauseless_joins(PlannerInfo *root, |
485 | 487 | RelOptInfo *old_rel, |
486 | - ListCell *other_rels); | |
488 | + List *other_rels); | |
487 | 489 | static bool has_join_restriction(PlannerInfo *root, RelOptInfo *rel); |
488 | 490 | static void set_plain_rel_pathlist(PlannerInfo *root, RelOptInfo *rel, |
489 | 491 | RangeTblEntry *rte); |
@@ -3012,14 +3014,14 @@ static void | ||
3012 | 3014 | pg_hint_plan_ProcessUtility(PlannedStmt *pstmt, const char *queryString, |
3013 | 3015 | ProcessUtilityContext context, |
3014 | 3016 | ParamListInfo params, QueryEnvironment *queryEnv, |
3015 | - DestReceiver *dest, char *completionTag) | |
3017 | + DestReceiver *dest, QueryCompletion *qc) | |
3016 | 3018 | { |
3017 | 3019 | if (prev_ProcessUtility_hook) |
3018 | 3020 | prev_ProcessUtility_hook(pstmt, queryString, context, params, queryEnv, |
3019 | - dest, completionTag); | |
3021 | + dest, qc); | |
3020 | 3022 | else |
3021 | 3023 | standard_ProcessUtility(pstmt, queryString, context, params, queryEnv, |
3022 | - dest, completionTag); | |
3024 | + dest, qc); | |
3023 | 3025 | |
3024 | 3026 | if (plpgsql_recurse_level == 0) |
3025 | 3027 | current_hint_retrieved = false; |
@@ -3029,7 +3031,7 @@ pg_hint_plan_ProcessUtility(PlannedStmt *pstmt, const char *queryString, | ||
3029 | 3031 | * Read and set up hint information |
3030 | 3032 | */ |
3031 | 3033 | static PlannedStmt * |
3032 | -pg_hint_plan_planner(Query *parse, int cursorOptions, ParamListInfo boundParams) | |
3034 | +pg_hint_plan_planner(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams) | |
3033 | 3035 | { |
3034 | 3036 | int save_nestlevel; |
3035 | 3037 | PlannedStmt *result; |
@@ -3143,9 +3145,11 @@ pg_hint_plan_planner(Query *parse, int cursorOptions, ParamListInfo boundParams) | ||
3143 | 3145 | PG_TRY(); |
3144 | 3146 | { |
3145 | 3147 | if (prev_planner) |
3146 | - result = (*prev_planner) (parse, cursorOptions, boundParams); | |
3148 | + result = (*prev_planner) (parse, query_string, | |
3149 | + cursorOptions, boundParams); | |
3147 | 3150 | else |
3148 | - result = standard_planner(parse, cursorOptions, boundParams); | |
3151 | + result = standard_planner(parse, query_string, | |
3152 | + cursorOptions, boundParams); | |
3149 | 3153 | |
3150 | 3154 | current_hint_str = prev_hint_str; |
3151 | 3155 | recurse_level--; |
@@ -3201,9 +3205,11 @@ standard_planner_proc: | ||
3201 | 3205 | } |
3202 | 3206 | current_hint_state = NULL; |
3203 | 3207 | if (prev_planner) |
3204 | - result = (*prev_planner) (parse, cursorOptions, boundParams); | |
3208 | + result = (*prev_planner) (parse, query_string, | |
3209 | + cursorOptions, boundParams); | |
3205 | 3210 | else |
3206 | - result = standard_planner(parse, cursorOptions, boundParams); | |
3211 | + result = standard_planner(parse, query_string, | |
3212 | + cursorOptions, boundParams); | |
3207 | 3213 | |
3208 | 3214 | /* The upper-level planner still needs the current hint state */ |
3209 | 3215 | if (HintStateStack != NIL) |
@@ -3390,7 +3396,6 @@ restrict_indexes(PlannerInfo *root, ScanMethodHint *hint, RelOptInfo *rel, | ||
3390 | 3396 | bool using_parent_hint) |
3391 | 3397 | { |
3392 | 3398 | ListCell *cell; |
3393 | - ListCell *prev; | |
3394 | 3399 | ListCell *next; |
3395 | 3400 | StringInfoData buf; |
3396 | 3401 | RangeTblEntry *rte = root->simple_rte_array[rel->relid]; |
@@ -3420,7 +3425,6 @@ restrict_indexes(PlannerInfo *root, ScanMethodHint *hint, RelOptInfo *rel, | ||
3420 | 3425 | * Leaving only an specified index, we delete it from a IndexOptInfo list |
3421 | 3426 | * other than it. |
3422 | 3427 | */ |
3423 | - prev = NULL; | |
3424 | 3428 | if (debug_level > 0) |
3425 | 3429 | initStringInfo(&buf); |
3426 | 3430 |
@@ -3431,8 +3435,7 @@ restrict_indexes(PlannerInfo *root, ScanMethodHint *hint, RelOptInfo *rel, | ||
3431 | 3435 | ListCell *l; |
3432 | 3436 | bool use_index = false; |
3433 | 3437 | |
3434 | - next = lnext(cell); | |
3435 | - | |
3438 | + next = lnext(rel->indexlist, cell); | |
3436 | 3439 | foreach(l, hint->indexnames) |
3437 | 3440 | { |
3438 | 3441 | char *hintname = (char *) lfirst(l); |
@@ -3602,10 +3605,18 @@ restrict_indexes(PlannerInfo *root, ScanMethodHint *hint, RelOptInfo *rel, | ||
3602 | 3605 | } |
3603 | 3606 | |
3604 | 3607 | if (!use_index) |
3605 | - rel->indexlist = list_delete_cell(rel->indexlist, cell, prev); | |
3606 | - else | |
3607 | - prev = cell; | |
3608 | + { | |
3609 | + rel->indexlist = list_delete_cell(rel->indexlist, cell); | |
3608 | 3610 | |
3611 | + /* | |
3612 | + * the elements after cell moved to the list head by 1 element. | |
3613 | + * the next iteration should visit the cell at the same address if | |
3614 | + * any. | |
3615 | + */ | |
3616 | + if (next) | |
3617 | + next = cell; | |
3618 | + } | |
3619 | + | |
3609 | 3620 | pfree(indexname); |
3610 | 3621 | } |
3611 | 3622 |
@@ -3865,7 +3876,7 @@ setup_hint_enforcement(PlannerInfo *root, RelOptInfo *rel, | ||
3865 | 3876 | |
3866 | 3877 | parentrel_oid = |
3867 | 3878 | root->simple_rte_array[current_hint_state->parent_relid]->relid; |
3868 | - parent_rel = heap_open(parentrel_oid, NoLock); | |
3879 | + parent_rel = table_open(parentrel_oid, NoLock); | |
3869 | 3880 | |
3870 | 3881 | /* Search the parent relation for indexes match the hint spec */ |
3871 | 3882 | foreach(l, RelationGetIndexList(parent_rel)) |
@@ -3889,7 +3900,7 @@ setup_hint_enforcement(PlannerInfo *root, RelOptInfo *rel, | ||
3889 | 3900 | lappend(current_hint_state->parent_index_infos, |
3890 | 3901 | parent_index_info); |
3891 | 3902 | } |
3892 | - heap_close(parent_rel, NoLock); | |
3903 | + table_close(parent_rel, NoLock); | |
3893 | 3904 | } |
3894 | 3905 | } |
3895 | 3906 | } |
@@ -4069,8 +4080,8 @@ OuterInnerJoinCreate(OuterInnerRels *outer_inner, LeadingHint *leading_hint, | ||
4069 | 4080 | leading_hint->base.hint_str)); |
4070 | 4081 | } |
4071 | 4082 | |
4072 | - outer_rels = lfirst(outer_inner->outer_inner_pair->head); | |
4073 | - inner_rels = lfirst(outer_inner->outer_inner_pair->tail); | |
4083 | + outer_rels = linitial(outer_inner->outer_inner_pair); | |
4084 | + inner_rels = llast(outer_inner->outer_inner_pair); | |
4074 | 4085 | |
4075 | 4086 | outer_relids = OuterInnerJoinCreate(outer_rels, |
4076 | 4087 | leading_hint, |
@@ -4377,14 +4388,13 @@ transform_join_hints(HintState *hstate, PlannerInfo *root, int nbaserel, | ||
4377 | 4388 | { |
4378 | 4389 | if (hstate->join_hint_level[i] != NIL) |
4379 | 4390 | { |
4380 | - ListCell *prev = NULL; | |
4381 | 4391 | ListCell *next = NULL; |
4382 | 4392 | for(l = list_head(hstate->join_hint_level[i]); l; l = next) |
4383 | 4393 | { |
4384 | 4394 | |
4385 | 4395 | JoinMethodHint *hint = (JoinMethodHint *)lfirst(l); |
4386 | 4396 | |
4387 | - next = lnext(l); | |
4397 | + next = lnext(hstate->join_hint_level[i], l); | |
4388 | 4398 | |
4389 | 4399 | if (hint->inner_nrels == 0 && |
4390 | 4400 | !(bms_intersect(hint->joinrelids, joinrelids) == NULL || |
@@ -4392,11 +4402,8 @@ transform_join_hints(HintState *hstate, PlannerInfo *root, int nbaserel, | ||
4392 | 4402 | hint->joinrelids))) |
4393 | 4403 | { |
4394 | 4404 | hstate->join_hint_level[i] = |
4395 | - list_delete_cell(hstate->join_hint_level[i], l, | |
4396 | - prev); | |
4405 | + list_delete_cell(hstate->join_hint_level[i], l); | |
4397 | 4406 | } |
4398 | - else | |
4399 | - prev = l; | |
4400 | 4407 | } |
4401 | 4408 | } |
4402 | 4409 | } |