Commit 893b57c8 authored by Tom Lane's avatar Tom Lane

Alter the signature for encoding conversion functions to declare the

output area as INTERNAL not CSTRING.  This is to prevent people from
calling the functions by hand.  This is a permanent solution for the
back branches but I hope it is just a stopgap for HEAD.
parent 177af51c
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/create_conversion.sgml,v 1.15 2005/03/07 04:30:51 momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/create_conversion.sgml,v 1.16 2005/05/03 19:17:59 tgl Exp $ -->
<refentry id="SQL-CREATECONVERSION">
<refmeta>
......@@ -8,7 +8,7 @@
<refnamediv>
<refname>CREATE CONVERSION</refname>
<refpurpose>define a new conversion</refpurpose>
<refpurpose>define a new encoding conversion</refpurpose>
</refnamediv>
<indexterm zone="sql-createconversion">
......@@ -26,10 +26,12 @@ CREATE [DEFAULT] CONVERSION <replaceable>name</replaceable>
<title>Description</title>
<para>
<command>CREATE CONVERSION</command> defines a new encoding
conversion. Conversion names may be used in the <function>convert</function> function
<command>CREATE CONVERSION</command> defines a new conversion between
character set encodings. Conversion names may be used in the
<function>convert</function> function
to specify a particular encoding conversion. Also, conversions that
are marked <literal>DEFAULT</> can be used for automatic encoding conversion between
are marked <literal>DEFAULT</> can be used for automatic encoding
conversion between
client and server. For this purpose, two conversions, from encoding A to
B <emphasis>and</emphasis> from encoding B to A, must be defined.
</para>
......@@ -109,7 +111,7 @@ conv_proc(
integer, -- source encoding ID
integer, -- destination encoding ID
cstring, -- source string (null terminated C string)
cstring, -- destination string (null terminated C string)
internal, -- destination (fill with a null terminated C string)
integer -- source string length
) RETURNS void;
</programlisting>
......
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.17 2005/04/14 20:03:23 tgl Exp $
* $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.18 2005/05/03 19:17:59 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -45,7 +45,7 @@ CreateConversionCommand(CreateConversionStmt *stmt)
const char *from_encoding_name = stmt->for_encoding_name;
const char *to_encoding_name = stmt->to_encoding_name;
List *func_name = stmt->func_name;
static Oid funcargs[] = {INT4OID, INT4OID, CSTRINGOID, CSTRINGOID, INT4OID};
static Oid funcargs[] = {INT4OID, INT4OID, CSTRINGOID, INTERNALOID, INT4OID};
/* Convert list of names to a name and namespace */
namespaceId = QualifiedNameGetCreationNamespace(stmt->conversion_name,
......
......@@ -4,7 +4,7 @@
# Makefile for utils/mb/conversion_procs
#
# IDENTIFICATION
# $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/Makefile,v 1.13 2005/03/14 18:31:21 momjian Exp $
# $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/Makefile,v 1.14 2005/05/03 19:17:59 tgl Exp $
#
#-------------------------------------------------------------------------
......@@ -159,7 +159,7 @@ ifeq ($(enable_shared), yes)
func=$$1; shift; \
obj=$$1; shift; \
echo "-- $$se --> $$de"; \
echo "CREATE OR REPLACE FUNCTION $$func (INTEGER, INTEGER, CSTRING, CSTRING, INTEGER) RETURNS VOID AS '$$"libdir"/$$obj', '$$func' LANGUAGE 'c' STRICT;"; \
echo "CREATE OR REPLACE FUNCTION $$func (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$$"libdir"/$$obj', '$$func' LANGUAGE 'c' STRICT;"; \
echo "DROP CONVERSION pg_catalog.$$name;"; \
echo "CREATE DEFAULT CONVERSION pg_catalog.$$name FOR '$$se' TO '$$de' FROM $$func;"; \
done > $@
......
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