| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Carlos Henrique Reimer <carlosreimer(at)yahoo(dot)com(dot)br> |
| Cc: | Postgresql General List <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Error during restore |
| Date: | 2005-02-18 18:28:34 |
| Message-ID: | 19827.1108751314@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Carlos Henrique Reimer <carlosreimer(at)yahoo(dot)com(dot)br> writes:
> Im trying to restore a client cluster in my Linux box but during the restore the following error is reported:
> ALTER USER "BENK" SET search_path TO '"BENK", public, pg_catalog';
> psql:dumpall7.4.6_0902:14: ERROR: schema ""BENK", public, pg_catalog" does not exist
I believe we decided this was a backend bug: the ALTER command shouldn't
be trying to verify the validity of the search_path setting. [ digs in
CVS logs... ] Ah, here we go:
2004-01-19 14:04 tgl
* src/: backend/access/transam/xlog.c, backend/catalog/namespace.c,
backend/commands/variable.c, backend/utils/adt/datetime.c,
backend/utils/adt/pg_locale.c, backend/utils/adt/regexp.c,
backend/utils/misc/README, backend/utils/misc/guc.c,
include/access/xlog.h, include/catalog/namespace.h,
include/commands/variable.h, include/utils/builtins.h,
include/utils/datetime.h, include/utils/guc.h,
include/utils/guc_tables.h, include/utils/pg_locale.h,
interfaces/ecpg/pgtypeslib/dt.h: Repair problem identified by
Olivier Prenant: ALTER DATABASE SET search_path should not be too
eager to reject paths involving unknown schemas, since it can't
really tell whether the schemas exist in the target database.
(Also, when reading pg_dumpall output, it could be that the schemas
don't exist yet, but eventually will.) ALTER USER SET has a
similar issue. So, reduce the normal ERROR to a NOTICE when
checking search_path values for these commands. Supporting this
requires changing the API for GUC assign_hook functions, which
causes the patch to touch a lot of places, but the changes are
conceptually trivial.
The fix was too complex to consider back-patching to older versions, so
this is only fixed in 8.0. What you'll have to do in 7.4 is manually
re-issue the ALTER USER command after the dump is reloaded.
It looks like you may also be dealing with an old pg_dumpall bug: it
shouldn't be trying to put quotes around the entire search_path value.
However, there's not much point in worrying about that when the backend
won't take the command anyway until the schema exists ...
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dieter Schröder | 2005-02-18 18:30:30 | Re: PostgreSQL Replication |
| Previous Message | Robert Treat | 2005-02-18 18:23:21 | Re: Schema comparison tool |