From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>, pgsql-odbc(at)postgresql(dot)org |
Subject: | Re: Error in calling a function with protocol 7.4 |
Date: | 2015-12-21 14:41:58 |
Message-ID: | 56780FB6.4000204@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
On 09/12/15 02:40, Haribabu Kommi wrote:
> when function is called using the following way, it generates an error.
>
> ? = CALL procname ()
>
> The error message with 09.03.0400 with protocol 7.4 is
> -----------------------------------------------------
> errstate -> 08P01
> errcode -> 7
> errmsg -> ERROR: invalid message format; Error while executing the query
> -----------------------------------------------------
>
> But it passes with protocol 6.4 in version 09.03.0400. The same test passes
> with either protocol versions in version 09.03.0100.
>
> Function:
>
> CREATE OR REPLACE FUNCTION PROC1() RETURNS INTEGER
> AS $$
> BEGIN
> RETURN 1234;
> END;
> $$ LANGUAGE 'plpgsql';
>
> Here I attached the sample test file to reproduce the problem. I want to know
> whether is it a problem or normal behavior in this version?
It's a bug. I bisected it into commit e6d7ded, which was a bit
surprising because that commit didn't change the way the parameters are
handled, AFAICS. In any case, in 'master', the bug was quite clearly in
libpq_bind_and_exec(): with a not-already-prepared statement, it sent
the original number of parameters to the server, rather than the number
of parameters minus the OUT params.
Pushed a fix for this to master. Thanks for the test case!
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Haribabu Kommi | 2015-12-24 04:37:24 | Re: Error in calling a function with protocol 7.4 |
Previous Message | Heikki Linnakangas | 2015-12-21 13:34:13 | Re: query timeout |