Bruce Momjian <bruce@momjian.us> writes:
> By doing a DROP CASCADE on plpython2, you drop the user functions, but
> not the support functions.
Well, yeah. The language depends on the support functions, not the
other way around.
> This certainly looks like a bug. Should I work on a patch?
It's not a bug, and it's unlikely you can "fix" it in pg_upgrade without
making things worse.
The long-run plan is that the procedural language and its support
functions are all part of an extension and what you do is drop the
extension. We're not quite there yet. As of 9.1, if you do "create
extension plpython2" to start with, dropping the extension does drop the
support functions too ... but if you use the legacy "create language"
syntax, that doesn't happen, because an extension object isn't created.
regards, tom lane