On Thu, Apr 26, 2012 at 2:24 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
Kenneth Tilton <ktilton@xxxxxxxx> writes:
> I am doing a ton of pgsql over here defining and redefining functions and
> triggers and every day or so I get this:
> Error: Database error XX000: cache lookup failed for type 5276542
> Does the above give anyone any ideas at all about what is going on?No.
:) What is "type 5276542"? Does not look like much of a type.
And why is a cache lookup an error? If it is not in the cache go find the definition! :)
I guess it "knows" something should be in the cache and then does not find it. Prolly that code needs to be taught about the possibility of things being redefined so it goes out and finds the function by name. Of course if it threw away the name and kept only a cache pointer...well, then it needs to stop throwing away the name.
Can you produce a self-contained test case?
I doubt it. Every test iteration I run includes a lot of redefining of functions and triggers all over the map, and it works fine thru dozens of iterations. The wheels seem to come off after a serious refactoring. Nothing is needed to clear the problem except (it seems) close any connections to the DB, so I guess some optimization does not work in the face of sufficient dynamic redefinition.
-kt