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"> <refentry id="SQL-CREATECONVERSION">
<refmeta> <refmeta>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<refnamediv> <refnamediv>
<refname>CREATE CONVERSION</refname> <refname>CREATE CONVERSION</refname>
<refpurpose>define a new conversion</refpurpose> <refpurpose>define a new encoding conversion</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createconversion"> <indexterm zone="sql-createconversion">
...@@ -26,10 +26,12 @@ CREATE [DEFAULT] CONVERSION <replaceable>name</replaceable> ...@@ -26,10 +26,12 @@ CREATE [DEFAULT] CONVERSION <replaceable>name</replaceable>
<title>Description</title> <title>Description</title>
<para> <para>
<command>CREATE CONVERSION</command> defines a new encoding <command>CREATE CONVERSION</command> defines a new conversion between
conversion. Conversion names may be used in the <function>convert</function> function character set encodings. Conversion names may be used in the
<function>convert</function> function
to specify a particular encoding conversion. Also, conversions that 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 client and server. For this purpose, two conversions, from encoding A to
B <emphasis>and</emphasis> from encoding B to A, must be defined. B <emphasis>and</emphasis> from encoding B to A, must be defined.
</para> </para>
...@@ -109,7 +111,7 @@ conv_proc( ...@@ -109,7 +111,7 @@ conv_proc(
integer, -- source encoding ID integer, -- source encoding ID
integer, -- destination encoding ID integer, -- destination encoding ID
cstring, -- source string (null terminated C string) 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 integer -- source string length
) RETURNS void; ) RETURNS void;
</programlisting> </programlisting>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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) ...@@ -45,7 +45,7 @@ CreateConversionCommand(CreateConversionStmt *stmt)
const char *from_encoding_name = stmt->for_encoding_name; const char *from_encoding_name = stmt->for_encoding_name;
const char *to_encoding_name = stmt->to_encoding_name; const char *to_encoding_name = stmt->to_encoding_name;
List *func_name = stmt->func_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 */ /* Convert list of names to a name and namespace */
namespaceId = QualifiedNameGetCreationNamespace(stmt->conversion_name, namespaceId = QualifiedNameGetCreationNamespace(stmt->conversion_name,
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# Makefile for utils/mb/conversion_procs # Makefile for utils/mb/conversion_procs
# #
# IDENTIFICATION # 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) ...@@ -159,7 +159,7 @@ ifeq ($(enable_shared), yes)
func=$$1; shift; \ func=$$1; shift; \
obj=$$1; shift; \ obj=$$1; shift; \
echo "-- $$se --> $$de"; \ 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 "DROP CONVERSION pg_catalog.$$name;"; \
echo "CREATE DEFAULT CONVERSION pg_catalog.$$name FOR '$$se' TO '$$de' FROM $$func;"; \ echo "CREATE DEFAULT CONVERSION pg_catalog.$$name FOR '$$se' TO '$$de' FROM $$func;"; \
done > $@ 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