Thread: "drop function" vs. "delete from pg_proc"

"drop function" vs. "delete from pg_proc"

From
Bob Fischer
Date:
I'm considering writing some semi-automatic software that would create
and drop functions in a PostgreSQL database.  I'm considering whether my
software must use the "drop function" command, or whether it can get
away with issuing "delete from pg_proc" commands.  Is it safe to drop
functions by deleting from the pg_proc table?

Many database objects are held in tables (types, classes, functions,
etc).  In general, is it safe or advisable to delete from the associated
table, rather than using the "official" drop command?  What is the
difference between the two methods?

Thanks,
--- Bob Fischer



Re: "drop function" vs. "delete from pg_proc"

From
Tom Lane
Date:
Bob Fischer <citibob@capu.net> writes:
> I'm considering writing some semi-automatic software that would create
> and drop functions in a PostgreSQL database.  I'm considering whether my
> software must use the "drop function" command, or whether it can get
> away with issuing "delete from pg_proc" commands.  Is it safe to drop
> functions by deleting from the pg_proc table?

At the moment, I believe so, but you open yourself up to all sorts of
future compatibility problems if you munge system catalogs directly.
(Also, the direct delete won't work if you are not superuser.)

Is there a good reason not to use DROP?

            regards, tom lane