postgresql/src/backend
Tom Lane ddbe8dca08 Add a heuristic to transformAExprIn() to make it prefer expanding "x IN (list)"
into an OR of equality comparisons, rather than x = ANY(ARRAY[...]), when there
are Vars in the right-hand side.  This avoids a performance regression compared
to pre-8.2 releases, in cases where the OR form can be optimized into scans
of multiple indexes.  Limit the possible downside by preferring this form only
when the list isn't very long (I set the cutoff at 32 elements, which is a
bit arbitrary but in the right ballpark).  Per discussion with Jim Nasby.

In passing, also make it try the OR form if it cannot select a common type
for the array elements; we've seen a complaint or two about how the OR form
worked for such cases and ARRAY doesn't.
2008-10-25 17:19:09 +00:00
..
access Fix GiST's killing tuple: GISTScanOpaque->curpos wasn't 2008-10-22 12:53:56 +00:00
bootstrap Rewrite the FSM. Instead of relying on a fixed-size shared memory segment, the 2008-09-30 10:52:14 +00:00
catalog Feature T173 "Extended LIKE clause in table definition" is supported 2008-10-23 08:52:51 +00:00
commands Reduce the memory footprint of large pending-trigger-event lists, as per my 2008-10-24 23:42:35 +00:00
executor Fix an oversight in two different recent patches: nodes that support SRFs 2008-10-23 15:29:23 +00:00
lib Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
libpq Replace now unnecessary goto statements by using return directly. 2008-10-24 12:48:31 +00:00
main Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
nodes Add a concept of "placeholder" variables to the planner. These are variables 2008-10-21 20:42:53 +00:00
optimizer Dept of better ideas: refrain from creating the planner's placeholder_list 2008-10-22 20:17:52 +00:00
parser Add a heuristic to transformAExprIn() to make it prefer expanding "x IN (list)" 2008-10-25 17:19:09 +00:00
po Translation updates 2008-01-31 18:04:52 +00:00
port Fix a couple of bugs in win32 shmem name generation: 2008-07-04 10:50:18 +00:00
postmaster Fix oversight in the relation forks patch: forgot to copy fork number to 2008-10-14 08:06:39 +00:00
regex Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
rewrite Dept of better ideas: refrain from creating the planner's placeholder_list 2008-10-22 20:17:52 +00:00
snowball Implement a few changes to how shared libraries and dynamically loadable 2008-04-07 14:15:58 +00:00
storage Properly access a buffer's LSN using existing access macros instead of abusing 2008-10-20 21:11:15 +00:00
tcop Fix omission of DiscardStmt in GetCommandLogLevel, per report from Hubert 2008-10-10 13:48:05 +00:00
tsearch Improve headeline generation. Now headline can contain 2008-10-17 18:05:19 +00:00
utils When estimating without benefit of MCV lists (suggesting that one or both 2008-10-23 00:24:50 +00:00
common.mk Code coverage testing with gcov. Documentation is in the regression test 2008-09-05 12:11:18 +00:00
Makefile Remove all traces that suggest that a non-Bison yacc might be supported, and 2008-08-29 13:02:33 +00:00
nls.mk Add a new ereport auxiliary function errdetail_log(), which works the same as 2008-03-24 18:08:47 +00:00