I wrote:
> In the particular case at hand, a planner hook to make it ignore the
> index is a far better solution anyway...
Just as proof of concept, a quick-and-dirty version of this is attached.
It works in 8.3 and up. Sample (after compiling the .so):
regression=# load '/home/tgl/pgsql/planignoreindex.so';
LOAD
regression=# explain select * from tenk1 where unique1 = 42;
QUERY PLAN
-----------------------------------------------------------------------------
Index Scan using tenk1_unique1 on tenk1 (cost=0.00..8.27 rows=1 width=244)
Index Cond: (unique1 = 42)
(2 rows)
regression=# set ignore_index TO 'tenk1_unique1';
SET
regression=# explain select * from tenk1 where unique1 = 42;
QUERY PLAN
---------------------------------------------------------
Seq Scan on tenk1 (cost=0.00..483.00 rows=1 width=244)
Filter: (unique1 = 42)
(2 rows)
regression=#
regards, tom lane