diff options
author | Marc G. Fournier <scrappy@hub.org> | 1998-07-24 03:32:46 +0000 |
---|---|---|
committer | Marc G. Fournier <scrappy@hub.org> | 1998-07-24 03:32:46 +0000 |
commit | bf00bbb0c4940b80b46b7e5b379cd64184f2262f (patch) | |
tree | bf32bf3bafe6f367ee97249c83afb4c9e9a637af /src/backend/utils/mb/variable.c | |
parent | 6e66468f3a160878111578a93be2852635eb4f4d (diff) | |
download | postgresql-bf00bbb0c4940b80b46b7e5b379cd64184f2262f.tar.gz postgresql-bf00bbb0c4940b80b46b7e5b379cd64184f2262f.zip |
I really hope that I haven't missed anything in this one...
From: t-ishii@sra.co.jp
Attached are patches to enhance the multi-byte support. (patches are
against 7/18 snapshot)
* determine encoding at initdb/createdb rather than compile time
Now initdb/createdb has an option to specify the encoding. Also, I
modified the syntax of CREATE DATABASE to accept encoding option. See
README.mb for more details.
For this purpose I have added new column "encoding" to pg_database.
Also pg_attribute and pg_class are changed to catch up the
modification to pg_database. Actually I haved added pg_database_mb.h,
pg_attribute_mb.h and pg_class_mb.h. These are used only when MB is
enabled. The reason having separate files is I couldn't find a way to
use ifdef or whatever in those files. I have to admit it looks
ugly. No way.
* support for PGCLIENTENCODING when issuing COPY command
commands/copy.c modified.
* support for SQL92 syntax "SET NAMES"
See gram.y.
* support for LATIN2-5
* add UNICODE regression test case
* new test suite for MB
New directory test/mb added.
* clean up source files
Basic idea is to have MB's own subdirectory for easier maintenance.
These are include/mb and backend/utils/mb.
Diffstat (limited to 'src/backend/utils/mb/variable.c')
-rw-r--r-- | src/backend/utils/mb/variable.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/backend/utils/mb/variable.c b/src/backend/utils/mb/variable.c new file mode 100644 index 00000000000..12cc23d3f30 --- /dev/null +++ b/src/backend/utils/mb/variable.c @@ -0,0 +1,73 @@ +/* + * This file contains some public functions + * related to show/set/reset variable commands. + * Tatsuo Ishii + * $Id: variable.c,v 1.1 1998/07/24 03:31:57 scrappy Exp $ + */ + +#include "mb/pg_wchar.h" + +bool +parse_client_encoding(const char *value) +{ + int encoding; + + encoding = pg_valid_client_encoding(value); + if (encoding < 0) { + elog(ERROR, "Client encoding %s is not supported", value); + } else { + if (pg_set_client_encoding(encoding)) { + elog(ERROR, "Conversion between %s and %s is not supported", + value, pg_encoding_to_char(GetDatabaseEncoding())); + } + } + return TRUE; +} + +bool +show_client_encoding() +{ + elog(NOTICE, "Current client encoding is %s", + pg_encoding_to_char(pg_get_client_encoding())); + return TRUE; +} + +bool +reset_client_encoding() +{ + int encoding; + char *env = getenv("PGCLIENTENCODING"); + + if (env) { + encoding = pg_char_to_encoding(env); + if (encoding < 0) { + encoding = GetDatabaseEncoding(); + } + } else { + encoding = GetDatabaseEncoding(); + } + pg_set_client_encoding(encoding); + return TRUE; +} + +bool +parse_server_encoding(const char *value) +{ + elog(NOTICE, "SET SERVER_ENCODING is not supported"); + return TRUE; +} + +bool +show_server_encoding() +{ + elog(NOTICE, "Current server encoding is %s", + pg_encoding_to_char(GetDatabaseEncoding())); + return TRUE; +} + +bool +reset_server_encoding() +{ + elog(NOTICE, "RESET SERVER_ENCODING is not supported"); + return TRUE; +} |