Commit f598392
committed
Allow create_index_paths() to consider multiple join bitmapscan paths.
In the initial cut at the "parameterized paths" feature, I'd simplified
create_index_paths() to the point where it would only generate a single
parameterized bitmap path per relation. Experimentation with an example
supplied by Josh Berkus convinces me that that's not good enough: we really
need to consider a bitmap path for each possible outer relation. Otherwise
we have regressions relative to pre-9.2 versions, in which the planner
picks a plain indexscan where it should have used a bitmap scan in queries
involving three or more tables. Indeed, after fixing this, several queries
in the regression tests show improved plans as a result of using bitmap not
plain indexscans.1 parent 56ba337 commit f598392
File tree
2 files changed
+99
-27
lines changed- src
- backend/optimizer/path
- test/regress/expected
2 files changed
+99
-27
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
325 | 324 | | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
332 | 398 | | |
333 | 399 | | |
334 | 400 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2725 | 2725 | | |
2726 | 2726 | | |
2727 | 2727 | | |
2728 | | - | |
2729 | | - | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
2730 | 2732 | | |
2731 | 2733 | | |
2732 | | - | |
| 2734 | + | |
2733 | 2735 | | |
2734 | 2736 | | |
2735 | 2737 | | |
| |||
2743 | 2745 | | |
2744 | 2746 | | |
2745 | 2747 | | |
2746 | | - | |
2747 | | - | |
| 2748 | + | |
| 2749 | + | |
| 2750 | + | |
| 2751 | + | |
2748 | 2752 | | |
2749 | 2753 | | |
2750 | | - | |
| 2754 | + | |
2751 | 2755 | | |
2752 | 2756 | | |
2753 | 2757 | | |
2754 | 2758 | | |
2755 | 2759 | | |
2756 | 2760 | | |
2757 | | - | |
2758 | | - | |
| 2761 | + | |
| 2762 | + | |
2759 | 2763 | | |
2760 | 2764 | | |
2761 | 2765 | | |
2762 | 2766 | | |
2763 | 2767 | | |
2764 | 2768 | | |
2765 | | - | |
2766 | | - | |
| 2769 | + | |
| 2770 | + | |
| 2771 | + | |
| 2772 | + | |
2767 | 2773 | | |
2768 | 2774 | | |
2769 | 2775 | | |
2770 | 2776 | | |
2771 | | - | |
| 2777 | + | |
2772 | 2778 | | |
2773 | 2779 | | |
2774 | 2780 | | |
| |||
0 commit comments