Обсуждение: no more pg_dump cause of multiple declared database??

Поиск
Список
Период
Сортировка

no more pg_dump cause of multiple declared database??

От
bboett@erm1.u-strasbg.fr (Bruno Boettcher)
Дата:
Hello

a problem i am encountering quite frequently lately.....
for some reason my databases are registered under several users and
making a pg_dump gives me the following error:

getDatabase(): SELECT failed.  Explanation from backend: 'ERROR:  More
than one tuple returned by a subselect used as an expression.
'.

going into psql and looking at the DB's i get:
fibu=# \l    List of databases    Database  |  Owner   | Encoding      -----------+----------+-----------    admin
|www      | SQL_ASCII    fibu      | bboett   | SQL_ASCII    fibu      | hordemgr | SQL_ASCII    horde     | www      |
SQL_ASCII   template0 | postgres | SQL_ASCII    template1 | postgres | SQL_ASCII    (6 rows)
 

how can this be? i tryed to remove the hordemgr version of the fibu DB
but then my own vanishes too, so it seems really that both point onto
the same DB in fact??? 

is there a way to remove the hordemgr (which isn't even a valid postgres
user as far as i can tell) line concerning the fibu DB?

But even with that, is there a way t get the pg_dump command to work?

i tryed with the -S flag, but still it doesn't work....

BTW this problem also prevents the pg_dumpall which is really annoying
since it prevents me from making backups of the DB's automaticly....

-- 
ciao bboett
==============================================================
bboett@earthling.net
http://inforezo.u-strasbg.fr/~bboett http://erm1.u-strasbg.fr/~bboett
===============================================================
the total amount of intelligence on earth is constant.
human population is growing....


Re: no more pg_dump cause of multiple declared database??

От
Tom Lane
Дата:
bboett@erm1.u-strasbg.fr (Bruno Boettcher) writes:
> fibu=# \l
>      List of databases
>      Database  |  Owner   | Encoding  
>      -----------+----------+-----------
>      admin     | www      | SQL_ASCII
>      fibu      | bboett   | SQL_ASCII
>      fibu      | hordemgr | SQL_ASCII
>      horde     | www      | SQL_ASCII
>      template0 | postgres | SQL_ASCII
>      template1 | postgres | SQL_ASCII
>      (6 rows)

> how can this be?

You have multiple users registered in pg_shadow with the same usesysid.

Alter the usesysid of the one you don't want to own that database.
(You will then have to find the objects he *should* own, and fix
their owner ID values...)

There should be a unique index on pg_shadow.usesysid, but due to an
old oversight there isn't.  Fixing this is on the TODO list.
        regards, tom lane