diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-01-19 19:04:40 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-01-19 19:04:40 +0000 |
commit | 9bd681a5220186230e0ea0f718a71af7ebe4b560 (patch) | |
tree | 3dddc229c62a5cc2b4da3ea50b2bc0b7256443d0 /src/include/commands/variable.h | |
parent | 239760209b739d06e19ed4935776aeb89b6605f1 (diff) |
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.
Diffstat (limited to 'src/include/commands/variable.h')
-rw-r--r-- | src/include/commands/variable.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/include/commands/variable.h b/src/include/commands/variable.h index 0c3c8388e45..7acce7d195a 100644 --- a/src/include/commands/variable.h +++ b/src/include/commands/variable.h @@ -2,27 +2,32 @@ * variable.h * Routines for handling specialized SET variables. * - * $PostgreSQL: pgsql/src/include/commands/variable.h,v 1.22 2003/11/29 22:40:59 pgsql Exp $ + * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California * + * $PostgreSQL: pgsql/src/include/commands/variable.h,v 1.23 2004/01/19 19:04:40 tgl Exp $ */ #ifndef VARIABLE_H #define VARIABLE_H +#include "utils/guc.h" + + extern const char *assign_datestyle(const char *value, - bool doit, bool interactive); + bool doit, GucSource source); extern const char *assign_timezone(const char *value, - bool doit, bool interactive); + bool doit, GucSource source); extern const char *show_timezone(void); extern const char *assign_XactIsoLevel(const char *value, - bool doit, bool interactive); + bool doit, GucSource source); extern const char *show_XactIsoLevel(void); extern bool assign_random_seed(double value, - bool doit, bool interactive); + bool doit, GucSource source); extern const char *show_random_seed(void); extern const char *assign_client_encoding(const char *value, - bool doit, bool interactive); + bool doit, GucSource source); extern const char *assign_session_authorization(const char *value, - bool doit, bool interactive); + bool doit, GucSource source); extern const char *show_session_authorization(void); #endif /* VARIABLE_H */ |