From 0c6e97db47185842c4dc547a52d24c3ddc5a229c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 2 Mar 2004 21:14:44 +0000 Subject: [PATCH] Always schema-qualify the name of a function referenced in CREATE CAST. The former coding failed if the cast function was not in the pg_catalog schema. How'd this escape detection? --- src/bin/pg_dump/pg_dump.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 15e1b2bd01..47433c1d02 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12,7 +12,7 @@ * by PostgreSQL * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.365 2004/02/24 03:35:19 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.366 2004/03/02 21:14:44 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -5080,8 +5080,16 @@ dumpCast(Archive *fout, CastInfo *cast) if (!OidIsValid(cast->castfunc)) appendPQExpBuffer(defqry, "WITHOUT FUNCTION"); else - appendPQExpBuffer(defqry, "WITH FUNCTION %s", + { + /* + * Always qualify the function name, in case it is not in pg_catalog + * schema (format_function_signature won't qualify it). + */ + appendPQExpBuffer(defqry, "WITH FUNCTION %s.", + fmtId(funcInfo->pronamespace->nspname)); + appendPQExpBuffer(defqry, "%s", format_function_signature(funcInfo, NULL, true)); + } if (cast->castcontext == 'a') appendPQExpBuffer(defqry, " AS ASSIGNMENT");