mirror of
https://github.com/postgres/postgres.git
synced 2025-11-12 05:01:15 +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:
@@ -4,7 +4,7 @@
|
||||
# Makefile for utils/init
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/backend/utils/init/Makefile,v 1.7 1998/04/06 00:27:07 momjian Exp $
|
||||
# $Header: /cvsroot/pgsql/src/backend/utils/init/Makefile,v 1.8 1998/07/24 03:31:49 scrappy Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -12,6 +12,9 @@ SRCDIR = ../../..
|
||||
include ../../../Makefile.global
|
||||
|
||||
CFLAGS += -I../..
|
||||
ifdef MB
|
||||
CFLAGS += -DMB=$(MB)
|
||||
endif
|
||||
|
||||
OBJS = enbl.o findbe.o globals.o miscinit.o postinit.o
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.16 1998/06/27 04:53:47 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.17 1998/07/24 03:31:50 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -234,6 +234,18 @@ SetDatabaseName(char *name)
|
||||
strcpy(DatabaseName, name);
|
||||
}
|
||||
|
||||
#ifndef MB
|
||||
/* even if MB is not enabled, this function is neccesary
|
||||
* since pg_proc.h does have.
|
||||
*/
|
||||
const char *
|
||||
getdatabaseencoding()
|
||||
{
|
||||
elog(ERROR, "you need to enable MB to use this function");
|
||||
return("");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CYR_RECODE
|
||||
#define MAX_TOKEN 80
|
||||
|
||||
|
||||
@@ -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