From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Allow create_index_paths() to consider multiple join bitmapscan |
Date: | 2012-08-16 17:04:17 |
Message-ID: | E1T23UX-0001l8-Uv@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
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.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/f5983923d81d6327bdacf9d439a1536c4c8c4c15
Modified Files
--------------
src/backend/optimizer/path/indxpath.c | 98 +++++++++++++++++++++++++++-----
src/test/regress/expected/join.out | 28 ++++++----
2 files changed, 99 insertions(+), 27 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2012-08-16 22:16:00 | pgsql: Add warning about pg_ctl restart and the use of relative paths o |
Previous Message | Bruce Momjian | 2012-08-16 16:22:10 | Re: pgsql: Rewrite window function reference section to more clearly explai |