Thread: "drop function" vs. "delete from pg_proc"
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
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