aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/dbcommands.c13
-rw-r--r--src/backend/commands/variable.c17
2 files changed, 20 insertions, 10 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index f7f765d9d7a..88b01fd91e9 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.79 2001/08/26 16:55:59 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.80 2001/09/06 04:57:28 ishii Exp $
*
*-------------------------------------------------------------------------
*/
@@ -36,6 +36,10 @@
#include "utils/fmgroids.h"
#include "utils/syscache.h"
+#ifdef MULTIBYTE
+#include "mb/pg_wchar.h" /* encoding check */
+#endif
+
/* non-export function prototypes */
static bool get_db_info(const char *name, Oid *dbIdP, int4 *ownerIdP,
@@ -142,6 +146,13 @@ createdb(const char *dbname, const char *dbpath,
if (encoding < 0)
encoding = src_encoding;
+#ifdef MULTIBYTE
+ /* Some encodings are client only */
+ if (!PG_VALID_BE_ENCODING( encoding ))
+ elog(ERROR, "CREATE DATABASE: invalid backend encoding");
+#else
+ Assert(encoding == 0); /* zero is PG_SQL_ASCII */
+#endif
/*
* Preassign OID for pg_database tuple, so that we can compute db
* path.
diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c
index 3d96ba18390..cc7ab385aa8 100644
--- a/src/backend/commands/variable.c
+++ b/src/backend/commands/variable.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.51 2001/06/30 22:03:25 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.52 2001/09/06 04:57:28 ishii Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,8 +34,8 @@
#include "mb/pg_wchar.h"
#else
/* Grand unified hard-coded badness */
-#define pg_encoding_to_char(x) "SQL_ASCII"
-#define pg_get_client_encoding() 0
+#define pg_get_client_encoding_name() "SQL_ASCII"
+#define GetDatabaseEncodingName() "SQL_ASCII"
#endif
@@ -559,15 +559,15 @@ parse_client_encoding(char *value)
}
else
{
- if (pg_set_client_encoding(encoding))
+ if (pg_set_client_encoding(encoding) < 0)
{
elog(ERROR, "Conversion between %s and %s is not supported",
- value, pg_encoding_to_char(GetDatabaseEncoding()));
+ value, GetDatabaseEncodingName());
}
}
#else
if (value &&
- strcasecmp(value, pg_encoding_to_char(pg_get_client_encoding())) != 0)
+ strcasecmp(value, pg_get_client_encoding_name()) != 0)
elog(ERROR, "Client encoding %s is not supported", value);
#endif
return TRUE;
@@ -577,7 +577,7 @@ static bool
show_client_encoding(void)
{
elog(NOTICE, "Current client encoding is %s",
- pg_encoding_to_char(pg_get_client_encoding()));
+ pg_get_client_encoding_name());
return TRUE;
}
@@ -619,8 +619,7 @@ parse_server_encoding(char *value)
static bool
show_server_encoding(void)
{
- elog(NOTICE, "Current server encoding is %s",
- pg_encoding_to_char(GetDatabaseEncoding()));
+ elog(NOTICE, "Current server encoding is %s", GetDatabaseEncodingName());
return TRUE;
}