Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: disabling an index without deleting it?


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>, "Markus Bertheau" <mbertheau(dot)pg(at)googlemail(dot)com>, "Joshua D. Drake" <jd(at)commandprompt(dot)com>, "Peter Koczan" <pjkoczan(at)gmail(dot)com>, "Scott Marlowe" <scott(dot)marlowe(at)gmail(dot)com>, "pgsql-performance" <pgsql-performance(at)postgresql(dot)org>
  • Subject: Re: disabling an index without deleting it?
  • Date: Wed, 27 Feb 2008 18:33:01 -0500
  • Message-id: <12278.1204155181@sss.pgh.pa.us> <text/plain>

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

Attachment: binuzQGxL2XVJ.bin
Description: planignoreindex.c



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group