1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-10 09:21:54 +03:00

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?
This commit is contained in:
Tom Lane
2004-03-02 21:15:15 +00:00
parent 2d558b2baa
commit e921472fef

View File

@ -22,7 +22,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.305.2.9 2003/10/28 21:05:39 tgl Exp $ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.305.2.10 2004/03/02 21:15:15 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -3917,8 +3917,16 @@ dumpCasts(Archive *fout,
if (strcmp(castfunc, "0") == 0) if (strcmp(castfunc, "0") == 0)
appendPQExpBuffer(defqry, "WITHOUT FUNCTION"); appendPQExpBuffer(defqry, "WITHOUT FUNCTION");
else else
appendPQExpBuffer(defqry, "WITH FUNCTION %s", {
format_function_signature(&finfo[fidx], true)); /*
* 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(finfo[fidx].pronamespace->nspname));
appendPQExpBuffer(defqry, "%s",
format_function_signature(&finfo[fidx], true));
}
if (strcmp(castcontext, "a") == 0) if (strcmp(castcontext, "a") == 0)
appendPQExpBuffer(defqry, " AS ASSIGNMENT"); appendPQExpBuffer(defqry, " AS ASSIGNMENT");