Commit 4c3c8c04 authored by Tom Lane's avatar Tom Lane

Remove --enable-recode feature, since it's been broken by IPv6 changes,

and seems to have too few users to justify maintaining.
parent f3c3deb7
......@@ -342,13 +342,6 @@ are encouraged to read in any case.
installed in non-standard locations.
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]
Enables Native Language Support (NLS), that is, the ability to
......
......@@ -838,7 +838,6 @@ Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-integer-datetimes enable 64-bit integer date/time support
--enable-recode enable single-byte recode support
--enable-nls[=LANGUAGES] enable Native Language Support
--disable-shared do not build shared libraries
--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
# 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
#
......
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 Developers, please strive to achieve this order:
dnl
......@@ -153,15 +153,6 @@ PGAC_ARG_BOOL(enable, integer-datetimes, no, [ --enable-integer-datetimes enab
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
#
......
<!-- $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">
<title>Localization</>
......@@ -7,7 +7,7 @@
This chapter describes the available localization features from the
point of view of the administrator.
<productname>PostgreSQL</productname> supports localization with
three approaches:
two approaches:
<itemizedlist>
<listitem>
......@@ -23,17 +23,10 @@
Providing a number of different character sets defined in the
<productname>PostgreSQL</productname> server, including
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.
</para>
</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>
</para>
......@@ -884,75 +877,6 @@ RESET CLIENT_ENCODING;
</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>
<!-- Keep this comment at the end of the file
......
<!-- $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">
<title><![%standalone-include[<productname>PostgreSQL</>]]>
......@@ -699,19 +699,6 @@ JAVACMD=$JAVA_HOME/bin/java
</listitem>
</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>
<term><option>--enable-nls<optional>=<replaceable>LANGUAGES</replaceable></optional></option></term>
<listitem>
......
......@@ -8,7 +8,7 @@
*
*
* 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
* 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);
}
/*
* Set up additional info.
*/
#ifdef CYR_RECODE
SetCharSet();
#endif
/*
* General initialization.
*
......@@ -2651,7 +2643,7 @@ PostgresMain(int argc, char *argv[], const char *username)
if (!IsUnderPostmaster)
{
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
* $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++)
*r++ = ' ';
#ifdef CYR_RECODE
convertstr(VARDATA(result), len, 0);
#endif
PG_RETURN_BPCHAR_P(result);
}
......@@ -154,10 +150,6 @@ bpcharout(PG_FUNCTION_ARGS)
memcpy(result, VARDATA(s), len);
result[len] = '\0';
#ifdef CYR_RECODE
convertstr(result, len, 1);
#endif
PG_RETURN_CSTRING(result);
}
......@@ -396,10 +388,6 @@ varcharin(PG_FUNCTION_ARGS)
VARATT_SIZEP(result) = len + VARHDRSZ;
memcpy(VARDATA(result), s, len);
#ifdef CYR_RECODE
convertstr(VARDATA(result), len, 0);
#endif
PG_RETURN_VARCHAR_P(result);
}
......@@ -420,10 +408,6 @@ varcharout(PG_FUNCTION_ARGS)
memcpy(result, VARDATA(s), len);
result[len] = '\0';
#ifdef CYR_RECODE
convertstr(result, len, 1);
#endif
PG_RETURN_CSTRING(result);
}
......
......@@ -8,7 +8,7 @@
*
*
* 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);
#ifdef CYR_RECODE
convertstr(VARDATA(result), len, 0);
#endif
PG_RETURN_TEXT_P(result);
}
......@@ -290,10 +286,6 @@ textout(PG_FUNCTION_ARGS)
memcpy(result, VARDATA(t), len);
result[len] = '\0';
#ifdef CYR_RECODE
convertstr(result, len, 1);
#endif
PG_RETURN_CSTRING(result);
}
......
......@@ -8,7 +8,7 @@
*
*
* 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 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
......@@ -181,295 +174,6 @@ SetDataDir(const char *dir)
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
......
#
# 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
#
# Czech ISO-8859-2 -> WIN-1250 translation table
#
165 188
169 138
171 141
174 142
181 190
185 154
187 157
190 158
# 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
# 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
# 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
# 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) 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
* 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);
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 */
extern bool superuser(void); /* current user is superuser */
extern bool superuser_arg(AclId userid); /* given user is superuser */
......
......@@ -24,9 +24,6 @@
/* The alignment requirement of a `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
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.
......@@ -604,7 +601,7 @@
#undef USE_SYSV_SHARED_MEMORY
/* Define to 1 to build libpq and ecpg to be thread-safe.
(--enable-thread-safeness) */
(--enable-thread-safety) */
#undef USE_THREADS
/* Define to select unnamed POSIX semaphores. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment