Re: plpgsql: Plan type mismatch error

From: "Brendan Jurd" <direvus(at)gmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: plpgsql: Plan type mismatch error
Date: 2007-10-16 05:06:59
Message-ID: 37ed240d0710152206p48bb54e3q5039ca1cf68ddd37@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 10/16/07, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "Brendan Jurd" <direvus(at)gmail(dot)com> writes:
> > I recently ran afoul of the following error message:
> > ERROR: type of "varname" does not match that when preparing the plan
> > IMO the message isn't quite in English and doesn't explain the problem
> > very well.
>
> The English is fine. What I want to know about is whether this was a
> current release, and if so how you provoked it.

This was in 8.3 beta 1. I provoked the message by having a variable
which came from a dynamic query (EXECUTE .. INTO a variable of type
RECORD), and a member of that record changed type between one
execution of the function and the next.

So the plan was cached on the first execution, and in the second
execution the type of the variable did not match the type in the plan.
At least, that's what I understand happened from looking at the code
which emitted the message.

Once I knew what the message was talking about, fixing my function was
easy. It's a useful error message, it's just not well articulated ...

Cheers,
BJ

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2007-10-16 05:08:20 Re: FOUND with EXECUTE
Previous Message Tom Lane 2007-10-16 04:52:47 Re: plpgsql: Plan type mismatch error