aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/cache/Makefile5
-rw-r--r--src/backend/utils/cache/fcache.c6
-rw-r--r--src/backend/utils/init/postinit.c15
-rw-r--r--src/backend/utils/mb/conv.c33
-rw-r--r--src/backend/utils/mb/wchar.c4
-rw-r--r--src/backend/utils/misc/database.c23
6 files changed, 57 insertions, 29 deletions
diff --git a/src/backend/utils/cache/Makefile b/src/backend/utils/cache/Makefile
index ada76622cd9..5df81fca134 100644
--- a/src/backend/utils/cache/Makefile
+++ b/src/backend/utils/cache/Makefile
@@ -4,7 +4,7 @@
# Makefile for utils/cache
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/utils/cache/Makefile,v 1.8 1998/07/26 04:30:54 scrappy Exp $
+# $Header: /cvsroot/pgsql/src/backend/utils/cache/Makefile,v 1.9 1998/08/24 01:13:52 momjian Exp $
#
#-------------------------------------------------------------------------
@@ -12,9 +12,6 @@ SRCDIR = ../../..
include ../../../Makefile.global
CFLAGS += -I../..
-ifdef MULTIBYTE
-CFLAGS+= $(MBFLAGS)
-endif
OBJS = catcache.o inval.o rel.o relcache.o syscache.o lsyscache.o fcache.o
diff --git a/src/backend/utils/cache/fcache.c b/src/backend/utils/cache/fcache.c
index 13d42341239..89351db8c82 100644
--- a/src/backend/utils/cache/fcache.c
+++ b/src/backend/utils/cache/fcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.15 1998/08/19 02:03:09 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.16 1998/08/24 01:13:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,11 +22,7 @@
#include "catalog/pg_type.h"
#include "catalog/pg_proc.h"
#include "catalog/pg_language.h"
-#ifdef MULTIBYTE
-#include "catalog/pg_class_mb.h"
-#else
#include "catalog/pg_class.h"
-#endif
#include "parser/parsetree.h" /* for getrelname() */
#include "utils/builtins.h"
#include "utils/fcache.h"
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index 12d1255b9ba..790684cda13 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.33 1998/08/11 18:28:28 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.34 1998/08/24 01:13:56 momjian Exp $
*
* NOTES
* InitPostgres() is the function called from PostgresMain
@@ -67,10 +67,7 @@
#include "catalog/catname.h"
#ifdef MULTIBYTE
-#include "catalog/pg_database_mb.h"
#include "mb/pg_wchar.h"
-#else
-#include "catalog/pg_database.h"
#endif
#include "libpq/libpq.h"
@@ -83,11 +80,7 @@ static void InitStdio(void);
static void InitUserid(void);
extern char *ExpandDatabasePath(char *name);
-#ifdef MULTIBYTE
extern void GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path, int *encoding);
-#else
-extern void GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path);
-#endif
static IPCKey PostgresIpcKey;
@@ -128,16 +121,10 @@ InitMyDatabaseInfo(char *name)
int4 owner;
char *path,
myPath[MAXPGPATH + 1];
-#ifdef MULTIBYTE
int encoding;
-#endif
SetDatabaseName(name);
-#ifdef MULTIBYTE
GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath, &encoding);
-#else
- GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath);
-#endif
if (!OidIsValid(MyDatabaseId))
elog(FATAL,
diff --git a/src/backend/utils/mb/conv.c b/src/backend/utils/mb/conv.c
index bca95c5f6b6..01c92e3b9af 100644
--- a/src/backend/utils/mb/conv.c
+++ b/src/backend/utils/mb/conv.c
@@ -2,7 +2,7 @@
* conversion between client encoding and server internal encoding
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: conv.c,v 1.1 1998/07/24 03:31:56 scrappy Exp $
+ * $Id: conv.c,v 1.2 1998/08/24 01:13:59 momjian Exp $
*/
#include <stdio.h>
#include <string.h>
@@ -369,7 +369,38 @@ static void mic2latin5(unsigned char *mic, unsigned char *p, int len)
mic2latin(mic, p, len, LC_ISO8859_5);
}
+/*
+ * ASCII ---> MIC
+ */
+static void ascii2mic(unsigned char *l, unsigned char *p, int len)
+{
+ int c1;
+
+ while (len-- > 0 && (c1 = *l++)) {
+ *p++ = (c1 & 0x7f);
+ }
+ *p = '\0';
+}
+
+/*
+ * MIC ---> ASCII
+ */
+static void mic2ascii(unsigned char *mic, unsigned char *p, int len)
+{
+ int c1;
+
+ while (len > 0 && (c1 = *mic)) {
+ if (c1 > 0x7f) {
+ printBogusChar(&mic, &p);
+ } else { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
+}
+
pg_encoding_conv_tbl pg_conv_tbl[] = {
+ {SQL_ASCII, "SQL_ASCII", 0, ascii2mic, mic2ascii}, /* SQL/ACII */
{EUC_JP, "EUC_JP", 0, euc_jp2mic, mic2euc_jp}, /* EUC_JP */
{EUC_CN, "EUC_CN", 0, euc_cn2mic, mic2euc_cn}, /* EUC_CN */
{EUC_KR, "EUC_KR", 0, euc_kr2mic, mic2euc_kr}, /* EUC_KR */
diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c
index ecb7b543594..f83c4628672 100644
--- a/src/backend/utils/mb/wchar.c
+++ b/src/backend/utils/mb/wchar.c
@@ -1,7 +1,7 @@
/*
* conversion functions between pg_wchar and multi-byte streams.
* Tatsuo Ishii
- * $Id: wchar.c,v 1.1 1998/07/24 03:31:57 scrappy Exp $
+ * $Id: wchar.c,v 1.2 1998/08/24 01:14:01 momjian Exp $
*/
#include "mb/pg_wchar.h"
@@ -316,6 +316,7 @@ static int pg_sjis_mblen(const unsigned char *s)
}
pg_wchar_tbl pg_wchar_table[] = {
+ {0, 0},
{pg_eucjp2wchar_with_len, pg_eucjp_mblen},
{pg_euccn2wchar_with_len, pg_euccn_mblen},
{pg_euckr2wchar_with_len, pg_euckr_mblen},
@@ -347,7 +348,6 @@ pg_wchar_tbl pg_wchar_table[] = {
{0, 0},
{0, 0},
{0, 0},
- {0, 0},
{0, pg_sjis_mblen}
};
diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c
index fa2bb2f1d8b..192737c2019 100644
--- a/src/backend/utils/misc/database.c
+++ b/src/backend/utils/misc/database.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.16 1998/08/19 02:03:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.17 1998/08/24 01:14:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,7 +30,11 @@
#include "utils/builtins.h"
#include "utils/syscache.h"
+#ifdef MULTIBYTE
+#include "mb/pg_wchar.h"
+#endif
+#ifdef 0
/* GetDatabaseInfo()
* Pull database information from pg_database.
*/
@@ -102,6 +106,7 @@ GetDatabaseInfo(char *name, int4 *owner, char *path)
return FALSE;
} /* GetDatabaseInfo() */
+#endif
char *
ExpandDatabasePath(char *dbpath)
@@ -175,7 +180,7 @@ ExpandDatabasePath(char *dbpath)
* --------------------------------
*/
void
-GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path)
+GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path, int *encoding)
{
int dbfd;
int fileflags;
@@ -262,13 +267,25 @@ GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path)
* means of getting at sys cat attrs.
*/
tup_db = (Form_pg_database) GETSTRUCT(tup);
-
+#ifdef MULTIBYTE
+ /* get encoding from template database.
+ This is the "default for default" for
+ create database command.
+ */
+ if (strcmp("template1",tup_db->datname.data) == 0)
+ {
+ SetTemplateEncoding(tup_db->encoding);
+ }
+#endif
if (strcmp(name, tup_db->datname.data) == 0)
{
*db_id = tup->t_oid;
strncpy(path, VARDATA(&(tup_db->datpath)),
(VARSIZE(&(tup_db->datpath)) - VARHDRSZ));
*(path + VARSIZE(&(tup_db->datpath)) - VARHDRSZ) = '\0';
+#ifdef MULTIBYTE
+ *encoding = tup_db->encoding;
+#endif
goto done;
}