Remove all traces of multibyte and locale options. Clean up comments

referring to "multibyte" where it really means character encoding.
This commit is contained in:
Peter Eisentraut 2002-09-03 21:45:44 +00:00
parent 86f27321e2
commit 77f7763b55
47 changed files with 127 additions and 284 deletions

12
configure vendored
View File

@ -1632,17 +1632,6 @@ echo "$as_me:$LINENO: result: $enable_recode" >&5
echo "${ECHO_T}$enable_recode" >&6 echo "${ECHO_T}$enable_recode" >&6
#
# Multibyte support
#
MULTIBYTE=SQL_ASCII
cat >>confdefs.h <<\_ACEOF
#define MULTIBYTE 1
_ACEOF
# #
# NLS # NLS
# #
@ -16275,7 +16264,6 @@ s,@host_vendor@,$host_vendor,;t t
s,@host_os@,$host_os,;t t s,@host_os@,$host_os,;t t
s,@PORTNAME@,$PORTNAME,;t t s,@PORTNAME@,$PORTNAME,;t t
s,@TAS@,$TAS,;t t s,@TAS@,$TAS,;t t
s,@MULTIBYTE@,$MULTIBYTE,;t t
s,@enable_nls@,$enable_nls,;t t s,@enable_nls@,$enable_nls,;t t
s,@WANTED_LANGUAGES@,$WANTED_LANGUAGES,;t t s,@WANTED_LANGUAGES@,$WANTED_LANGUAGES,;t t
s,@default_port@,$default_port,;t t s,@default_port@,$default_port,;t t

View File

@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
dnl $Header: /cvsroot/pgsql/configure.in,v 1.201 2002/09/02 16:14:01 momjian Exp $ dnl $Header: /cvsroot/pgsql/configure.in,v 1.202 2002/09/03 21:45:41 petere Exp $
dnl dnl
dnl Developers, please strive to achieve this order: dnl Developers, please strive to achieve this order:
dnl dnl
@ -161,13 +161,6 @@ PGAC_ARG_BOOL(enable, recode, no, [ --enable-recode enable character se
AC_MSG_RESULT([$enable_recode]) AC_MSG_RESULT([$enable_recode])
#
# Multibyte support
#
MULTIBYTE=SQL_ASCII
AC_DEFINE(MULTIBYTE, 1, [Set to 1 if you want to use multibyte characters (--enable-multibyte)])
AC_SUBST(MULTIBYTE)
# #
# NLS # NLS
# #

View File

@ -2,9 +2,7 @@
#define TABLE_DICT_END } #define TABLE_DICT_END }
#include "dict/porter_english.dct" #include "dict/porter_english.dct"
#ifdef USE_LOCALE
#include "dict/russian_stemming.dct" #include "dict/russian_stemming.dct"
#endif
#undef TABLE_DICT_START #undef TABLE_DICT_START
#undef TABLE_DICT_END #undef TABLE_DICT_END

View File

@ -104,19 +104,15 @@ initmorph(void)
k; k;
MAPDICT *md; MAPDICT *md;
bool needinit[lengthof(dicts)]; bool needinit[lengthof(dicts)];
#ifdef USE_LOCALE
PG_LocaleCategories lc; PG_LocaleCategories lc;
int bylocaledict = NODICT; int bylocaledict = NODICT;
#endif
if (inited) if (inited)
return; return;
for (i = 1; i < lengthof(dicts); i++) for (i = 1; i < lengthof(dicts); i++)
needinit[i] = false; needinit[i] = false;
#ifdef USE_LOCALE
PGLC_current(&lc); PGLC_current(&lc);
if ( lc.lc_ctype ) if ( lc.lc_ctype )
for (i = 1; i < lengthof(dicts); i++) for (i = 1; i < lengthof(dicts); i++)
@ -126,7 +122,6 @@ initmorph(void)
break; break;
} }
PGLC_free_categories(&lc); PGLC_free_categories(&lc);
#endif
for (i = 1; i < lengthof(mapdict); i++) for (i = 1; i < lengthof(mapdict); i++)
{ {
@ -139,13 +134,9 @@ initmorph(void)
break; break;
else if (GETDICT(md, k) == BYLOCALE) else if (GETDICT(md, k) == BYLOCALE)
{ {
#ifdef USE_LOCALE
if (bylocaledict == NODICT) if (bylocaledict == NODICT)
continue; continue;
GETDICT(md, k) = bylocaledict; GETDICT(md, k) = bylocaledict;
#else
continue;
#endif
} }
if (GETDICT(md, k) >= (int2) lengthof(dicts)) if (GETDICT(md, k) >= (int2) lengthof(dicts))
continue; continue;

View File

@ -1,5 +1,5 @@
# -*-makefile-*- # -*-makefile-*-
# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.153 2002/08/22 22:43:10 scrappy Exp $ # $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.154 2002/09/03 21:45:41 petere Exp $
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets, # All PostgreSQL makefiles include this file and use the variables it sets,
@ -127,7 +127,6 @@ with_perl = @with_perl@
with_python = @with_python@ with_python = @with_python@
with_tcl = @with_tcl@ with_tcl = @with_tcl@
with_tk = @with_tk@ with_tk = @with_tk@
MULTIBYTE = @MULTIBYTE@
enable_shared = @enable_shared@ enable_shared = @enable_shared@
enable_rpath = @enable_rpath@ enable_rpath = @enable_rpath@
enable_nls = @enable_nls@ enable_nls = @enable_nls@

View File

@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.102 2002/09/02 02:47:01 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.103 2002/09/03 21:45:41 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -591,7 +591,7 @@ get_db_info(const char *name, Oid *dbIdP, int4 *ownerIdP,
/* sysid of the owner */ /* sysid of the owner */
if (ownerIdP) if (ownerIdP)
*ownerIdP = dbform->datdba; *ownerIdP = dbform->datdba;
/* multibyte encoding */ /* character encoding */
if (encodingP) if (encodingP)
*encodingP = dbform->encoding; *encodingP = dbform->encoding;
/* allowed as template? */ /* allowed as template? */

View File

@ -29,7 +29,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pqcomm.c,v 1.138 2002/09/02 02:47:02 momjian Exp $ * $Id: pqcomm.c,v 1.139 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -556,9 +556,9 @@ pq_getbytes(char *s, size_t len)
* The return value is placed in an expansible StringInfo. * The return value is placed in an expansible StringInfo.
* Note that space allocation comes from the current memory context! * Note that space allocation comes from the current memory context!
* *
* NOTE: this routine does not do any MULTIBYTE conversion, * NOTE: this routine does not do any character set conversion,
* even though it is presumably useful only for text, because * even though it is presumably useful only for text, because
* no code in this module should depend on MULTIBYTE mode. * no code in this module should depend on the encoding.
* See pq_getstr in pqformat.c for that. * See pq_getstr in pqformat.c for that.
* *
* returns 0 if OK, EOF if trouble * returns 0 if OK, EOF if trouble

View File

@ -8,7 +8,7 @@
* formatting/conversion routines that are needed to produce valid messages. * formatting/conversion routines that are needed to produce valid messages.
* Note in particular the distinction between "raw data" and "text"; raw data * Note in particular the distinction between "raw data" and "text"; raw data
* is message protocol characters and binary values that are not subject to * is message protocol characters and binary values that are not subject to
* MULTIBYTE conversion, while text is converted by MULTIBYTE rules. * character set conversion, while text is converted by character encoding rules.
* *
* Incoming messages are read directly off the wire, as it were, but there * Incoming messages are read directly off the wire, as it were, but there
* are still data-conversion tasks to be performed. * are still data-conversion tasks to be performed.
@ -16,7 +16,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pqformat.c,v 1.23 2002/08/29 03:22:01 tgl Exp $ * $Id: pqformat.c,v 1.24 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -27,20 +27,20 @@
* pq_sendbyte - append a raw byte to a StringInfo buffer * pq_sendbyte - append a raw byte to a StringInfo buffer
* pq_sendint - append a binary integer to a StringInfo buffer * pq_sendint - append a binary integer to a StringInfo buffer
* pq_sendbytes - append raw data to a StringInfo buffer * pq_sendbytes - append raw data to a StringInfo buffer
* pq_sendcountedtext - append a text string (with MULTIBYTE conversion) * pq_sendcountedtext - append a text string (with character set conversion)
* pq_sendstring - append a null-terminated text string (with MULTIBYTE) * pq_sendstring - append a null-terminated text string (with conversion)
* pq_endmessage - send the completed message to the frontend * pq_endmessage - send the completed message to the frontend
* Note: it is also possible to append data to the StringInfo buffer using * Note: it is also possible to append data to the StringInfo buffer using
* the regular StringInfo routines, but this is discouraged since required * the regular StringInfo routines, but this is discouraged since required
* MULTIBYTE conversion may not occur. * character set conversion may not occur.
* *
* Special-case message output: * Special-case message output:
* pq_puttextmessage - generate a MULTIBYTE-converted message in one step * pq_puttextmessage - generate a character set-converted message in one step
* *
* Message input: * Message input:
* pq_getint - get an integer from connection * pq_getint - get an integer from connection
* pq_getstr - get a null terminated string from connection * pq_getstr - get a null terminated string from connection
* pq_getstr performs MULTIBYTE conversion on the collected string. * pq_getstr performs character set conversion on the collected string.
* Use the raw pqcomm.c routines pq_getstring or pq_getbytes * Use the raw pqcomm.c routines pq_getstring or pq_getbytes
* to fetch data without conversion. * to fetch data without conversion.
*/ */
@ -79,7 +79,7 @@ pq_sendbytes(StringInfo buf, const char *data, int datalen)
} }
/* -------------------------------- /* --------------------------------
* pq_sendcountedtext - append a text string (with MULTIBYTE conversion) * pq_sendcountedtext - append a text string (with character set conversion)
* *
* The data sent to the frontend by this routine is a 4-byte count field * The data sent to the frontend by this routine is a 4-byte count field
* (the count includes itself, by convention) followed by the string. * (the count includes itself, by convention) followed by the string.
@ -106,7 +106,7 @@ pq_sendcountedtext(StringInfo buf, const char *str, int slen)
} }
/* -------------------------------- /* --------------------------------
* pq_sendstring - append a null-terminated text string (with MULTIBYTE) * pq_sendstring - append a null-terminated text string (with conversion)
* *
* NB: passed text string must be null-terminated, and so is the data * NB: passed text string must be null-terminated, and so is the data
* sent to the frontend. * sent to the frontend.
@ -178,10 +178,10 @@ pq_endmessage(StringInfo buf)
} }
/* -------------------------------- /* --------------------------------
* pq_puttextmessage - generate a MULTIBYTE-converted message in one step * pq_puttextmessage - generate a character set-converted message in one step
* *
* This is the same as the pqcomm.c routine pq_putmessage, except that * This is the same as the pqcomm.c routine pq_putmessage, except that
* the message body is a null-terminated string to which MULTIBYTE * the message body is a null-terminated string to which encoding
* conversion applies. * conversion applies.
* *
* returns 0 if OK, EOF if trouble * returns 0 if OK, EOF if trouble

View File

@ -4,7 +4,7 @@
# Makefile for regex # Makefile for regex
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/backend/regex/Makefile,v 1.17 2001/10/04 04:16:16 ishii Exp $ # $Header: /cvsroot/pgsql/src/backend/regex/Makefile,v 1.18 2002/09/03 21:45:42 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -14,13 +14,8 @@ include $(top_builddir)/src/Makefile.global
override CPPFLAGS += -DPOSIX_MISTAKE override CPPFLAGS += -DPOSIX_MISTAKE
DEBUGOBJ =
OBJS = regcomp.o regerror.o regexec.o regfree.o OBJS = regcomp.o regerror.o regexec.o regfree.o
ifdef MULTIBYTE
DEBUGOBJ += ../utils/mb/SUBSYS.o DEBUGOBJ += ../utils/mb/SUBSYS.o
endif
all: SUBSYS.o all: SUBSYS.o
@ -32,12 +27,5 @@ regexec.o: regexec.c engine.c
retest: retest.o SUBSYS.o $(DEBUGOBJ) retest: retest.o SUBSYS.o $(DEBUGOBJ)
$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LIBS) -o $@ $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LIBS) -o $@
depend dep:
$(CC) -MM $(CFLAGS) *.c >depend
clean: clean:
rm -f SUBSYS.o $(OBJS) retest retest.o rm -f SUBSYS.o $(OBJS) retest retest.o
ifeq (depend,$(wildcard depend))
include depend
endif

View File

@ -1,17 +1,14 @@
# #
# Makefile for utils # Makefile for utils
# #
# $Header: /cvsroot/pgsql/src/backend/utils/Makefile,v 1.19 2002/08/10 17:59:28 petere Exp $ # $Header: /cvsroot/pgsql/src/backend/utils/Makefile,v 1.20 2002/09/03 21:45:42 petere Exp $
# #
subdir = src/backend/utils/ subdir = src/backend/utils/
top_builddir = ../../.. top_builddir = ../../..
include $(top_builddir)/src/Makefile.global include $(top_builddir)/src/Makefile.global
SUBDIRS := adt cache error fmgr hash init misc mmgr sort time SUBDIRS := adt cache error fmgr hash init misc mmgr sort time mb
ifdef MULTIBYTE
SUBDIRS += mb
endif
SUBDIROBJS := $(SUBDIRS:%=%/SUBSYS.o) SUBDIROBJS := $(SUBDIRS:%=%/SUBSYS.o)
@ -33,10 +30,3 @@ fmgroids.h fmgrtab.c: Gen_fmgrtab.sh $(top_srcdir)/src/include/catalog/pg_proc.h
clean: clean:
for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
rm -f SUBSYS.o fmgrtab.o fmgroids.h fmgrtab.c rm -f SUBSYS.o fmgrtab.o fmgroids.h fmgrtab.c
dep depend: fmgroids.h fmgrtab.c
for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
ifeq (depend,$(wildcard depend))
include depend
endif

View File

@ -9,7 +9,7 @@
* workings can be found in the book "Software Solutions in C" by * workings can be found in the book "Software Solutions in C" by
* Dale Schumacher, Academic Press, ISBN: 0-12-632360-7. * Dale Schumacher, Academic Press, ISBN: 0-12-632360-7.
* *
* $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.54 2002/08/20 16:46:29 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.55 2002/09/03 21:45:42 petere Exp $
*/ */
#include "postgres.h" #include "postgres.h"
@ -61,7 +61,7 @@ CashGetDatum(Cash value)
* XXX HACK It looks as though some of the symbols for * XXX HACK It looks as though some of the symbols for
* monetary values returned by localeconv() can be multiple * monetary values returned by localeconv() can be multiple
* bytes/characters. This code assumes one byte only. - tgl 97/04/14 * bytes/characters. This code assumes one byte only. - tgl 97/04/14
* XXX UNHACK Allow the currency symbol to be multi-byte. * XXX UNHACK Allow the currency symbol to be multibyte.
* - thomas 1998-03-01 * - thomas 1998-03-01
*/ */
Datum Datum

View File

@ -11,7 +11,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/like.c,v 1.52 2002/09/02 06:22:19 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/like.c,v 1.53 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -93,7 +93,7 @@ iwchareq(unsigned char *p1, unsigned char *p2)
return (0); return (0);
/* /*
* ok, p1 and p2 are both > CHARMAX, then they must be multi-byte * ok, p1 and p2 are both > CHARMAX, then they must be multibyte
* characters * characters
*/ */
l = pg_mblen(p1); l = pg_mblen(p1);

View File

@ -3,8 +3,9 @@
* like_match.c * like_match.c
* like expression handling internal code. * like expression handling internal code.
* *
* This file is included by like.c *twice* if multibyte is enabled. * This file is included by like.c *twice*, to provide an optimization
* This is for an optimization of single byte encodings. * for single-byte encodings.
*
* Before the inclusion, we need to define following macros: * Before the inclusion, we need to define following macros:
* *
* CHAREQ * CHAREQ
@ -18,7 +19,7 @@
* Copyright (c) 1996-2002, PostgreSQL Global Development Group * Copyright (c) 1996-2002, PostgreSQL Global Development Group
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/like_match.c,v 1.3 2002/06/20 20:29:37 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/like_match.c,v 1.4 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/quote.c,v 1.8 2002/08/29 07:22:27 ishii Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/quote.c,v 1.9 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -64,13 +64,9 @@ quote_literal(PG_FUNCTION_ARGS)
PG_RETURN_TEXT_P(result); PG_RETURN_TEXT_P(result);
} }
/* /*
* MULTIBYTE dependant internal functions follow * Check if a given identifier needs quoting
*
*/ */
/* Check if a given identifier needs quoting (MULTIBYTE version) */
static bool static bool
quote_ident_required(text *iptr) quote_ident_required(text *iptr)
{ {
@ -106,7 +102,9 @@ quote_ident_required(text *iptr)
return false; return false;
} }
/* Return a properly quoted identifier (MULTIBYTE version) */ /*
* Return a properly quoted identifier
*/
static text * static text *
do_quote_ident(text *iptr) do_quote_ident(text *iptr)
{ {
@ -147,7 +145,9 @@ do_quote_ident(text *iptr)
return result; return result;
} }
/* Return a properly quoted literal value (MULTIBYTE version) */ /*
* Return a properly quoted literal value
*/
static text * static text *
do_quote_literal(text *lptr) do_quote_literal(text *lptr)
{ {

View File

@ -15,7 +15,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.115 2002/09/02 06:22:19 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.116 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -3367,7 +3367,7 @@ make_greater_string(const Const *str_const)
/* /*
* Truncate off the last character, which might be more than 1 * Truncate off the last character, which might be more than 1
* byte in MULTIBYTE case. * byte, depending on the character encoding.
*/ */
if (datatype != BYTEAOID && pg_database_encoding_max_length() > 1) if (datatype != BYTEAOID && pg_database_encoding_max_length() > 1)
len = pg_mbcliplen((const unsigned char *) workstr, len, len - 1); len = pg_mbcliplen((const unsigned char *) workstr, len, len - 1);

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.92 2002/08/29 07:22:27 ishii Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.93 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -350,8 +350,8 @@ name_bpchar(PG_FUNCTION_ARGS)
* Convert a C string to VARCHAR internal representation. atttypmod * Convert a C string to VARCHAR internal representation. atttypmod
* is the declared length of the type plus VARHDRSZ. * is the declared length of the type plus VARHDRSZ.
* *
* Note that if MULTIBYTE is enabled, atttypmod is regarded as the * Note that atttypmod is regarded as the number of characters, which
* number of characters, rather than number of bytes. * is not necessarily the same as the number of bytes.
* *
* If the C string is too long, * If the C string is too long,
* raise an error, unless the extra characters are spaces, in which * raise an error, unless the extra characters are spaces, in which
@ -450,7 +450,7 @@ varchar(PG_FUNCTION_ARGS)
{ {
size_t maxmblen; size_t maxmblen;
/* truncate multi-byte string preserving multi-byte boundary */ /* truncate multibyte string preserving multibyte boundary */
maxmblen = pg_mbcharcliplen(VARDATA(source), len - VARHDRSZ, maxmblen = pg_mbcharcliplen(VARDATA(source), len - VARHDRSZ,
maxlen - VARHDRSZ) + VARHDRSZ; maxlen - VARHDRSZ) + VARHDRSZ;

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.90 2002/08/29 07:22:27 ishii Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.91 2002/09/03 21:45:42 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -412,9 +412,9 @@ textcat(PG_FUNCTION_ARGS)
* If the length is less than zero, return the remaining string. * If the length is less than zero, return the remaining string.
* *
* Note that the arguments operate on octet length, * Note that the arguments operate on octet length,
* so not aware of multi-byte character sets. * so not aware of multibyte character sets.
* *
* Added multi-byte support. * Added multibyte support.
* - Tatsuo Ishii 1998-4-21 * - Tatsuo Ishii 1998-4-21
* Changed behavior if starting position is less than one to conform to SQL92 behavior. * Changed behavior if starting position is less than one to conform to SQL92 behavior.
* Formerly returned the entire string; now returns a portion. * Formerly returned the entire string; now returns a portion.
@ -624,9 +624,6 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified)
* Implements the SQL92 POSITION() function. * Implements the SQL92 POSITION() function.
* Ref: A Guide To The SQL Standard, Date & Darwen, 1997 * Ref: A Guide To The SQL Standard, Date & Darwen, 1997
* - thomas 1997-07-27 * - thomas 1997-07-27
*
* Added multi-byte support.
* - Tatsuo Ishii 1998-4-21
*/ */
Datum Datum
textpos(PG_FUNCTION_ARGS) textpos(PG_FUNCTION_ARGS)

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.114 2002/09/02 02:47:05 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.115 2002/09/03 21:45:42 petere Exp $
* *
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
@ -69,7 +69,7 @@ static bool ThereIsAtLeastOneUser(void);
* creating any serious problems. * creating any serious problems.
* *
* This is also a handy place to fetch the database encoding info out * This is also a handy place to fetch the database encoding info out
* of pg_database, if we are in MULTIBYTE mode. * of pg_database.
* *
* To avoid having to read pg_database more times than necessary * To avoid having to read pg_database more times than necessary
* during session startup, this place is also fitting to set up any * during session startup, this place is also fitting to set up any
@ -124,9 +124,8 @@ ReverifyMyDatabase(const char *name)
name); name);
/* /*
* OK, we're golden. Only other to-do item is to save the MULTIBYTE * OK, we're golden. Only other to-do item is to save the
* encoding info out of the pg_database tuple --- or complain, if we * encoding info out of the pg_database tuple.
* can't support it.
*/ */
SetDatabaseEncoding(dbform->encoding); SetDatabaseEncoding(dbform->encoding);
/* If we have no other source of client_encoding, use server encoding */ /* If we have no other source of client_encoding, use server encoding */

View File

@ -2,7 +2,7 @@ common.c: public functions for both the backend and the frontend.
requires conv.c and wchar.c requires conv.c and wchar.c
conv.c: static functions and a public table for code conversion conv.c: static functions and a public table for code conversion
wchar.c: mostly static functions and a public table for mb string and wchar.c: mostly static functions and a public table for mb string and
multi-byte conversion multibyte conversion
mbutilc.c: public functions for the backend only. mbutilc.c: public functions for the backend only.
requires conv.c and wchar.c requires conv.c and wchar.c
wstrcmp.c: strcmp for mb wstrcmp.c: strcmp for mb
@ -12,4 +12,4 @@ iso.c: a tool to generate KOI8 <--> ISO8859-5 conversion table
win.c: a tool to generate KOI8 <--> CP1251 conversion table win.c: a tool to generate KOI8 <--> CP1251 conversion table
big5.c: conversion between BIG5 and Mule Internal Code(CNS 116643-1992 big5.c: conversion between BIG5 and Mule Internal Code(CNS 116643-1992
plane 1 and plane 2). plane 1 and plane 2).
utftest.c: test driver for utf2wchar() utftest.c: test driver for utf2wchar()

View File

@ -2,7 +2,7 @@
* Encoding names and routines for work with it. All * Encoding names and routines for work with it. All
* in this file is shared bedween FE and BE. * in this file is shared bedween FE and BE.
* *
* $Id: encnames.c,v 1.8 2002/06/13 08:28:54 ishii Exp $ * $Id: encnames.c,v 1.9 2002/09/03 21:45:43 petere Exp $
*/ */
#ifdef FRONTEND #ifdef FRONTEND
#include "postgres_fe.h" #include "postgres_fe.h"
@ -44,7 +44,7 @@ pg_encname pg_encname_tbl[] =
}, /* IBM866 */ }, /* IBM866 */
{ {
"big5", PG_BIG5 "big5", PG_BIG5
}, /* Big5; Chinese for Taiwan Multi-byte set */ }, /* Big5; Chinese for Taiwan multibyte set */
{ {
"euccn", PG_EUC_CN "euccn", PG_EUC_CN
}, /* EUC-CN; Extended Unix Code for }, /* EUC-CN; Extended Unix Code for

View File

@ -3,7 +3,7 @@
* client encoding and server internal encoding. * client encoding and server internal encoding.
* (currently mule internal code (mic) is used) * (currently mule internal code (mic) is used)
* Tatsuo Ishii * Tatsuo Ishii
* $Id: mbutils.c,v 1.33 2002/08/29 07:22:28 ishii Exp $ * $Id: mbutils.c,v 1.34 2002/09/03 21:45:43 petere Exp $
*/ */
#include "postgres.h" #include "postgres.h"
#include "access/xact.h" #include "access/xact.h"
@ -347,28 +347,28 @@ perform_default_encoding_conversion(unsigned char *src, int len, bool is_client_
return result; return result;
} }
/* convert a multi-byte string to a wchar */ /* convert a multibyte string to a wchar */
int int
pg_mb2wchar(const unsigned char *from, pg_wchar *to) pg_mb2wchar(const unsigned char *from, pg_wchar *to)
{ {
return (*pg_wchar_table[DatabaseEncoding->encoding].mb2wchar_with_len) (from, to, strlen(from)); return (*pg_wchar_table[DatabaseEncoding->encoding].mb2wchar_with_len) (from, to, strlen(from));
} }
/* convert a multi-byte string to a wchar with a limited length */ /* convert a multibyte string to a wchar with a limited length */
int int
pg_mb2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) pg_mb2wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
{ {
return (*pg_wchar_table[DatabaseEncoding->encoding].mb2wchar_with_len) (from, to, len); return (*pg_wchar_table[DatabaseEncoding->encoding].mb2wchar_with_len) (from, to, len);
} }
/* returns the byte length of a multi-byte word */ /* returns the byte length of a multibyte word */
int int
pg_mblen(const unsigned char *mbstr) pg_mblen(const unsigned char *mbstr)
{ {
return ((*pg_wchar_table[DatabaseEncoding->encoding].mblen) (mbstr)); return ((*pg_wchar_table[DatabaseEncoding->encoding].mblen) (mbstr));
} }
/* returns the length (counted as a wchar) of a multi-byte string */ /* returns the length (counted as a wchar) of a multibyte string */
int int
pg_mbstrlen(const unsigned char *mbstr) pg_mbstrlen(const unsigned char *mbstr)
{ {
@ -386,7 +386,7 @@ pg_mbstrlen(const unsigned char *mbstr)
return (len); return (len);
} }
/* returns the length (counted as a wchar) of a multi-byte string /* returns the length (counted as a wchar) of a multibyte string
(not necessarily NULL terminated) */ (not necessarily NULL terminated) */
int int
pg_mbstrlen_with_len(const unsigned char *mbstr, int limit) pg_mbstrlen_with_len(const unsigned char *mbstr, int limit)
@ -405,10 +405,10 @@ pg_mbstrlen_with_len(const unsigned char *mbstr, int limit)
} }
/* /*
* returns the byte length of a multi-byte string * returns the byte length of a multibyte string
* (not necessarily NULL terminated) * (not necessarily NULL terminated)
* that is no longer than limit. * that is no longer than limit.
* this function does not break multi-byte word boundary. * this function does not break multibyte word boundary.
*/ */
int int
pg_mbcliplen(const unsigned char *mbstr, int len, int limit) pg_mbcliplen(const unsigned char *mbstr, int len, int limit)

View File

@ -1,7 +1,7 @@
/* /*
* conversion functions between pg_wchar and multi-byte streams. * conversion functions between pg_wchar and multibyte streams.
* Tatsuo Ishii * Tatsuo Ishii
* $Id: wchar.c,v 1.28 2002/06/13 08:28:54 ishii Exp $ * $Id: wchar.c,v 1.29 2002/09/03 21:45:43 petere Exp $
* *
* WIN1250 client encoding updated by Pavel Behal * WIN1250 client encoding updated by Pavel Behal
* *
@ -580,7 +580,7 @@ pg_mic_mblen(const unsigned char *mbstr)
} }
/* /*
* Returns the byte length of a multi-byte word. * Returns the byte length of a multibyte word.
*/ */
int int
pg_encoding_mblen(int encoding, const unsigned char *mbstr) pg_encoding_mblen(int encoding, const unsigned char *mbstr)
@ -638,7 +638,7 @@ pg_verifymbstr(const unsigned char *mbstr, int len)
l = pg_mblen(mbstr); l = pg_mblen(mbstr);
/* multi-byte letter? */ /* multibyte letter? */
if (l > 1) if (l > 1)
{ {
for (i = 1; i < l; i++) for (i = 1; i < l; i++)
@ -646,7 +646,7 @@ pg_verifymbstr(const unsigned char *mbstr, int len)
if (i > len || *(mbstr + i) == '\0' || if (i > len || *(mbstr + i) == '\0' ||
/* /*
* we assume that every muti-byte letter consists of bytes * we assume that every multibyte letter consists of bytes
* being the 8th bit set * being the 8th bit set
*/ */
((*(mbstr + i) & 0x80) == 0)) ((*(mbstr + i) & 0x80) == 0))

View File

@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California # Portions Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/bin/Makefile,v 1.38 2002/08/30 18:14:21 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/Makefile,v 1.39 2002/09/03 21:45:43 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -14,11 +14,8 @@ top_builddir = ../..
include $(top_builddir)/src/Makefile.global include $(top_builddir)/src/Makefile.global
DIRS := initdb initlocation ipcclean pg_ctl pg_dump pg_id \ DIRS := initdb initlocation ipcclean pg_ctl pg_dump pg_id \
psql scripts pg_config pg_controldata pg_resetxlog psql scripts pg_config pg_controldata pg_resetxlog \
pg_encoding
ifdef MULTIBYTE
DIRS += pg_encoding
endif
ifeq ($(with_tcl), yes) ifeq ($(with_tcl), yes)
DIRS += pgtclsh DIRS += pgtclsh

View File

@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California # Portions Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/bin/initdb/Makefile,v 1.27 2002/06/20 20:29:41 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/initdb/Makefile,v 1.28 2002/09/03 21:45:43 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -16,8 +16,7 @@ include $(top_builddir)/src/Makefile.global
all: initdb all: initdb
initdb: initdb.sh $(top_builddir)/src/Makefile.global initdb: initdb.sh $(top_builddir)/src/Makefile.global
sed -e 's/@MULTIBYTE@/$(MULTIBYTE)/g' \ sed -e 's/@VERSION@/$(VERSION)/g' \
-e 's/@VERSION@/$(VERSION)/g' \
-e 's,@SHELL@,$(SHELL),g' \ -e 's,@SHELL@,$(SHELL),g' \
-e 's,@bindir@,$(bindir),g' \ -e 's,@bindir@,$(bindir),g' \
-e 's,@datadir@,$(datadir),g' \ -e 's,@datadir@,$(datadir),g' \

View File

@ -27,7 +27,7 @@
# Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California # Portions Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.170 2002/08/31 17:14:28 tgl Exp $ # $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.171 2002/09/03 21:45:43 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -80,8 +80,6 @@ bindir='@bindir@'
# Note that "datadir" is not the directory we're initializing, it's # Note that "datadir" is not the directory we're initializing, it's
# merely how Autoconf names PREFIX/share. # merely how Autoconf names PREFIX/share.
datadir='@datadir@' datadir='@datadir@'
# as set by configure --enable-multibyte[=XXX].
MULTIBYTE='@MULTIBYTE@'
# Check for echo -n vs echo \c # Check for echo -n vs echo \c
@ -190,7 +188,7 @@ fi
# COMMAND LINE OPTIONS # COMMAND LINE OPTIONS
# 0 is the default (non-)encoding # 0 is the default (non-)encoding
MULTIBYTEID=0 ENCODINGID=0
# Set defaults: # Set defaults:
debug= debug=
@ -263,13 +261,13 @@ do
# The encoding of the template1 database. Defaults to what you chose # The encoding of the template1 database. Defaults to what you chose
# at configure time. (see above) # at configure time. (see above)
--encoding|-E) --encoding|-E)
MULTIBYTE="$2" ENCODING="$2"
shift;; shift;;
--encoding=*) --encoding=*)
MULTIBYTE=`echo $1 | sed 's/^--encoding=//'` ENCODING=`echo $1 | sed 's/^--encoding=//'`
;; ;;
-E*) -E*)
MULTIBYTE=`echo $1 | sed 's/^-E//'` ENCODING=`echo $1 | sed 's/^-E//'`
;; ;;
# Locale flags # Locale flags
--locale) --locale)
@ -342,9 +340,7 @@ if [ "$usage" ]; then
echo "Options:" echo "Options:"
echo " [-D, --pgdata] DATADIR Location for this database cluster" echo " [-D, --pgdata] DATADIR Location for this database cluster"
echo " -W, --pwprompt Prompt for a password for the new superuser" echo " -W, --pwprompt Prompt for a password for the new superuser"
if [ -n "$MULTIBYTE" ] ; then echo " -E, --encoding ENCODING Set default encoding for new databases"
echo " -E, --encoding ENCODING Set default encoding for new databases"
fi
echo " --locale LOCALE Initialize database cluster with given locale" echo " --locale LOCALE Initialize database cluster with given locale"
echo " --lc-collate, --lc-ctype, --lc-messages LOCALE" echo " --lc-collate, --lc-ctype, --lc-messages LOCALE"
echo " --lc-monetary, --lc-numeric, --lc-time LOCALE" echo " --lc-monetary, --lc-numeric, --lc-time LOCALE"
@ -363,25 +359,23 @@ if [ "$usage" ]; then
fi fi
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# Resolve the multibyte encoding name # Resolve the encoding name
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
if [ "$MULTIBYTE" ] if [ "$ENCODING" ]
then then
MULTIBYTEID=`$PGPATH/pg_encoding -b $MULTIBYTE` ENCODINGID=`$PGPATH/pg_encoding -b $ENCODING`
if [ "$?" -ne 0 ] if [ "$?" -ne 0 ]
then then
( (
echo "$CMDNAME: pg_encoding failed" echo "$CMDNAME: pg_encoding failed"
echo echo "Make sure the program was installed correctly."
echo "Perhaps you did not configure PostgreSQL for multibyte support or"
echo "the program was not successfully installed."
) 1>&2 ) 1>&2
exit 1 exit 1
fi fi
if [ -z "$MULTIBYTEID" ] if [ -z "$ENCODINGID" ]
then then
echo "$CMDNAME: $MULTIBYTE is not a valid backend encoding name" 1>&2 echo "$CMDNAME: $ENCODING is not a valid backend encoding name" 1>&2
exit 1 exit 1
fi fi
fi fi
@ -418,7 +412,7 @@ then
( (
echo echo
echo "initdb variables:" echo "initdb variables:"
for var in PGDATA datadir PGPATH MULTIBYTE MULTIBYTEID \ for var in PGDATA datadir PGPATH ENCODING ENCODINGID \
POSTGRES_SUPERUSERNAME POSTGRES_BKI \ POSTGRES_SUPERUSERNAME POSTGRES_BKI \
POSTGRES_DESCR POSTGRESQL_CONF_SAMPLE \ POSTGRES_DESCR POSTGRESQL_CONF_SAMPLE \
PG_HBA_SAMPLE PG_IDENT_SAMPLE ; do PG_HBA_SAMPLE PG_IDENT_SAMPLE ; do
@ -569,7 +563,7 @@ echo "$short_version" > "$PGDATA/PG_VERSION" || exit_nicely
cat "$POSTGRES_BKI" \ cat "$POSTGRES_BKI" \
| sed -e "s/POSTGRES/$POSTGRES_SUPERUSERNAME/g" \ | sed -e "s/POSTGRES/$POSTGRES_SUPERUSERNAME/g" \
-e "s/ENCODING/$MULTIBYTEID/g" \ -e "s/ENCODING/$ENCODINGID/g" \
| |
( (
LC_COLLATE=`pg_getlocale COLLATE` LC_COLLATE=`pg_getlocale COLLATE`

View File

@ -43,13 +43,6 @@ CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D\
"_MBCS" /Fp"$(INTDIR)\psql.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \ "_MBCS" /Fp"$(INTDIR)\psql.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \
/I ..\..\include /I ..\..\interfaces\libpq /D "HAVE_STRDUP" /I ..\..\include /I ..\..\interfaces\libpq /D "HAVE_STRDUP"
!IFDEF MULTIBYTE
!IFNDEF MBFLAGS
MBFLAGS="-DMULTIBYTE=$(MULTIBYTE)"
!ENDIF
CPP_PROJ=$(MBFLAGS) $(CPP_PROJ)
!ENDIF
CPP_OBJS=.\Release/ CPP_OBJS=.\Release/
CPP_SBRS=. CPP_SBRS=.

View File

@ -12,7 +12,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.24 2002/08/10 16:57:32 petere Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.25 2002/09/03 21:45:43 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -140,7 +140,7 @@ if [ "$usage" ]; then
echo " -O, --owner=OWNER Database user to own the new database" echo " -O, --owner=OWNER Database user to own the new database"
echo " -D, --location=PATH Alternative place to store the database" echo " -D, --location=PATH Alternative place to store the database"
echo " -T, --template=TEMPLATE Template database to copy" echo " -T, --template=TEMPLATE Template database to copy"
echo " -E, --encoding=ENCODING Multibyte encoding for the database" echo " -E, --encoding=ENCODING Encoding for the database"
echo " -h, --host=HOSTNAME Database server host" echo " -h, --host=HOSTNAME Database server host"
echo " -p, --port=PORT Database server port" echo " -p, --port=PORT Database server port"
echo " -U, --username=USERNAME Username to connect as" echo " -U, --username=USERNAME Username to connect as"

View File

@ -5,9 +5,6 @@
# finds oids that are duplicated in the system tables. # finds oids that are duplicated in the system tables.
# #
# no multibytes files
FILES=`ls pg_*.h |grep -v '_mb.h'`
# #
# The previous version did not use the -d option on uniq # The previous version did not use the -d option on uniq
# so check here that it is supported. # so check here that it is supported.

View File

@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pg_control.h,v 1.8 2002/06/20 20:29:44 momjian Exp $ * $Id: pg_control.h,v 1.9 2002/09/03 21:45:43 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -113,7 +113,7 @@ typedef struct ControlFileData
/* flag indicating internal format of timestamp, interval, time */ /* flag indicating internal format of timestamp, interval, time */
uint32 enableIntTimes; /* int64 storage enabled? */ uint32 enableIntTimes; /* int64 storage enabled? */
/* active locales --- "C" if compiled without USE_LOCALE: */ /* active locales */
uint32 localeBuflen; uint32 localeBuflen;
char lc_collate[LOCALE_NAME_BUFLEN]; char lc_collate[LOCALE_NAME_BUFLEN];
char lc_ctype[LOCALE_NAME_BUFLEN]; char lc_ctype[LOCALE_NAME_BUFLEN];

View File

@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pg_database.h,v 1.26 2002/08/04 06:54:10 thomas Exp $ * $Id: pg_database.h,v 1.27 2002/09/03 21:45:43 petere Exp $
* *
* NOTES * NOTES
* the genbki.sh script reads this file and generates .bki * the genbki.sh script reads this file and generates .bki
@ -35,7 +35,7 @@ CATALOG(pg_database) BOOTSTRAP BKI_SHARED_RELATION
{ {
NameData datname; /* database name */ NameData datname; /* database name */
int4 datdba; /* sysid of owner */ int4 datdba; /* sysid of owner */
int4 encoding; /* multibyte encoding, if any */ int4 encoding; /* character encoding */
bool datistemplate; /* allowed as CREATE DATABASE template? */ bool datistemplate; /* allowed as CREATE DATABASE template? */
bool datallowconn; /* new connections allowed? */ bool datallowconn; /* new connections allowed? */
Oid datlastsysoid; /* highest OID to consider a system OID */ Oid datlastsysoid; /* highest OID to consider a system OID */

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: pg_proc.h,v 1.268 2002/09/02 06:22:19 momjian Exp $ * $Id: pg_proc.h,v 1.269 2002/09/03 21:45:43 petere Exp $
* *
* NOTES * NOTES
* The script catalog/genbki.sh reads this file and generates .bki * The script catalog/genbki.sh reads this file and generates .bki
@ -2137,7 +2137,7 @@ DESCR("convert int32 number to hex");
DATA(insert OID = 2090 ( to_hex PGNSP PGUID 12 f f t f i 1 25 "20" to_hex64 - _null_ )); DATA(insert OID = 2090 ( to_hex PGNSP PGUID 12 f f t f i 1 25 "20" to_hex64 - _null_ ));
DESCR("convert int64 number to hex"); DESCR("convert int64 number to hex");
/* for multi-byte support */ /* for character set encoding support */
/* return database encoding name */ /* return database encoding name */
DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 f f t f s 0 19 "" getdatabaseencoding - _null_ )); DATA(insert OID = 1039 ( getdatabaseencoding PGNSP PGUID 12 f f t f s 0 19 "" getdatabaseencoding - _null_ ));

View File

@ -1,4 +1,4 @@
/* $Id: pg_wchar.h,v 1.42 2002/08/14 02:45:10 ishii Exp $ */ /* $Id: pg_wchar.h,v 1.43 2002/09/03 21:45:44 petere Exp $ */
#ifndef PG_WCHAR_H #ifndef PG_WCHAR_H
#define PG_WCHAR_H #define PG_WCHAR_H
@ -38,11 +38,11 @@ typedef unsigned int pg_wchar;
*/ */
#define IS_LCPRV1(c) ((unsigned char)(c) == 0x9a || (unsigned char)(c) == 0x9b) #define IS_LCPRV1(c) ((unsigned char)(c) == 0x9a || (unsigned char)(c) == 0x9b)
/* /*
* Is a leading byte for "official" multi byte encodings? * Is a leading byte for "official" multibyte encodings?
*/ */
#define IS_LC2(c) ((unsigned char)(c) >= 0x90 && (unsigned char)(c) <= 0x99) #define IS_LC2(c) ((unsigned char)(c) >= 0x90 && (unsigned char)(c) <= 0x99)
/* /*
* Is a prefix byte for "private" multi byte encodings? * Is a prefix byte for "private" multibyte encodings?
*/ */
#define IS_LCPRV2(c) ((unsigned char)(c) == 0x9c || (unsigned char)(c) == 0x9d) #define IS_LCPRV2(c) ((unsigned char)(c) == 0x9c || (unsigned char)(c) == 0x9d)
@ -118,7 +118,7 @@ typedef unsigned int pg_wchar;
#define LC_ARABIC_2_COLUMN 0xa8 /* Arabic 1-column (not supported) */ #define LC_ARABIC_2_COLUMN 0xa8 /* Arabic 1-column (not supported) */
/* /*
* Private multi byte encodings (0xf0-0xff) * Private multibyte encodings (0xf0-0xff)
*/ */
#define LC_INDIAN_1_COLUMN 0xf0/* Indian charset for 1-column width #define LC_INDIAN_1_COLUMN 0xf0/* Indian charset for 1-column width
* glypps (not supported) */ * glypps (not supported) */
@ -250,9 +250,9 @@ typedef int (*mblen_converter) (const unsigned char *mbstr);
typedef struct typedef struct
{ {
mb2wchar_with_len_converter mb2wchar_with_len; /* convert a multi-byte mb2wchar_with_len_converter mb2wchar_with_len; /* convert a multibyte
* string to a wchar */ * string to a wchar */
mblen_converter mblen; /* returns the length of a multi-byte char */ mblen_converter mblen; /* returns the length of a multibyte char */
int maxmblen; /* max bytes for a char in this charset */ int maxmblen; /* max bytes for a char in this charset */
} pg_wchar_tbl; } pg_wchar_tbl;

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: builtins.h,v 1.197 2002/08/29 07:22:29 ishii Exp $ * $Id: builtins.h,v 1.198 2002/09/03 21:45:44 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -661,7 +661,7 @@ extern Datum RI_FKey_setnull_upd(PG_FUNCTION_ARGS);
extern Datum RI_FKey_setdefault_del(PG_FUNCTION_ARGS); extern Datum RI_FKey_setdefault_del(PG_FUNCTION_ARGS);
extern Datum RI_FKey_setdefault_upd(PG_FUNCTION_ARGS); extern Datum RI_FKey_setdefault_upd(PG_FUNCTION_ARGS);
/* multibyte support functions */ /* encoding support functions */
extern Datum getdatabaseencoding(PG_FUNCTION_ARGS); extern Datum getdatabaseencoding(PG_FUNCTION_ARGS);
extern Datum database_character_set(PG_FUNCTION_ARGS); extern Datum database_character_set(PG_FUNCTION_ARGS);
extern Datum pg_client_encoding(PG_FUNCTION_ARGS); extern Datum pg_client_encoding(PG_FUNCTION_ARGS);

View File

@ -11,9 +11,8 @@ import java.util.*;
* example.Unicode <url> <user> <password> * example.Unicode <url> <user> <password>
* where <url> must specify an existing database to which <user> and * where <url> must specify an existing database to which <user> and
* <password> give access and which has UNICODE as its encoding. * <password> give access and which has UNICODE as its encoding.
* (To create a database with UNICODE encoding, you need to compile * (To create a database with UNICODE encoding, you need to run createdb
* postgres with "--enable-multibyte" and run createdb with the * with the flag "-E UNICODE".)
* flag "-E UNICODE".)
* *
* This test only produces output on error. * This test only produces output on error.
* *

View File

@ -4,7 +4,7 @@
# #
# Copyright (c) 1994, Regents of the University of California # Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v 1.64 2002/07/27 20:10:05 petere Exp $ # $Header: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v 1.65 2002/09/03 21:45:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -22,12 +22,9 @@ override CPPFLAGS := -I$(srcdir) $(CPPFLAGS) -DFRONTEND -DSYSCONFDIR='"$(sysconf
OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
pqexpbuffer.o dllist.o md5.o pqsignal.o fe-secure.o \ pqexpbuffer.o dllist.o md5.o pqsignal.o fe-secure.o \
wchar.o encnames.o \
$(filter inet_aton.o snprintf.o strerror.o, $(LIBOBJS)) $(filter inet_aton.o snprintf.o strerror.o, $(LIBOBJS))
ifdef MULTIBYTE
OBJS+= wchar.o encnames.o
endif
# Add libraries that libpq depends (or might depend) on into the # Add libraries that libpq depends (or might depend) on into the
# shared library link. (The order in which you list them here doesn't # shared library link. (The order in which you list them here doesn't
@ -57,12 +54,8 @@ md5.c: $(backend_src)/libpq/md5.c
inet_aton.c snprintf.c strerror.c: %.c : $(top_srcdir)/src/port/%.c inet_aton.c snprintf.c strerror.c: %.c : $(top_srcdir)/src/port/%.c
rm -f $@ && $(LN_S) $< . rm -f $@ && $(LN_S) $< .
ifdef MULTIBYTE encnames.c wchar.c : % : $(backend_src)/utils/mb/%
wchar.c : % : $(backend_src)/utils/mb/%
rm -f $@ && $(LN_S) $< . rm -f $@ && $(LN_S) $< .
encnames.c : % : $(backend_src)/utils/mb/%
rm -f $@ && $(LN_S) $< .
endif
install: all installdirs install-lib install: all installdirs install-lib

View File

@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $Id: libpq-int.h,v 1.55 2002/08/18 03:47:08 tgl Exp $ * $Id: libpq-int.h,v 1.56 2002/09/03 21:45:44 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -180,7 +180,6 @@ typedef enum
{ {
SETENV_STATE_OPTION_SEND, /* About to send an Environment Option */ SETENV_STATE_OPTION_SEND, /* About to send an Environment Option */
SETENV_STATE_OPTION_WAIT, /* Waiting for above send to complete */ SETENV_STATE_OPTION_WAIT, /* Waiting for above send to complete */
/* these next two are only used in MULTIBYTE mode */
SETENV_STATE_ENCODINGS_SEND, /* About to send an "encodings" query */ SETENV_STATE_ENCODINGS_SEND, /* About to send an "encodings" query */
SETENV_STATE_ENCODINGS_WAIT, /* Waiting for query to complete */ SETENV_STATE_ENCODINGS_WAIT, /* Waiting for query to complete */
SETENV_STATE_IDLE SETENV_STATE_IDLE

View File

@ -6,29 +6,6 @@
!MESSAGE Building the Win32 static library... !MESSAGE Building the Win32 static library...
!MESSAGE !MESSAGE
!IF "$(CFG)" == ""
CFG=Release
!MESSAGE No configuration specified. Defaulting to Release.
!MESSAGE
!ELSE
!MESSAGE Configuration "$(CFG)"
!MESSAGE
!ENDIF
!IF "$(CFG)" != "Release" && "$(CFG)" != "MultibyteRelease"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f win32.mak CFG=[Release | MultibyteRelease ]
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Release" (Win32 Release DLL)
!MESSAGE "MultibyteRelease" (Win32 Release DLL with Multibyte support)
!MESSAGE
!ERROR An invalid configuration was specified.
!ENDIF
!IFDEF DEBUG !IFDEF DEBUG
OPT=/Od OPT=/Od
@ -46,10 +23,6 @@ NULL=
NULL=nul NULL=nul
!ENDIF !ENDIF
!IF "$(CFG)" == "MultibyteRelease"
MULTIBYTE=1
!ENDIF
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
@ -82,10 +55,8 @@ CLEAN :
-@erase "$(OUTDIR)\libpq.pch" -@erase "$(OUTDIR)\libpq.pch"
-@erase "$(OUTDIR)\libpqdll.exp" -@erase "$(OUTDIR)\libpqdll.exp"
-@erase "$(OUTDIR)\libpqdll.lib" -@erase "$(OUTDIR)\libpqdll.lib"
!IFDEF MULTIBYTE
-@erase "$(INTDIR)\wchar.obj" -@erase "$(INTDIR)\wchar.obj"
-@erase "$(INTDIR)\encnames.obj" -@erase "$(INTDIR)\encnames.obj"
!ENDIF
"$(OUTDIR)" : "$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
@ -94,16 +65,9 @@ CPP_PROJ=/nologo /MD /W3 /GX $(OPT) /I "..\..\include" /D "FRONTEND" $(DEBUGDEF)
"WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\ "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"
!IFDEF MULTIBYTE
!IFNDEF MBFLAGS
MBFLAGS="-DMULTIBYTE=$(MULTIBYTE)"
!ENDIF
CPP_PROJ = $(CPP_PROJ) $(MBFLAGS)
!ENDIF
CPP_OBJS=.\Release/ CPP_OBJS=.\Release/
CPP_SBRS=. CPP_SBRS=.
LIB32=link.exe -lib LIB32=link.exe -lib
LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\libpq.lib" LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\libpq.lib"
LIB32_OBJS= \ LIB32_OBJS= \
@ -117,11 +81,9 @@ LIB32_OBJS= \
"$(INTDIR)\fe-misc.obj" \ "$(INTDIR)\fe-misc.obj" \
"$(INTDIR)\fe-print.obj" \ "$(INTDIR)\fe-print.obj" \
"$(INTDIR)\fe-secure.obj" \ "$(INTDIR)\fe-secure.obj" \
"$(INTDIR)\pqexpbuffer.obj" "$(INTDIR)\pqexpbuffer.obj" \
"$(INTDIR)\wchar.obj" \
!IFDEF MULTIBYTE "$(INTDIR)\encnames.obj"
LIB32_OBJS = $(LIB32_OBJS) "$(INTDIR)\wchar.obj" "$(INTDIR)\encnames.obj"
!ENDIF
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res" RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
@ -156,27 +118,23 @@ LINK32_OBJS= \
$(CPP_PROJ) ..\..\backend\lib\dllist.c $(CPP_PROJ) ..\..\backend\lib\dllist.c
<< <<
"$(OUTDIR)\md5.obj" : ..\..\backend\libpq\md5.c "$(OUTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
$(CPP) @<< $(CPP) @<<
$(CPP_PROJ) ..\..\backend\libpq\md5.c $(CPP_PROJ) ..\..\backend\libpq\md5.c
<< <<
!IFDEF MULTIBYTE
"$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c "$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c
$(CPP) @<< $(CPP) @<<
$(CPP_PROJ) /I "." ..\..\backend\utils\mb\wchar.c $(CPP_PROJ) /I "." ..\..\backend\utils\mb\wchar.c
<< <<
!ENDIF
!IFDEF MULTIBYTE
"$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c "$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c
$(CPP) @<< $(CPP) @<<
$(CPP_PROJ) /I "." ..\..\backend\utils\mb\encnames.c $(CPP_PROJ) /I "." ..\..\backend\utils\mb\encnames.c
<< <<
!ENDIF
.c{$(CPP_OBJS)}.obj:: .c{$(CPP_OBJS)}.obj::

View File

@ -1,11 +1,11 @@
# $Header: /cvsroot/pgsql/src/test/locale/Makefile,v 1.7 2001/01/19 19:15:33 petere Exp $ # $Header: /cvsroot/pgsql/src/test/locale/Makefile,v 1.8 2002/09/03 21:45:44 petere Exp $
subdir = src/test/locale subdir = src/test/locale
top_builddir = ../../.. top_builddir = ../../..
include $(top_builddir)/src/Makefile.global include $(top_builddir)/src/Makefile.global
PROGS = test-pgsql-locale test-ctype PROGS = test-ctype
DIRS = de_DE.ISO8859-1 gr_GR.ISO8859-7 koi8-r koi8-to-win1251 DIRS = de_DE.ISO8859-1 gr_GR.ISO8859-7 koi8-r koi8-to-win1251
all: $(PROGS) all: $(PROGS)

View File

@ -1,4 +1,4 @@
$Header: /cvsroot/pgsql/src/test/locale/README,v 1.3 2001/01/19 19:43:27 petere Exp $ $Header: /cvsroot/pgsql/src/test/locale/README,v 1.4 2002/09/03 21:45:44 petere Exp $
This directory contains a set of tests for locales. I provided one C This directory contains a set of tests for locales. I provided one C
program test-ctype.c to test CTYPE support in libc and the installed program test-ctype.c to test CTYPE support in libc and the installed
@ -11,11 +11,9 @@ for example
gmake check-koi8-r gmake check-koi8-r
Currently, there are only tests for a few locales available. The script Currently, there are only tests for a few locales available. The script
'runall' calls test-pgsql-locale to test whether locale support has been 'runall' calls test-ctype to test libc and locale data, test-sort.pl
compiled into PostgreSQL, test-ctype to test libc and locale data, (uncomment test-sort.py, if you have a Python interpreter installed), and
test-sort.pl (uncomment test-sort.py, if you have a Python interpreter does tests on PostgreSQL with the provided SQL script files.
installed), and does tests on PostgreSQL with the provided SQL script
files.
To add locale tests one needs to create a directory $locale and create To add locale tests one needs to create a directory $locale and create
a Makefile (and other files) similar to koi8-r/*. Actually, the simplest a Makefile (and other files) similar to koi8-r/*. Actually, the simplest

View File

@ -3,9 +3,6 @@
PATH=..:$PATH PATH=..:$PATH
echo "Testing PostgreSQL compilation..." echo "Testing PostgreSQL compilation..."
if ! test-pgsql-locale; then
exit 1
fi
LC_CTYPE=de_DE.ISO8859-1 LC_CTYPE=de_DE.ISO8859-1
LC_COLLATE=$LC_CTYPE LC_COLLATE=$LC_CTYPE

View File

@ -3,9 +3,6 @@
PATH=..:$PATH PATH=..:$PATH
echo "Testing PostgreSQL compilation..." echo "Testing PostgreSQL compilation..."
if ! test-pgsql-locale; then
exit 1
fi
LC_CTYPE=gr_GR.ISO8859-7 LC_CTYPE=gr_GR.ISO8859-7
LC_COLLATE=$LC_CTYPE LC_COLLATE=$LC_CTYPE

View File

@ -3,9 +3,6 @@
PATH=..:$PATH PATH=..:$PATH
echo "Testing PostgreSQL compilation..." echo "Testing PostgreSQL compilation..."
if ! test-pgsql-locale; then
exit 1
fi
LC_CTYPE=ru_RU.KOI8-R LC_CTYPE=ru_RU.KOI8-R
LC_COLLATE=$LC_CTYPE LC_COLLATE=$LC_CTYPE

View File

@ -3,9 +3,6 @@
PATH=..:$PATH PATH=..:$PATH
echo "Testing PostgreSQL compilation..." echo "Testing PostgreSQL compilation..."
if ! test-pgsql-locale; then
exit 1
fi
LC_CTYPE=ru_RU.KOI8-R LC_CTYPE=ru_RU.KOI8-R
LC_COLLATE=$LC_CTYPE LC_COLLATE=$LC_CTYPE

View File

@ -1,14 +0,0 @@
#include "postgres.h"
int
main()
{
#ifdef USE_LOCALE
printf("PostgreSQL compiled with locale support\n");
return 0;
#else
printf("PostgreSQL compiled without locale support\n");
return 1;
#endif
}

View File

@ -1,9 +1,8 @@
README for MB(multi-byte) regression test README for multibyte regression test
1998/7/22 1998/7/22
Tatsuo Ishii Tatsuo Ishii
This directory contains a set of tests for MB(multi-byte) supporting This directory contains a set of tests for multibyte supporting
extentions for PostgreSQL. To run the test, simply type: extentions for PostgreSQL. To run the test, simply type:
% mbregress.sh % mbregress.sh

View File

@ -7,7 +7,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/test/regress/GNUmakefile,v 1.38 2002/07/02 05:43:34 momjian Exp $ # $Header: /cvsroot/pgsql/src/test/regress/GNUmakefile,v 1.39 2002/09/03 21:45:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -22,6 +22,9 @@ override CFLAGS += $(CFLAGS_SL)
override DLLLIBS := $(BE_DLLLIBS) $(DLLLIBS) override DLLLIBS := $(BE_DLLLIBS) $(DLLLIBS)
# default encoding
MULTIBYTE = SQL_ASCII
## ##
## Prepare for tests ## Prepare for tests

View File

@ -1,4 +1,4 @@
# $Header: /cvsroot/pgsql/src/win32.mak,v 1.7 2002/08/22 00:15:08 scrappy Exp $ # $Header: /cvsroot/pgsql/src/win32.mak,v 1.8 2002/09/03 21:45:41 petere Exp $
# Makefile for Microsoft Visual C++ 5.0 (or compat) # Makefile for Microsoft Visual C++ 5.0 (or compat)
# Top-file makefile for Win32 parts of postgresql. # Top-file makefile for Win32 parts of postgresql.
@ -10,10 +10,6 @@ NULL=
NULL=nul NULL=nul
!ENDIF !ENDIF
!IFDEF MULTIBYTE
MAKEMACRO = "MULTIBYTE=$(MULTIBYTE)"
!ENDIF
ALL: ALL:
cd include cd include
if not exist pg_config.h copy pg_config.h.win32 pg_config.h if not exist pg_config.h copy pg_config.h.win32 pg_config.h