summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2005-05-03 19:17:59 +0000
committerTom Lane2005-05-03 19:17:59 +0000
commit893b57c871b97c9324e3eea77409e487a1e22ae8 (patch)
treea2ea524111de0cca4e4b14987170b6c9a1728774
parent177af51c04528f0edb4d5dc632297c3c796a47f9 (diff)
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.
-rw-r--r--doc/src/sgml/ref/create_conversion.sgml14
-rw-r--r--src/backend/commands/conversioncmds.c4
-rw-r--r--src/backend/utils/mb/conversion_procs/Makefile4
3 files changed, 12 insertions, 10 deletions
diff --git a/doc/src/sgml/ref/create_conversion.sgml b/doc/src/sgml/ref/create_conversion.sgml
index 3b941b80bb1..9bf88807c14 100644
--- a/doc/src/sgml/ref/create_conversion.sgml
+++ b/doc/src/sgml/ref/create_conversion.sgml
@@ -1,4 +1,4 @@
-<!-- $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>
diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c
index c42580d624b..fb71bf59f92 100644
--- a/src/backend/commands/conversioncmds.c
+++ b/src/backend/commands/conversioncmds.c
@@ -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,
diff --git a/src/backend/utils/mb/conversion_procs/Makefile b/src/backend/utils/mb/conversion_procs/Makefile
index 18009da163f..72e0e92c425 100644
--- a/src/backend/utils/mb/conversion_procs/Makefile
+++ b/src/backend/utils/mb/conversion_procs/Makefile
@@ -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 > $@