mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
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.
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.30 1998/06/27 04:53:48 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.31 1998/07/24 03:31:50 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* InitPostgres() is the function called from PostgresMain
|
||||
@ -66,7 +66,12 @@
|
||||
#include "utils/inval.h"
|
||||
|
||||
#include "catalog/catname.h"
|
||||
#ifdef MB
|
||||
#include "catalog/pg_database_mb.h"
|
||||
#include "mb/pg_wchar.h"
|
||||
#else
|
||||
#include "catalog/pg_database.h"
|
||||
#endif
|
||||
|
||||
#include "libpq/libpq.h"
|
||||
|
||||
@ -78,7 +83,11 @@ static void InitStdio(void);
|
||||
static void InitUserid(void);
|
||||
|
||||
extern char *ExpandDatabasePath(char *name);
|
||||
#ifdef MB
|
||||
extern void GetRawDatabaseInfo(char *name, Oid *owner, Oid *db_id, char *path, int *encoding);
|
||||
#else
|
||||
extern void GetRawDatabaseInfo(char *name, Oid *owner, Oid *db_id, char *path);
|
||||
#endif
|
||||
|
||||
static IPCKey PostgresIpcKey;
|
||||
|
||||
@ -119,9 +128,16 @@ InitMyDatabaseInfo(char *name)
|
||||
Oid owner;
|
||||
char *path,
|
||||
myPath[MAXPGPATH + 1];
|
||||
#ifdef MB
|
||||
int encoding;
|
||||
#endif
|
||||
|
||||
SetDatabaseName(name);
|
||||
#ifdef MB
|
||||
GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath, &encoding);
|
||||
#else
|
||||
GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath);
|
||||
#endif
|
||||
|
||||
if (!OidIsValid(MyDatabaseId))
|
||||
elog(FATAL,
|
||||
@ -131,6 +147,9 @@ InitMyDatabaseInfo(char *name)
|
||||
|
||||
path = ExpandDatabasePath(myPath);
|
||||
SetDatabasePath(path);
|
||||
#ifdef MB
|
||||
SetDatabaseEncoding(encoding);
|
||||
#endif
|
||||
|
||||
return;
|
||||
} /* InitMyDatabaseInfo() */
|
||||
|
Reference in New Issue
Block a user