Thread: core dump? OID/database corruption?
An obscure series of events seems to cause a core dump and OID corruption: -- tolower function for varchar create function varchar_lower(varchar) returns varchar as '/usr/local/lib/pgcontains.so', 'pglower' language'c'; create index ztables_title_ndx on ztitles ( varchar_lower (title) ) ; vacuum analyze ; { leave } at some point come back drop function varchar_lower (varchar) ; create function varchar_lower(varchar) returns varchar as '/usr/local/lib/pgcontains.so', 'pglower' language'c'; and strange things start to happen. I realize that (and only belatedly) once I drop the function the index is corrupt, but it seems there are invalid oids when I try to dump the database, and dumping some tables caused a core dump. I didn't save the data, I was in live service panic mode. I have a shared library of functions I use in Postgres and I do a drop / create for an install script. I realize this is a little indiscriminate, and at least unwise, but I think postgres should be able to handle this. -- http://www.mohawksoft.com
Given the name of a table, I need to find all foreign keys in that table and the table/column that they refer to, along with the action to be performed on update/delete. The following query works, but only when there is 1 foreign key in the table, when there is more than 2 it grows exponentially -- which means I am missing a join. However, given my limitied knowledge about the layouts of the postgres system tables, and the pg_trigger not being documented on the web site, I have been unable to get the correct query. Is this possible, and if so, what join(s) am I missing? SELECT pt.tgargs, pt.tgnargs, pt.tgdeferrable, pt.tginitdeferred, pg_proc.proname, pg_proc_1.proname FROM pg_class pc, pg_proc pg_proc, pg_proc pg_proc_1, pg_trigger pg_trigger, pg_trigger pg_trigger_1, pg_proc pp, pg_trigger pt WHERE pt.tgrelid = pc.oid AND pp.oid = pt.tgfoid AND pg_trigger.tgconstrrelid = pc.oid AND pg_proc.oid = pg_trigger.tgfoid AND pg_trigger_1.tgfoid = pg_proc_1.oid AND pg_trigger_1.tgconstrrelid = pc.oid AND ((pc.relname='tblmidterm') AND (pp.proname LIKE '%ins') AND (pg_proc.proname LIKE '%upd') AND (pg_proc_1.proname LIKE '%del')) Michael Fork - CCNA - MCP - A+ Network Support - Toledo Internet Access - Toledo Ohio
mlw <markw@mohawksoft.com> writes: > [ drop function on which a functional index is based ] > and strange things start to happen. All I get is messages likeERROR: fmgr_info: function 402432: cache lookup failed which is about what I'd expect. If you've seen a coredump in this situation, let's hear a more specific bug report. regards, tom lane