mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Make DROP IF EXISTS more consistently not fail
Some cases were still reporting errors and aborting, instead of a NOTICE that the object was being skipped. This makes it more difficult to cleanly handle pg_dump --clean, so change that to instead skip missing objects properly. Per bug #7873 reported by Dave Rolsky; apparently this affects a large number of users. Authors: Pavel Stehule and Dean Rasheed. Some tweaks by Álvaro Herrera
This commit is contained in:
@ -135,7 +135,7 @@ regprocin(PG_FUNCTION_ARGS)
|
||||
* pg_proc entries in the current search path.
|
||||
*/
|
||||
names = stringToQualifiedNameList(pro_name_or_oid);
|
||||
clist = FuncnameGetCandidates(names, -1, NIL, false, false);
|
||||
clist = FuncnameGetCandidates(names, -1, NIL, false, false, false);
|
||||
|
||||
if (clist == NULL)
|
||||
ereport(ERROR,
|
||||
@ -192,7 +192,7 @@ regprocout(PG_FUNCTION_ARGS)
|
||||
* qualify it.
|
||||
*/
|
||||
clist = FuncnameGetCandidates(list_make1(makeString(proname)),
|
||||
-1, NIL, false, false);
|
||||
-1, NIL, false, false, false);
|
||||
if (clist != NULL && clist->next == NULL &&
|
||||
clist->oid == proid)
|
||||
nspname = NULL;
|
||||
@ -279,7 +279,7 @@ regprocedurein(PG_FUNCTION_ARGS)
|
||||
*/
|
||||
parseNameAndArgTypes(pro_name_or_oid, false, &names, &nargs, argtypes);
|
||||
|
||||
clist = FuncnameGetCandidates(names, nargs, NIL, false, false);
|
||||
clist = FuncnameGetCandidates(names, nargs, NIL, false, false, false);
|
||||
|
||||
for (; clist; clist = clist->next)
|
||||
{
|
||||
|
Reference in New Issue
Block a user