Add pg_conversion system catalog. Update description for multibyte support.

This commit is contained in:
Tatsuo Ishii 2002-07-24 05:51:56 +00:00
parent b4b3c63b2b
commit 88b74dcddf
2 changed files with 121 additions and 35 deletions

View File

@ -1,6 +1,6 @@
<!-- <!--
Documentation of the system catalogs, directed toward PostgreSQL developers Documentation of the system catalogs, directed toward PostgreSQL developers
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.46 2002/07/22 20:23:19 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.47 2002/07/24 05:51:55 ishii Exp $
--> -->
<chapter id="catalogs"> <chapter id="catalogs">
@ -81,6 +81,11 @@
<entry>check constraints, unique / primary key constraints, foreign key constraints</entry> <entry>check constraints, unique / primary key constraints, foreign key constraints</entry>
</row> </row>
<row>
<entry>pg_conversion</entry>
<entry>encoding conversion information</entry>
</row>
<row> <row>
<entry>pg_database</entry> <entry>pg_database</entry>
<entry>databases within this database cluster</entry> <entry>databases within this database cluster</entry>
@ -995,6 +1000,85 @@
</sect1> </sect1>
<sect1 id="catalog-pg-conversion">
<title>pg_conversion</title>
<para>
This system catalog stores encoding conversion information. See
<command>CREATE CONVERSION</command> for more information.
</para>
<table>
<title>pg_conversion Columns</title>
<tgroup cols=4>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>References</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>conname</entry>
<entry><type>name</type></entry>
<entry></entry>
<entry>Conversion name (unique within a namespace)</entry>
</row>
<row>
<entry>connamespace</entry>
<entry><type>oid</type></entry>
<entry>pg_namespace.oid</entry>
<entry>
The OID of the namespace that contains this conversion
</entry>
</row>
<row>
<entry>conowner</entry>
<entry><type>int4</type></entry>
<entry>pg_shadow.usesysid</entry>
<entry>Owner (creator) of the namespace</entry>
</row>
<row>
<entry>conforencoding</entry>
<entry><type>int4</type></entry>
<entry></entry>
<entry>Source(for) encoding ID</entry>
</row>
<row>
<entry>contoencoding</entry>
<entry><type>int4</type></entry>
<entry></entry>
<entry>Destination(to) encoding ID</entry>
</row>
<row>
<entry>conproc</entry>
<entry><type>regproc</type></entry>
<entry>pg_proc.oid</entry>
<entry>Conversion procedure</entry>
</row>
<row>
<entry>condefault</entry>
<entry><type>boolean</type></entry>
<entry></entry>
<entry>true if this is the default conversion</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1 id="catalog-pg-database"> <sect1 id="catalog-pg-database">
<title>pg_database</title> <title>pg_database</title>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.24 2002/04/03 05:39:27 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.25 2002/07/24 05:51:56 ishii Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
@ -326,7 +326,7 @@ perl: warning: Falling back to the standard locale ("C").
<para> <para>
Tatsuo Ishii (<email>ishii@postgresql.org</email>), Tatsuo Ishii (<email>ishii@postgresql.org</email>),
last updated 2000-03-22. last updated 2002-07-24.
Check <ulink Check <ulink
url="http://www.sra.co.jp/people/t-ishii/PostgreSQL/">Tatsuo's url="http://www.sra.co.jp/people/t-ishii/PostgreSQL/">Tatsuo's
web site</ulink> for more information. web site</ulink> for more information.
@ -346,21 +346,19 @@ perl: warning: Falling back to the standard locale ("C").
overridden when you create a database using overridden when you create a database using
<application>createdb</application> or by using the SQL command <application>createdb</application> or by using the SQL command
<command>CREATE DATABASE</>. So you can have multiple databases each with <command>CREATE DATABASE</>. So you can have multiple databases each with
a different encoding system. a different encoding system. Note that <acronym>MB</acronym> can
handle single byte characters sets such as ISO-8859-1.
</para> </para>
<para>
Multibyte support is enabled by default since PostgreSQL version 7.3.
</para>
<sect2> <sect2>
<title>Enabling Multibyte Support</title> <title>Supported character set encodings</title>
<para> <para>
Run configure with the multibyte option: Following encoding can be used as database encoding.
<synopsis>
./configure --enable-multibyte<optional>=<replaceable>encoding_system</replaceable></optional>
</synopsis>
where <replaceable>encoding_system</replaceable> can be one of the
values in the following table:
<table tocentry="1"> <table tocentry="1">
<title>Character Set Encodings</title> <title>Character Set Encodings</title>
@ -508,23 +506,8 @@ perl: warning: Falling back to the standard locale ("C").
<literal>LATIN8</>, and <literal>LATIN10</>. <literal>LATIN8</>, and <literal>LATIN10</>.
</para> </para>
</important> </important>
</sect2>
<para>
Here is an example of configuring
<productname>PostgreSQL</productname> to use a Japanese encoding by
default:
<screen>
$ <userinput>./configure --enable-multibyte=EUC_JP</userinput>
</screen>
</para>
<para>
If the encoding system is omitted (<literal>./configure --enable-multibyte</literal>),
<literal>SQL_ASCII</> is assumed.
</para>
</sect2>
<sect2> <sect2>
<title>Setting the Encoding</title> <title>Setting the Encoding</title>
@ -539,8 +522,8 @@ $ <userinput>initdb -E EUC_JP</>
sets the default encoding to <literal>EUC_JP</literal> (Extended Unix Code for Japanese). sets the default encoding to <literal>EUC_JP</literal> (Extended Unix Code for Japanese).
Note that you can use <option>--encoding</option> instead of <option>-E</option> if you prefer Note that you can use <option>--encoding</option> instead of <option>-E</option> if you prefer
to type longer option strings. to type longer option strings.
If no <option>-E</> or <option>--encoding</option> option is given, the encoding If no <option>-E</> or <option>--encoding</option> option is
specified at configure time is used. given, SQL_ASCII is used.
</para> </para>
<para> <para>
@ -583,14 +566,17 @@ $ <userinput>psql -l</userinput>
</sect2> </sect2>
<sect2> <sect2>
<title>Automatic encoding translation between server and <title>Automatic encoding conversion between server and
client</title> client</title>
<para> <para>
<productname>PostgreSQL</productname> supports an automatic <productname>PostgreSQL</productname> supports an automatic
encoding translation between server encoding conversion between server and client for some
and client for some encodings. The available combinations are encodings. The conversion info is stored in pg_converson system
listed in <xref linkend="multibyte-translation-table">. catalog. You can create a new conversion by using <command>CREATE
CONVERSION</command>. PostgreSQL comes with some predefined
conversions. They are listed in <xref
linkend="multibyte-translation-table">.
</para> </para>
<table tocentry="1" id="multibyte-translation-table"> <table tocentry="1" id="multibyte-translation-table">
@ -887,6 +873,18 @@ RESET CLIENT_ENCODING;
be overridden using any of the other methods mentioned above.) be overridden using any of the other methods mentioned above.)
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Using client_encoding variable.
If client_encoding variable in postgresql.conf is set, that
client encoding is automatically selected when a connection to the
server is made. (This can subsequently be overridden using any of the
other methods mentioned above.)
</para>
</listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect2> </sect2>
@ -909,6 +907,10 @@ RESET CLIENT_ENCODING;
The Unicode conversion functionality is automatically enabled The Unicode conversion functionality is automatically enabled
if <option>--enable-multibyte</option> is specified. if <option>--enable-multibyte</option> is specified.
</para> </para>
<para>
For 7.3, <option>--enable-unicode-conversion</option> nor
<option>--enable-multibyte</option> is needed.
</para>
</sect2> </sect2>
<sect2> <sect2>