mirror of
https://github.com/postgres/postgres.git
synced 2025-07-12 21:01:52 +03:00
Remove --enable-recode feature, since it's been broken by IPv6 changes,
and seems to have too few users to justify maintaining.
This commit is contained in:
7
INSTALL
7
INSTALL
@ -342,13 +342,6 @@ are encouraged to read in any case.
|
|||||||
installed in non-standard locations.
|
installed in non-standard locations.
|
||||||
Example: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
|
Example: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
|
||||||
|
|
||||||
--enable-recode
|
|
||||||
|
|
||||||
Enables single-byte character set recode support. See the
|
|
||||||
Administrator's Guide about this feature. Note that a more general
|
|
||||||
form of character set conversion is supported in the default
|
|
||||||
configuration; this feature is obsolete.
|
|
||||||
|
|
||||||
--enable-nls[=LANGUAGES]
|
--enable-nls[=LANGUAGES]
|
||||||
|
|
||||||
Enables Native Language Support (NLS), that is, the ability to
|
Enables Native Language Support (NLS), that is, the ability to
|
||||||
|
38
configure
vendored
38
configure
vendored
@ -838,7 +838,6 @@ Optional Features:
|
|||||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||||
--enable-integer-datetimes enable 64-bit integer date/time support
|
--enable-integer-datetimes enable 64-bit integer date/time support
|
||||||
--enable-recode enable single-byte recode support
|
|
||||||
--enable-nls[=LANGUAGES] enable Native Language Support
|
--enable-nls[=LANGUAGES] enable Native Language Support
|
||||||
--disable-shared do not build shared libraries
|
--disable-shared do not build shared libraries
|
||||||
--disable-rpath do not embed shared library search path in executables
|
--disable-rpath do not embed shared library search path in executables
|
||||||
@ -1597,43 +1596,6 @@ echo "$as_me:$LINENO: result: $enable_integer_datetimes" >&5
|
|||||||
echo "${ECHO_T}$enable_integer_datetimes" >&6
|
echo "${ECHO_T}$enable_integer_datetimes" >&6
|
||||||
|
|
||||||
|
|
||||||
# Character set recode (--enable-recode)
|
|
||||||
#
|
|
||||||
echo "$as_me:$LINENO: checking whether to build with recode support" >&5
|
|
||||||
echo $ECHO_N "checking whether to build with recode support... $ECHO_C" >&6
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --enable-recode or --disable-recode was given.
|
|
||||||
if test "${enable_recode+set}" = set; then
|
|
||||||
enableval="$enable_recode"
|
|
||||||
|
|
||||||
case $enableval in
|
|
||||||
yes)
|
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
|
||||||
#define CYR_RECODE 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
;;
|
|
||||||
no)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
{ { echo "$as_me:$LINENO: error: no argument expected for --enable-recode option" >&5
|
|
||||||
echo "$as_me: error: no argument expected for --enable-recode option" >&2;}
|
|
||||||
{ (exit 1); exit 1; }; }
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
else
|
|
||||||
enable_recode=no
|
|
||||||
|
|
||||||
fi;
|
|
||||||
|
|
||||||
echo "$as_me:$LINENO: result: $enable_recode" >&5
|
|
||||||
echo "${ECHO_T}$enable_recode" >&6
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# NLS
|
# NLS
|
||||||
#
|
#
|
||||||
|
11
configure.in
11
configure.in
@ -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.273 2003/08/03 20:23:14 tgl Exp $
|
dnl $Header: /cvsroot/pgsql/configure.in,v 1.274 2003/08/04 04:03:03 tgl Exp $
|
||||||
dnl
|
dnl
|
||||||
dnl Developers, please strive to achieve this order:
|
dnl Developers, please strive to achieve this order:
|
||||||
dnl
|
dnl
|
||||||
@ -153,15 +153,6 @@ PGAC_ARG_BOOL(enable, integer-datetimes, no, [ --enable-integer-datetimes enab
|
|||||||
AC_MSG_RESULT([$enable_integer_datetimes])
|
AC_MSG_RESULT([$enable_integer_datetimes])
|
||||||
|
|
||||||
|
|
||||||
# Character set recode (--enable-recode)
|
|
||||||
#
|
|
||||||
AC_MSG_CHECKING([whether to build with recode support])
|
|
||||||
PGAC_ARG_BOOL(enable, recode, no, [ --enable-recode enable single-byte recode support],
|
|
||||||
[AC_DEFINE([CYR_RECODE], 1,
|
|
||||||
[Define to 1 if you want single-byte recode support. (--enable-recode)])])
|
|
||||||
AC_MSG_RESULT([$enable_recode])
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# NLS
|
# NLS
|
||||||
#
|
#
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.36 2003/05/15 15:50:18 petere Exp $ -->
|
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.37 2003/08/04 04:03:03 tgl Exp $ -->
|
||||||
|
|
||||||
<chapter id="charset">
|
<chapter id="charset">
|
||||||
<title>Localization</>
|
<title>Localization</>
|
||||||
@ -7,7 +7,7 @@
|
|||||||
This chapter describes the available localization features from the
|
This chapter describes the available localization features from the
|
||||||
point of view of the administrator.
|
point of view of the administrator.
|
||||||
<productname>PostgreSQL</productname> supports localization with
|
<productname>PostgreSQL</productname> supports localization with
|
||||||
three approaches:
|
two approaches:
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -23,17 +23,10 @@
|
|||||||
Providing a number of different character sets defined in the
|
Providing a number of different character sets defined in the
|
||||||
<productname>PostgreSQL</productname> server, including
|
<productname>PostgreSQL</productname> server, including
|
||||||
multiple-byte character sets, to support storing text in all
|
multiple-byte character sets, to support storing text in all
|
||||||
kinds of languages, and providing character set recoding between
|
kinds of languages, and providing character set translation between
|
||||||
client and server.
|
client and server.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Single-byte character recoding provides a more light-weight
|
|
||||||
solution for users of multiple, yet single-byte character sets.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -884,75 +877,6 @@ RESET CLIENT_ENCODING;
|
|||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
<sect1 id="recode">
|
|
||||||
<title>Single-Byte Character Set Recoding</>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
You can set up this feature with the <option>--enable-recode</> option
|
|
||||||
to <filename>configure</>. This option was formerly described as
|
|
||||||
<quote>Cyrillic recode support</> which doesn't express all its
|
|
||||||
power. It can be used for <emphasis>any</> single-byte character
|
|
||||||
set recoding.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This method uses a file <filename>charset.conf</> file located in
|
|
||||||
the data directory for configuration. It's a typical
|
|
||||||
configuration text file where spaces and newlines separate fields
|
|
||||||
and records and <literal>#</> starts a comment. Three key words with the
|
|
||||||
following syntax are recognized here:
|
|
||||||
<synopsis>
|
|
||||||
BaseCharset <replaceable>server_charset</>
|
|
||||||
RecodeTable <replaceable>from_charset</> <replaceable>to_charset</> <replaceable>file_name</>
|
|
||||||
HostCharset <replaceable>host_spec</> <replaceable>host_charset</>
|
|
||||||
</synopsis>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<token>BaseCharset</> defines the character set of the database server.
|
|
||||||
All character set names are only used for mapping inside of
|
|
||||||
<filename>charset.conf</> so you can freely use typing-friendly
|
|
||||||
names.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<token>RecodeTable</> records specify conversion tables between
|
|
||||||
server and client. The file name is relative to the
|
|
||||||
data directory. The table file format is very
|
|
||||||
simple. There are no key words, and character mappings are represented by a
|
|
||||||
pair of decimal or hexadecimal (prefixed by <literal>0x</>) values on single
|
|
||||||
lines:
|
|
||||||
<synopsis>
|
|
||||||
<replaceable>char_value</> <replaceable>converted_char_value</>
|
|
||||||
</synopsis>
|
|
||||||
In the <filename>src/data/</> directory in the source distribution you can find an
|
|
||||||
example <filename>charset.conf</> and a few recoding tables.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<token>HostCharset</> records define the client character set by IP
|
|
||||||
address. You can use a single IP address, an IP mask range starting
|
|
||||||
from the given address or an IP interval (e.g., <literal>127.0.0.1</>,
|
|
||||||
<literal>192.168.1.100/24</>, <literal>192.168.1.20-192.168.1.40</>).
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The <filename>charset.conf</> file is always processed to the
|
|
||||||
end, so you can easily specify exceptions from preceding rules.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
As this solution is based on the client's IP address there are
|
|
||||||
obviously some restrictions as well. You cannot use different
|
|
||||||
character sets on the same host at the same time. It is also
|
|
||||||
inconvenient when you boot your client hosts into multiple
|
|
||||||
operating systems. Nevertheless, when these restrictions are not
|
|
||||||
limiting and you do not need multibyte characters then it is a
|
|
||||||
simple and effective solution.
|
|
||||||
</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
<!-- Keep this comment at the end of the file
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.137 2003/08/01 03:10:04 momjian Exp $ -->
|
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.138 2003/08/04 04:03:03 tgl Exp $ -->
|
||||||
|
|
||||||
<chapter id="installation">
|
<chapter id="installation">
|
||||||
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
||||||
@ -699,19 +699,6 @@ JAVACMD=$JAVA_HOME/bin/java
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>--enable-recode</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Enables single-byte character set recode support. See
|
|
||||||
<![%standalone-include[the documentation]]> <![%standalone-ignore[<xref
|
|
||||||
linkend="recode">]]> about this feature. Note that a more
|
|
||||||
general form of character set conversion is supported in the
|
|
||||||
default configuration; this feature is obsolete.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>--enable-nls<optional>=<replaceable>LANGUAGES</replaceable></optional></option></term>
|
<term><option>--enable-nls<optional>=<replaceable>LANGUAGES</replaceable></optional></option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.355 2003/08/04 02:40:04 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.356 2003/08/04 04:03:06 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* this is the "main" module of the postgres backend and
|
* this is the "main" module of the postgres backend and
|
||||||
@ -2613,14 +2613,6 @@ PostgresMain(int argc, char *argv[], const char *username)
|
|||||||
on_shmem_exit(DumpFreeSpaceMap, 0);
|
on_shmem_exit(DumpFreeSpaceMap, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Set up additional info.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
SetCharSet();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* General initialization.
|
* General initialization.
|
||||||
*
|
*
|
||||||
@ -2651,7 +2643,7 @@ PostgresMain(int argc, char *argv[], const char *username)
|
|||||||
if (!IsUnderPostmaster)
|
if (!IsUnderPostmaster)
|
||||||
{
|
{
|
||||||
puts("\nPOSTGRES backend interactive interface ");
|
puts("\nPOSTGRES backend interactive interface ");
|
||||||
puts("$Revision: 1.355 $ $Date: 2003/08/04 02:40:04 $\n");
|
puts("$Revision: 1.356 $ $Date: 2003/08/04 04:03:06 $\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.101 2003/08/04 02:40:06 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.102 2003/08/04 04:03:10 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -130,10 +130,6 @@ bpcharin(PG_FUNCTION_ARGS)
|
|||||||
for (; i < maxlen; i++)
|
for (; i < maxlen; i++)
|
||||||
*r++ = ' ';
|
*r++ = ' ';
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
convertstr(VARDATA(result), len, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PG_RETURN_BPCHAR_P(result);
|
PG_RETURN_BPCHAR_P(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,10 +150,6 @@ bpcharout(PG_FUNCTION_ARGS)
|
|||||||
memcpy(result, VARDATA(s), len);
|
memcpy(result, VARDATA(s), len);
|
||||||
result[len] = '\0';
|
result[len] = '\0';
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
convertstr(result, len, 1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PG_RETURN_CSTRING(result);
|
PG_RETURN_CSTRING(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,10 +388,6 @@ varcharin(PG_FUNCTION_ARGS)
|
|||||||
VARATT_SIZEP(result) = len + VARHDRSZ;
|
VARATT_SIZEP(result) = len + VARHDRSZ;
|
||||||
memcpy(VARDATA(result), s, len);
|
memcpy(VARDATA(result), s, len);
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
convertstr(VARDATA(result), len, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PG_RETURN_VARCHAR_P(result);
|
PG_RETURN_VARCHAR_P(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -420,10 +408,6 @@ varcharout(PG_FUNCTION_ARGS)
|
|||||||
memcpy(result, VARDATA(s), len);
|
memcpy(result, VARDATA(s), len);
|
||||||
result[len] = '\0';
|
result[len] = '\0';
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
convertstr(result, len, 1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PG_RETURN_CSTRING(result);
|
PG_RETURN_CSTRING(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.104 2003/08/04 02:40:06 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.105 2003/08/04 04:03:10 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -268,10 +268,6 @@ textin(PG_FUNCTION_ARGS)
|
|||||||
|
|
||||||
memcpy(VARDATA(result), inputText, len);
|
memcpy(VARDATA(result), inputText, len);
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
convertstr(VARDATA(result), len, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PG_RETURN_TEXT_P(result);
|
PG_RETURN_TEXT_P(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -290,10 +286,6 @@ textout(PG_FUNCTION_ARGS)
|
|||||||
memcpy(result, VARDATA(t), len);
|
memcpy(result, VARDATA(t), len);
|
||||||
result[len] = '\0';
|
result[len] = '\0';
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
convertstr(result, len, 1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PG_RETURN_CSTRING(result);
|
PG_RETURN_CSTRING(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.112 2003/08/04 02:40:06 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.113 2003/08/04 04:03:10 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -48,13 +48,6 @@ ProcessingMode Mode = InitProcessing;
|
|||||||
static char directoryLockFile[MAXPGPATH];
|
static char directoryLockFile[MAXPGPATH];
|
||||||
static char socketLockFile[MAXPGPATH];
|
static char socketLockFile[MAXPGPATH];
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
static unsigned char RecodeForwTable[128];
|
|
||||||
static unsigned char RecodeBackTable[128];
|
|
||||||
|
|
||||||
static void GetCharSetByHost(char *TableName, int host, const char *DataDir);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------
|
/* ----------------------------------------------------------------
|
||||||
* ignoring system indexes support stuff
|
* ignoring system indexes support stuff
|
||||||
@ -181,295 +174,6 @@ SetDataDir(const char *dir)
|
|||||||
DataDir = new;
|
DataDir = new;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------
|
|
||||||
* CYR_RECODE support
|
|
||||||
* ----------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
|
|
||||||
void
|
|
||||||
SetCharSet(void)
|
|
||||||
{
|
|
||||||
FILE *file;
|
|
||||||
char *filename;
|
|
||||||
char *map_file;
|
|
||||||
char buf[MAX_TOKEN];
|
|
||||||
int i;
|
|
||||||
unsigned char FromChar,
|
|
||||||
ToChar;
|
|
||||||
char ChTable[MAX_TOKEN];
|
|
||||||
|
|
||||||
for (i = 0; i < 128; i++)
|
|
||||||
{
|
|
||||||
RecodeForwTable[i] = i + 128;
|
|
||||||
RecodeBackTable[i] = i + 128;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsUnderPostmaster)
|
|
||||||
{
|
|
||||||
GetCharSetByHost(ChTable, MyProcPort->raddr.in.sin_addr.s_addr, DataDir);
|
|
||||||
filename = ChTable;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
filename = getenv("PG_RECODETABLE");
|
|
||||||
|
|
||||||
if (filename && *filename != '\0')
|
|
||||||
{
|
|
||||||
map_file = palloc(strlen(DataDir) + strlen(filename) + 2);
|
|
||||||
sprintf(map_file, "%s/%s", DataDir, filename);
|
|
||||||
file = AllocateFile(map_file, "r");
|
|
||||||
pfree(map_file);
|
|
||||||
if (file == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
while (!feof(file))
|
|
||||||
{
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
FromChar = strtoul(buf, 0, 0);
|
|
||||||
/* Read the ToChar */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
ToChar = strtoul(buf, 0, 0);
|
|
||||||
RecodeForwTable[FromChar - 128] = ToChar;
|
|
||||||
RecodeBackTable[ToChar - 128] = FromChar;
|
|
||||||
|
|
||||||
/* read to EOL */
|
|
||||||
while (!feof(file) && buf[0])
|
|
||||||
{
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
elog(LOG, "unexpected token %s in file %s",
|
|
||||||
buf, filename);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
FreeFile(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
char *
|
|
||||||
convertstr(unsigned char *buff, int len, int dest)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
char *ch = buff;
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++, buff++)
|
|
||||||
{
|
|
||||||
if (*buff > 127)
|
|
||||||
{
|
|
||||||
if (dest)
|
|
||||||
*buff = RecodeForwTable[*buff - 128];
|
|
||||||
else
|
|
||||||
*buff = RecodeBackTable[*buff - 128];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define CHARSET_FILE "charset.conf"
|
|
||||||
#define MAX_CHARSETS 10
|
|
||||||
#define KEY_HOST 1
|
|
||||||
#define KEY_BASE 2
|
|
||||||
#define KEY_TABLE 3
|
|
||||||
|
|
||||||
struct CharsetItem
|
|
||||||
{
|
|
||||||
char Orig[MAX_TOKEN];
|
|
||||||
char Dest[MAX_TOKEN];
|
|
||||||
char Table[MAX_TOKEN];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static bool
|
|
||||||
CharSetInRange(char *buf, int host)
|
|
||||||
{
|
|
||||||
int valid,
|
|
||||||
i,
|
|
||||||
FromAddr,
|
|
||||||
ToAddr,
|
|
||||||
tmp;
|
|
||||||
struct in_addr file_ip_addr;
|
|
||||||
char *p;
|
|
||||||
unsigned int one = 0x80000000,
|
|
||||||
NetMask = 0;
|
|
||||||
unsigned char mask;
|
|
||||||
|
|
||||||
p = strchr(buf, '/');
|
|
||||||
if (p)
|
|
||||||
{
|
|
||||||
*p++ = '\0';
|
|
||||||
valid = inet_aton(buf, &file_ip_addr);
|
|
||||||
if (valid)
|
|
||||||
{
|
|
||||||
mask = strtoul(p, 0, 0);
|
|
||||||
FromAddr = ntohl(file_ip_addr.s_addr);
|
|
||||||
ToAddr = ntohl(file_ip_addr.s_addr);
|
|
||||||
for (i = 0; i < mask; i++)
|
|
||||||
{
|
|
||||||
NetMask |= one;
|
|
||||||
one >>= 1;
|
|
||||||
}
|
|
||||||
FromAddr &= NetMask;
|
|
||||||
ToAddr = ToAddr | ~NetMask;
|
|
||||||
tmp = ntohl(host);
|
|
||||||
return ((unsigned) tmp >= (unsigned) FromAddr &&
|
|
||||||
(unsigned) tmp <= (unsigned) ToAddr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
p = strchr(buf, '-');
|
|
||||||
if (p)
|
|
||||||
{
|
|
||||||
*p++ = '\0';
|
|
||||||
valid = inet_aton(buf, &file_ip_addr);
|
|
||||||
if (valid)
|
|
||||||
{
|
|
||||||
FromAddr = ntohl(file_ip_addr.s_addr);
|
|
||||||
valid = inet_aton(p, &file_ip_addr);
|
|
||||||
if (valid)
|
|
||||||
{
|
|
||||||
ToAddr = ntohl(file_ip_addr.s_addr);
|
|
||||||
tmp = ntohl(host);
|
|
||||||
return ((unsigned) tmp >= (unsigned) FromAddr &&
|
|
||||||
(unsigned) tmp <= (unsigned) ToAddr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
valid = inet_aton(buf, &file_ip_addr);
|
|
||||||
if (valid)
|
|
||||||
{
|
|
||||||
FromAddr = file_ip_addr.s_addr;
|
|
||||||
return (unsigned) FromAddr == (unsigned) host;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
GetCharSetByHost(char *TableName, int host, const char *DataDir)
|
|
||||||
{
|
|
||||||
FILE *file;
|
|
||||||
char buf[MAX_TOKEN],
|
|
||||||
BaseCharset[MAX_TOKEN],
|
|
||||||
OrigCharset[MAX_TOKEN],
|
|
||||||
DestCharset[MAX_TOKEN],
|
|
||||||
HostCharset[MAX_TOKEN],
|
|
||||||
*map_file;
|
|
||||||
int key,
|
|
||||||
ChIndex = 0,
|
|
||||||
i,
|
|
||||||
bufsize;
|
|
||||||
struct CharsetItem *ChArray[MAX_CHARSETS];
|
|
||||||
|
|
||||||
*TableName = '\0';
|
|
||||||
bufsize = (strlen(DataDir) + strlen(CHARSET_FILE) + 2) * sizeof(char);
|
|
||||||
map_file = (char *) palloc(bufsize);
|
|
||||||
snprintf(map_file, bufsize, "%s/%s", DataDir, CHARSET_FILE);
|
|
||||||
file = AllocateFile(map_file, "r");
|
|
||||||
pfree(map_file);
|
|
||||||
if (file == NULL)
|
|
||||||
{
|
|
||||||
/* XXX should we log a complaint? */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (!feof(file))
|
|
||||||
{
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
key = 0;
|
|
||||||
if (strcasecmp(buf, "HostCharset") == 0)
|
|
||||||
key = KEY_HOST;
|
|
||||||
else if (strcasecmp(buf, "BaseCharset") == 0)
|
|
||||||
key = KEY_BASE;
|
|
||||||
else if (strcasecmp(buf, "RecodeTable") == 0)
|
|
||||||
key = KEY_TABLE;
|
|
||||||
else
|
|
||||||
elog(LOG, "unrecognized tag %s in file %s",
|
|
||||||
buf, CHARSET_FILE);
|
|
||||||
|
|
||||||
switch (key)
|
|
||||||
{
|
|
||||||
case KEY_HOST:
|
|
||||||
/* Read the host */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
if (CharSetInRange(buf, host))
|
|
||||||
{
|
|
||||||
/* Read the charset */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
strcpy(HostCharset, buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_BASE:
|
|
||||||
/* Read the base charset */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
strcpy(BaseCharset, buf);
|
|
||||||
break;
|
|
||||||
case KEY_TABLE:
|
|
||||||
/* Read the original charset */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
strcpy(OrigCharset, buf);
|
|
||||||
/* Read the destination charset */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
strcpy(DestCharset, buf);
|
|
||||||
/* Read the table filename */
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
if (buf[0] != '\0')
|
|
||||||
{
|
|
||||||
ChArray[ChIndex] =
|
|
||||||
(struct CharsetItem *) palloc(sizeof(struct CharsetItem));
|
|
||||||
strcpy(ChArray[ChIndex]->Orig, OrigCharset);
|
|
||||||
strcpy(ChArray[ChIndex]->Dest, DestCharset);
|
|
||||||
strcpy(ChArray[ChIndex]->Table, buf);
|
|
||||||
ChIndex++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* read to EOL */
|
|
||||||
while (!feof(file) && buf[0])
|
|
||||||
{
|
|
||||||
next_token(file, buf, sizeof(buf));
|
|
||||||
elog(LOG, "unrecognized tag %s in file %s",
|
|
||||||
buf, CHARSET_FILE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
FreeFile(file);
|
|
||||||
|
|
||||||
for (i = 0; i < ChIndex; i++)
|
|
||||||
{
|
|
||||||
if (strcasecmp(BaseCharset, ChArray[i]->Orig) == 0 &&
|
|
||||||
strcasecmp(HostCharset, ChArray[i]->Dest) == 0)
|
|
||||||
strncpy(TableName, ChArray[i]->Table, 79);
|
|
||||||
pfree(ChArray[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif /* CYR_RECODE */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------
|
/* ----------------------------------------------------------------
|
||||||
* User ID things
|
* User ID things
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
#
|
|
||||||
# Example PostgreSQL charsets control file.
|
|
||||||
#
|
|
||||||
# Should be placed in $PG_DATA directory.
|
|
||||||
#
|
|
||||||
# On the fly recoding charsets, based on client's IP address.
|
|
||||||
# For example: koi8-u (koi) <-> cp1251 (win) <-> cp866 (alt)
|
|
||||||
#
|
|
||||||
|
|
||||||
# Base charset for backend
|
|
||||||
# Most Unices use koi8-r(u) as base charset. But Solaris
|
|
||||||
# use iso8859-5 and some networkless workstations use cp866.
|
|
||||||
BaseCharset koi
|
|
||||||
|
|
||||||
# There are recode table definitions from base charset to
|
|
||||||
# other. Table names are relative to $PG_DATA directory.
|
|
||||||
# Tables are taken from Russian Apache <http://apache.lexa.ru>.
|
|
||||||
RecodeTable koi alt koi-alt.tab
|
|
||||||
RecodeTable koi win koi-win.tab
|
|
||||||
RecodeTable koi iso koi-iso.tab
|
|
||||||
RecodeTable koi koi koi-koi.tab
|
|
||||||
RecodeTable alt win othertabs/alt-win.tab
|
|
||||||
RecodeTable alt koi othertabs/alt-koi.tab
|
|
||||||
RecodeTable iso koi othertabs/iso-koi.tab
|
|
||||||
|
|
||||||
# Local loopback
|
|
||||||
HostCharset 127.0.0.1 koi
|
|
||||||
|
|
||||||
# Yet another Unix (maybe ;)
|
|
||||||
HostCharset 192.168.0.1 koi
|
|
||||||
|
|
||||||
# There are Windows on 192.168.1.64 through 192.168.1.95
|
|
||||||
HostCharset 192.168.1.64/27 win
|
|
||||||
|
|
||||||
# There are cp866 (alt) systems on 192.168.2.3 through
|
|
||||||
# 192.168.2.7 (exept 192.168.2.4 - see below)
|
|
||||||
HostCharset 192.168.2.3-192.168.2.7 alt
|
|
||||||
|
|
||||||
# This is exeption from previous rule!
|
|
||||||
HostCharset 192.168.2.4 win
|
|
@ -1,12 +0,0 @@
|
|||||||
#
|
|
||||||
# Czech ISO-8859-2 -> WIN-1250 translation table
|
|
||||||
#
|
|
||||||
165 188
|
|
||||||
169 138
|
|
||||||
171 141
|
|
||||||
174 142
|
|
||||||
181 190
|
|
||||||
185 154
|
|
||||||
187 157
|
|
||||||
190 158
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
|||||||
# Line with '#' at the begin is comment
|
|
||||||
# table file may contain number of line as you wana
|
|
||||||
# first - code of symbol, second translate code of symbol
|
|
||||||
# codes may be in two forms: decimal and hex
|
|
||||||
# examples:
|
|
||||||
# 192 225
|
|
||||||
# 0x81 226
|
|
||||||
# 226 0x81
|
|
||||||
# 0x90 0xfe
|
|
||||||
# patch for Russia by Dm.Kryukov (dvk@stack.serpukhov.su)
|
|
||||||
#
|
|
||||||
163 241
|
|
||||||
164 243
|
|
||||||
166 249
|
|
||||||
167 245
|
|
||||||
173 173
|
|
||||||
179 240
|
|
||||||
180 242
|
|
||||||
182 248
|
|
||||||
183 244
|
|
||||||
189 189
|
|
||||||
192 238
|
|
||||||
193 160
|
|
||||||
194 161
|
|
||||||
195 230
|
|
||||||
196 164
|
|
||||||
197 165
|
|
||||||
198 228
|
|
||||||
199 163
|
|
||||||
200 229
|
|
||||||
201 168
|
|
||||||
202 169
|
|
||||||
203 170
|
|
||||||
204 171
|
|
||||||
205 172
|
|
||||||
206 173
|
|
||||||
207 174
|
|
||||||
208 175
|
|
||||||
209 239
|
|
||||||
210 224
|
|
||||||
211 225
|
|
||||||
212 226
|
|
||||||
213 227
|
|
||||||
214 166
|
|
||||||
215 162
|
|
||||||
216 236
|
|
||||||
217 235
|
|
||||||
218 167
|
|
||||||
219 232
|
|
||||||
220 237
|
|
||||||
221 233
|
|
||||||
222 231
|
|
||||||
223 234
|
|
||||||
224 158
|
|
||||||
225 128
|
|
||||||
226 129
|
|
||||||
227 150
|
|
||||||
228 132
|
|
||||||
229 133
|
|
||||||
230 148
|
|
||||||
231 131
|
|
||||||
232 149
|
|
||||||
233 136
|
|
||||||
234 137
|
|
||||||
235 138
|
|
||||||
236 139
|
|
||||||
237 140
|
|
||||||
238 141
|
|
||||||
239 142
|
|
||||||
240 143
|
|
||||||
241 159
|
|
||||||
242 144
|
|
||||||
243 145
|
|
||||||
244 146
|
|
||||||
245 147
|
|
||||||
246 134
|
|
||||||
247 130
|
|
||||||
248 156
|
|
||||||
249 155
|
|
||||||
250 135
|
|
||||||
251 152
|
|
||||||
252 157
|
|
||||||
253 153
|
|
||||||
254 151
|
|
||||||
255 154
|
|
@ -1,75 +0,0 @@
|
|||||||
# Line with '#' at the begin is comment
|
|
||||||
# table file may contain number of line as you wana
|
|
||||||
# first - code of symbol, second translate code of symbol
|
|
||||||
# codes may be in two forms: decimal and hex
|
|
||||||
# examples:
|
|
||||||
# 192 225
|
|
||||||
# 0x81 226
|
|
||||||
# 226 0x81
|
|
||||||
# 0x90 0xfe
|
|
||||||
# patch for Russia by Dm.Kryukov (dvk@stack.serpukhov.su)
|
|
||||||
#
|
|
||||||
192 0xee
|
|
||||||
193 0xd0
|
|
||||||
194 0xd1
|
|
||||||
195 0xe6
|
|
||||||
196 0xd4
|
|
||||||
197 0xd5
|
|
||||||
198 0xe4
|
|
||||||
199 0xd3
|
|
||||||
200 0xe5
|
|
||||||
201 0xd8
|
|
||||||
202 0xd9
|
|
||||||
203 0xda
|
|
||||||
204 0xdb
|
|
||||||
205 0xdc
|
|
||||||
206 0xdd
|
|
||||||
207 0xde
|
|
||||||
208 0xdf
|
|
||||||
209 0xef
|
|
||||||
210 0xe0
|
|
||||||
211 0xe1
|
|
||||||
212 0xe2
|
|
||||||
213 0xe3
|
|
||||||
214 0xd6
|
|
||||||
215 0xd2
|
|
||||||
216 0xec
|
|
||||||
217 0xeb
|
|
||||||
218 0xd7
|
|
||||||
219 0xe8
|
|
||||||
220 0xed
|
|
||||||
221 0xe9
|
|
||||||
222 0xe7
|
|
||||||
223 0xea
|
|
||||||
224 0xce
|
|
||||||
225 0xb0
|
|
||||||
226 0xb1
|
|
||||||
227 0xc6
|
|
||||||
228 0xb4
|
|
||||||
229 0xb5
|
|
||||||
230 0xc4
|
|
||||||
231 0xb3
|
|
||||||
232 0xc5
|
|
||||||
233 0xb8
|
|
||||||
234 0xb9
|
|
||||||
235 0xba
|
|
||||||
236 0xbb
|
|
||||||
237 0xbc
|
|
||||||
238 0xbd
|
|
||||||
239 0xbe
|
|
||||||
240 0xbf
|
|
||||||
241 0xcf
|
|
||||||
242 0xc0
|
|
||||||
243 0xc1
|
|
||||||
244 0xc2
|
|
||||||
245 0xc3
|
|
||||||
246 0xb6
|
|
||||||
247 0xb2
|
|
||||||
248 0xcc
|
|
||||||
249 0xcb
|
|
||||||
250 0xb7
|
|
||||||
251 0xc8
|
|
||||||
252 0xcd
|
|
||||||
253 0xc9
|
|
||||||
254 0xc7
|
|
||||||
255 0xca
|
|
@ -1,2 +0,0 @@
|
|||||||
# Hmm ...
|
|
||||||
#
|
|
@ -1,130 +0,0 @@
|
|||||||
# Hmm ...
|
|
||||||
#
|
|
||||||
128 0xc0
|
|
||||||
129 0xc1
|
|
||||||
130 0xc2
|
|
||||||
131 0xc3
|
|
||||||
132 0xc4
|
|
||||||
133 0xc5
|
|
||||||
134 0xc6
|
|
||||||
135 0xc7
|
|
||||||
136 0xc8
|
|
||||||
137 0xc9
|
|
||||||
138 0xca
|
|
||||||
139 0xcb
|
|
||||||
140 0xcc
|
|
||||||
141 0xcd
|
|
||||||
142 0xce
|
|
||||||
143 0xcf
|
|
||||||
144 0xd0
|
|
||||||
145 0xd1
|
|
||||||
146 0xd2
|
|
||||||
147 0xd3
|
|
||||||
148 0xd4
|
|
||||||
149 0xd5
|
|
||||||
150 0xd6
|
|
||||||
151 0xd7
|
|
||||||
152 0xd8
|
|
||||||
153 0xd9
|
|
||||||
154 0xda
|
|
||||||
155 0xdb
|
|
||||||
156 0xdc
|
|
||||||
157 0xdd
|
|
||||||
158 0xde
|
|
||||||
159 0xdf
|
|
||||||
160 0xa0
|
|
||||||
161 0xa1
|
|
||||||
162 0xa2
|
|
||||||
163 0xa3
|
|
||||||
164 0xa4
|
|
||||||
165 0xa5
|
|
||||||
166 0xa6
|
|
||||||
167 0xa7
|
|
||||||
168 0xa8
|
|
||||||
169 0xa9
|
|
||||||
170 0xaa
|
|
||||||
171 0xab
|
|
||||||
172 0xac
|
|
||||||
173 0xad
|
|
||||||
174 0xae
|
|
||||||
175 0xaf
|
|
||||||
176 0xb0
|
|
||||||
177 0xb1
|
|
||||||
178 0xb2
|
|
||||||
179 0xb3
|
|
||||||
180 0xb4
|
|
||||||
181 0xb5
|
|
||||||
182 0xb6
|
|
||||||
183 0xb7
|
|
||||||
184 0xb8
|
|
||||||
185 0xb9
|
|
||||||
186 0xba
|
|
||||||
187 0xbb
|
|
||||||
188 0xbc
|
|
||||||
189 0xbd
|
|
||||||
190 0xbe
|
|
||||||
191 0xbf
|
|
||||||
192 0xfe
|
|
||||||
193 0xe0
|
|
||||||
194 0xe1
|
|
||||||
195 0xf6
|
|
||||||
196 0xe4
|
|
||||||
197 0xe5
|
|
||||||
198 0xf4
|
|
||||||
199 0xe3
|
|
||||||
200 0xf5
|
|
||||||
201 0xe8
|
|
||||||
202 0xe9
|
|
||||||
203 0xea
|
|
||||||
204 0xeb
|
|
||||||
205 0xec
|
|
||||||
206 0xed
|
|
||||||
207 0xee
|
|
||||||
208 0xef
|
|
||||||
209 0xdf
|
|
||||||
210 0xf0
|
|
||||||
211 0xf1
|
|
||||||
212 0xf2
|
|
||||||
213 0xf3
|
|
||||||
214 0xe6
|
|
||||||
215 0xe2
|
|
||||||
216 0xfc
|
|
||||||
217 0xfb
|
|
||||||
218 0xe7
|
|
||||||
219 0xf8
|
|
||||||
220 0xfd
|
|
||||||
221 0xf9
|
|
||||||
222 0xf7
|
|
||||||
223 0xfa
|
|
||||||
224 0x9e
|
|
||||||
225 0x80
|
|
||||||
226 0x81
|
|
||||||
227 0x96
|
|
||||||
228 0x84
|
|
||||||
229 0x85
|
|
||||||
230 0x94
|
|
||||||
231 0x83
|
|
||||||
232 0x95
|
|
||||||
233 0x88
|
|
||||||
234 0x89
|
|
||||||
235 0x8a
|
|
||||||
236 0x8b
|
|
||||||
237 0x8c
|
|
||||||
238 0x8d
|
|
||||||
239 0x8e
|
|
||||||
240 0x8f
|
|
||||||
241 0x9f
|
|
||||||
242 0x90
|
|
||||||
243 0x91
|
|
||||||
244 0x92
|
|
||||||
245 0x93
|
|
||||||
246 0x86
|
|
||||||
247 0x82
|
|
||||||
248 0x9c
|
|
||||||
249 0x9b
|
|
||||||
250 0x87
|
|
||||||
251 0x98
|
|
||||||
252 0x9d
|
|
||||||
253 0x99
|
|
||||||
254 0x97
|
|
||||||
255 0x9a
|
|
@ -1,85 +0,0 @@
|
|||||||
# Line with '#' at the begin is comment
|
|
||||||
# table file may contain number of line as you wana
|
|
||||||
# first - code of symbol, second translate code of symbol
|
|
||||||
# codes may be in two forms: decimal and hex
|
|
||||||
# examples:
|
|
||||||
# 192 225
|
|
||||||
# 0x81 226
|
|
||||||
# 226 0x81
|
|
||||||
# 0x90 0xfe
|
|
||||||
# patch for Russia by Dm.Kryukov (dvk@stack.serpukhov.su)
|
|
||||||
#
|
|
||||||
163 184
|
|
||||||
164 186
|
|
||||||
166 179
|
|
||||||
167 191
|
|
||||||
173 180
|
|
||||||
179 168
|
|
||||||
180 170
|
|
||||||
182 178
|
|
||||||
183 175
|
|
||||||
189 165
|
|
||||||
192 254
|
|
||||||
193 224
|
|
||||||
194 225
|
|
||||||
195 246
|
|
||||||
196 228
|
|
||||||
197 229
|
|
||||||
198 244
|
|
||||||
199 227
|
|
||||||
200 245
|
|
||||||
201 232
|
|
||||||
202 233
|
|
||||||
203 234
|
|
||||||
204 235
|
|
||||||
205 236
|
|
||||||
206 237
|
|
||||||
207 238
|
|
||||||
208 239
|
|
||||||
209 255
|
|
||||||
210 240
|
|
||||||
211 241
|
|
||||||
212 242
|
|
||||||
213 243
|
|
||||||
214 230
|
|
||||||
215 226
|
|
||||||
216 252
|
|
||||||
217 251
|
|
||||||
218 231
|
|
||||||
219 248
|
|
||||||
220 253
|
|
||||||
221 249
|
|
||||||
222 247
|
|
||||||
223 250
|
|
||||||
224 222
|
|
||||||
225 192
|
|
||||||
226 193
|
|
||||||
227 214
|
|
||||||
228 196
|
|
||||||
229 197
|
|
||||||
230 212
|
|
||||||
231 195
|
|
||||||
232 213
|
|
||||||
233 200
|
|
||||||
234 201
|
|
||||||
235 202
|
|
||||||
236 203
|
|
||||||
237 204
|
|
||||||
238 205
|
|
||||||
239 206
|
|
||||||
240 207
|
|
||||||
241 223
|
|
||||||
242 208
|
|
||||||
243 209
|
|
||||||
244 210
|
|
||||||
245 211
|
|
||||||
246 198
|
|
||||||
247 194
|
|
||||||
248 220
|
|
||||||
249 219
|
|
||||||
250 199
|
|
||||||
251 216
|
|
||||||
252 221
|
|
||||||
253 217
|
|
||||||
254 215
|
|
||||||
255 218
|
|
@ -12,7 +12,7 @@
|
|||||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2003, 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: miscadmin.h,v 1.131 2003/08/04 02:40:10 momjian Exp $
|
* $Id: miscadmin.h,v 1.132 2003/08/04 04:03:10 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* some of the information in this file should be moved to
|
* some of the information in this file should be moved to
|
||||||
@ -238,11 +238,6 @@ extern int FindExec(char *full_path, const char *argv0,
|
|||||||
const char *binary_name);
|
const char *binary_name);
|
||||||
extern int CheckPathAccess(char *path, char *name, int open_mode);
|
extern int CheckPathAccess(char *path, char *name, int open_mode);
|
||||||
|
|
||||||
#ifdef CYR_RECODE
|
|
||||||
extern void SetCharSet(void);
|
|
||||||
extern char *convertstr(unsigned char *buff, int len, int dest);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* in utils/misc/superuser.c */
|
/* in utils/misc/superuser.c */
|
||||||
extern bool superuser(void); /* current user is superuser */
|
extern bool superuser(void); /* current user is superuser */
|
||||||
extern bool superuser_arg(AclId userid); /* given user is superuser */
|
extern bool superuser_arg(AclId userid); /* given user is superuser */
|
||||||
|
@ -24,9 +24,6 @@
|
|||||||
/* The alignment requirement of a `short'. */
|
/* The alignment requirement of a `short'. */
|
||||||
#undef ALIGNOF_SHORT
|
#undef ALIGNOF_SHORT
|
||||||
|
|
||||||
/* Define to 1 if you want single-byte recode support. (--enable-recode) */
|
|
||||||
#undef CYR_RECODE
|
|
||||||
|
|
||||||
/* Define to the default TCP port number on which the server listens and to
|
/* Define to the default TCP port number on which the server listens and to
|
||||||
which clients will try to connect to. This can be overridden at run-time,
|
which clients will try to connect to. This can be overridden at run-time,
|
||||||
but it's convenient if your clients have the right default compiled in.
|
but it's convenient if your clients have the right default compiled in.
|
||||||
@ -604,7 +601,7 @@
|
|||||||
#undef USE_SYSV_SHARED_MEMORY
|
#undef USE_SYSV_SHARED_MEMORY
|
||||||
|
|
||||||
/* Define to 1 to build libpq and ecpg to be thread-safe.
|
/* Define to 1 to build libpq and ecpg to be thread-safe.
|
||||||
(--enable-thread-safeness) */
|
(--enable-thread-safety) */
|
||||||
#undef USE_THREADS
|
#undef USE_THREADS
|
||||||
|
|
||||||
/* Define to select unnamed POSIX semaphores. */
|
/* Define to select unnamed POSIX semaphores. */
|
||||||
|
Reference in New Issue
Block a user