aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-05-03 19:17:59 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-05-03 19:17:59 +0000
commit893b57c871b97c9324e3eea77409e487a1e22ae8 (patch)
treea2ea524111de0cca4e4b14987170b6c9a1728774
parent177af51c04528f0edb4d5dc632297c3c796a47f9 (diff)
downloadpostgresql-893b57c871b97c9324e3eea77409e487a1e22ae8.tar.gz
postgresql-893b57c871b97c9324e3eea77409e487a1e22ae8.zip
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 > $@