Contrib: Reindex script.

Started by Shaun Thomasalmost 24 years ago4 messagesgeneral
Jump to latest
#1Shaun Thomas
sthomas@townnews.com

Ok,

As before, this script is basically a vacuumdb for indexes. I call it
reindexdb on my own system, and put it in the postgres binary directory
simply because it's indispensable in my system.

This should be the last one. Someone complained that assuming that the
script will reside in the same directory as psql was silly. That's
true, though eventually I'd like to see this, or a utility like it,
included in the official postgres distribution.

The script now uses various tricks to figure out where psql is.
Starting with path, continuing with the directory the script is in,
then whereis, and finally locate. These are arranged in order of speed
so it can find psql as fast as possible. Even so, the full iteration
through all methods takes less than a second.

If your system doesn't have whereis or locate, I've directed output from
all of these search commands to /dev/null so these tests will simply
fail if the command is unavailable.

Use, and enjoy.

-- 
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
| Shaun M. Thomas                INN Database Administrator           |
| Phone: (309) 743-0812          Fax  : (309) 743-0830                |
| Email: sthomas@townnews.com    AIM  : trifthen                      |
| Web  : www.townnews.com                                             |
|                                                                     |
|     "Most of our lives are about proving something, either to       |
|      ourselves or to someone else."                                 |
|                                           -- Anonymous              |
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+

Attachments:

reindexdbtext/plain; charset=US-ASCII; name=reindexdbDownload
#2Tina Messmann
tina.messmann@xinux.de
In reply to: Shaun Thomas (#1)
Re: Contrib: Reindex script.

Shaun Thomas wrote:

Ok,

As before, this script is basically a vacuumdb for indexes. I call it
reindexdb on my own system, and put it in the postgres binary directory
simply because it's indispensable in my system.

This should be the last one.

[snip....]

Hi Shaun,

Thanks for that script but....
your script doesn't deal with mixed case table names (reindexdb -a).

I modified it to my needs by altering the REINDEX command from

$PSQL $PSQLOPT $ECHOOPT -c "REINDEX TABLE $tab" -d $db
to:

$PSQL $PSQLOPT $ECHOOPT -c "REINDEX TABLE \"$tab\"" -d $db

Regards
Tina

#3Bruce Momjian
bruce@momjian.us
In reply to: Shaun Thomas (#1)
Re: [GENERAL] Contrib: Reindex script.

Sorry, this is the actual version I applied.

---------------------------------------------------------------------------

Shaun Thomas wrote:

Ok,

As before, this script is basically a vacuumdb for indexes. I call it
reindexdb on my own system, and put it in the postgres binary directory
simply because it's indispensable in my system.

This should be the last one. Someone complained that assuming that the
script will reside in the same directory as psql was silly. That's
true, though eventually I'd like to see this, or a utility like it,
included in the official postgres distribution.

The script now uses various tricks to figure out where psql is.
Starting with path, continuing with the directory the script is in,
then whereis, and finally locate. These are arranged in order of speed
so it can find psql as fast as possible. Even so, the full iteration
through all methods takes less than a second.

If your system doesn't have whereis or locate, I've directed output from
all of these search commands to /dev/null so these tests will simply
fail if the command is unavailable.

Use, and enjoy.

-- 
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
| Shaun M. Thomas                INN Database Administrator           |
| Phone: (309) 743-0812          Fax  : (309) 743-0830                |
| Email: sthomas@townnews.com    AIM  : trifthen                      |
| Web  : www.townnews.com                                             |
|                                                                     |
|     "Most of our lives are about proving something, either to       |
|      ourselves or to someone else."                                 |
|                                           -- Anonymous              |
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+

Content-Description:

[ Attachment, skipping... ]

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#4Bruce Momjian
bruce@momjian.us
In reply to: Tina Messmann (#2)
Re: Contrib: Reindex script.

Tina Messmann wrote:

Shaun Thomas wrote:

Ok,

As before, this script is basically a vacuumdb for indexes. I call it
reindexdb on my own system, and put it in the postgres binary directory
simply because it's indispensable in my system.

This should be the last one.

[snip....]

Hi Shaun,

Thanks for that script but....
your script doesn't deal with mixed case table names (reindexdb -a).

I modified it to my needs by altering the REINDEX command from

$PSQL $PSQLOPT $ECHOOPT -c "REINDEX TABLE $tab" -d $db
to:

$PSQL $PSQLOPT $ECHOOPT -c "REINDEX TABLE \"$tab\"" -d $db

Changes made to CVS, actually in two places. Patch attached.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Attachments:

/bjm/difftext/plainDownload+4-4