<!--
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">
<entry>check constraints, unique / primary key constraints, foreign key constraints</entry>
</row>
+ <row>
+ <entry>pg_conversion</entry>
+ <entry>encoding conversion information</entry>
+ </row>
+
<row>
<entry>pg_database</entry>
<entry>databases within this database cluster</entry>
</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">
<title>pg_database</title>
-<!-- $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">
<title>Localization</>
<para>
Tatsuo Ishii (<email>ishii@postgresql.org</email>),
- last updated 2000-03-22.
+ last updated 2002-07-24.
Check <ulink
url="http://www.sra.co.jp/people/t-ishii/PostgreSQL/">Tatsuo's
web site</ulink> for more information.
overridden when you create a database using
<application>createdb</application> or by using the SQL command
<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>
- <sect2>
- <title>Enabling Multibyte Support</title>
-
<para>
- Run configure with the multibyte option:
+ Multibyte support is enabled by default since PostgreSQL version 7.3.
+ </para>
-<synopsis>
-./configure --enable-multibyte<optional>=<replaceable>encoding_system</replaceable></optional>
-</synopsis>
+ <sect2>
+ <title>Supported character set encodings</title>
- where <replaceable>encoding_system</replaceable> can be one of the
- values in the following table:
+ <para>
+ Following encoding can be used as database encoding.
<table tocentry="1">
<title>Character Set Encodings</title>
<literal>LATIN8</>, and <literal>LATIN10</>.
</para>
</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>
<title>Setting the Encoding</title>
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
to type longer option strings.
- If no <option>-E</> or <option>--encoding</option> option is given, the encoding
- specified at configure time is used.
+ If no <option>-E</> or <option>--encoding</option> option is
+ given, SQL_ASCII is used.
</para>
<para>
</sect2>
<sect2>
- <title>Automatic encoding translation between server and
+ <title>Automatic encoding conversion between server and
client</title>
<para>
<productname>PostgreSQL</productname> supports an automatic
- encoding translation between server
- and client for some encodings. The available combinations are
- listed in <xref linkend="multibyte-translation-table">.
+ encoding conversion between server and client for some
+ encodings. The conversion info is stored in pg_converson system
+ 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>
<table tocentry="1" id="multibyte-translation-table">
be overridden using any of the other methods mentioned above.)
</para>
</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>
</para>
</sect2>
The Unicode conversion functionality is automatically enabled
if <option>--enable-multibyte</option> is specified.
</para>
+ <para>
+ For 7.3, <option>--enable-unicode-conversion</option> nor
+ <option>--enable-multibyte</option> is needed.
+ </para>
</sect2>
<sect2>