Refactor the handling of the various DropStmt variants so that when multiple
commitdced80d65ce60ddb20c7aa322339b746b1164f01
authortgl <tgl>
Sat, 14 Jun 2008 18:04:34 +0000 (14 18:04 +0000)
committertgl <tgl>
Sat, 14 Jun 2008 18:04:34 +0000 (14 18:04 +0000)
tree4092d6159a9be078a1d41f6efb5cd09876c6626c
parent2b84aa2ab51ac3fce174170b997164c9c4e448b2
Refactor the handling of the various DropStmt variants so that when multiple
objects are specified, we drop them all in a single performMultipleDeletions
call.  This makes the RESTRICT/CASCADE checks more relaxed: it's not counted
as a cascade if one of the later objects has a dependency on an earlier one.
NOTICE messages about such cases go away, too.

In passing, fix the permissions check for DROP CONVERSION, which for some
reason was never made role-aware, and omitted the namespace-owner exemption
too.

Alex Hunsaker, with further fiddling by me.
20 files changed:
src/backend/catalog/dependency.c
src/backend/catalog/pg_conversion.c
src/backend/commands/conversioncmds.c
src/backend/commands/indexcmds.c
src/backend/commands/schemacmds.c
src/backend/commands/tablecmds.c
src/backend/commands/tsearchcmds.c
src/backend/commands/typecmds.c
src/backend/commands/view.c
src/backend/tcop/utility.c
src/include/catalog/pg_conversion_fn.h
src/include/commands/conversioncmds.h
src/include/commands/defrem.h
src/include/commands/schemacmds.h
src/include/commands/tablecmds.h
src/include/commands/typecmds.h
src/include/commands/view.h
src/test/regress/expected/foreign_key.out
src/test/regress/expected/truncate.out
src/test/regress/sql/foreign_key.sql