While researching a problem reported on the -general list by a user who
lost a disk containing his index tablespace, I ran into something, but  I'm
not sure is a serious bug or just an inconsistency in how \d shows tables.

Here are the steps I took.

1.  Create a new database 'MYDB' and connect to it.
2.  Create a new tablespace 'MYTBLSP'
3.  Create a table 'MYTABLE' and populate it.
4.  Create an index 'MYIND' on that table, with the index in the new
tablespace, MYTBLSP.

Now, exit psql and delete the files in the tablespace directory created in
step 2, simulating the problem the user had.

Trying to execute an SQL command on the table MYTABLE will, as expected,
generate an error.

Now, drop tablespace MYTBLSP.  This will produce an error, but it will
delete the tablespace according to \db.

Recreate tablespace MYTBLSP.

Regenerate the index on MYTABLE.  Queries will work on this table again, as
expected.

Now, here's the problem I ran into:

The index will be rebuilt in tablespace MYTBLSP, but \d on table MYTABLE
will not show the index as being in that tablespace.
--
Mike Nolan

Reply via email to