Обсуждение: Query buffer allocate error in copy_statement_with_parameters

Поиск
Список
Период
Сортировка

Query buffer allocate error in copy_statement_with_parameters

От
"John C. Frickson"
Дата:
I'm getting the error message "Query buffer allocate error in
copy_statement_with_parameters" when calling a function with a
parameter.

The very simple function was created like this:

    CREATE OR REPLACE FUNCTION pvsystem.spclearloginfails
        (_seconds integer)
    RETURNS void AS $$
    BEGIN
      DELETE FROM LoginFails WHERE extract(epoch FROM NOW()) -
        extract(epoch FROM LastFail) > _seconds;
    END;
    $$
    LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT
    SECURITY DEFINER COST 100;

Calling SQLPrepare() works fine. Calling SQLDescribeParam() works fine.
Calling SQLBindParameter() works fine.
SQLExecute returns the above error.

The data buffer for the parameter is 10 bytes long. The contents are
"300" followed by nulls. length_or_ind is 3.

Doesn't seem like there's very much that can go wrong here.

The server is version 9.2.7 and the ODBC driver is version 08.03.0200.
Running on OpenSUSE 13.1.

Thanks!
John




Re: Query buffer allocate error in copy_statement_with_parameters

От
"John C. Frickson"
Дата:
I have a little more info. I suspected having a 8.3 version of the ODBC
driver was (part of) the problem. So I tested a short program on
Windows, where I have a 09.02.01 driver. It worked fine there. Since I
couldn't find a 9.2 binary version of ODBC, I downloaded the source,
built, and installed.

Still getting the error. Anybody have any ideas?


On Thu, 2014-05-22 at 12:55 -0500, John C. Frickson wrote:
> I'm getting the error message "Query buffer allocate error in
> copy_statement_with_parameters" when calling a function with a
> parameter.
>
> The very simple function was created like this:
>
>     CREATE OR REPLACE FUNCTION pvsystem.spclearloginfails
>         (_seconds integer)
>     RETURNS void AS $$
>     BEGIN
>       DELETE FROM LoginFails WHERE extract(epoch FROM NOW()) -
>         extract(epoch FROM LastFail) > _seconds;
>     END;
>     $$
>     LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT
>     SECURITY DEFINER COST 100;
>
> Calling SQLPrepare() works fine. Calling SQLDescribeParam() works fine.
> Calling SQLBindParameter() works fine.
> SQLExecute returns the above error.
>
> The data buffer for the parameter is 10 bytes long. The contents are
> "300" followed by nulls. length_or_ind is 3.
>
> Doesn't seem like there's very much that can go wrong here.
>
> The server is version 9.2.7 and the ODBC driver is version 08.03.0200.
> Running on OpenSUSE 13.1.
>
> Thanks!
> John
>
>
>
>



Re: Query buffer allocate error in copy_statement_with_parameters

От
Heikki Linnakangas
Дата:
On 05/23/2014 06:53 AM, John C. Frickson wrote:
> I have a little more info. I suspected having a 8.3 version of the ODBC
> driver was (part of) the problem. So I tested a short program on
> Windows, where I have a 09.02.01 driver. It worked fine there. Since I
> couldn't find a 9.2 binary version of ODBC, I downloaded the source,
> built, and installed.

Works for me. I tested this with the attached test program (modified
from a test in the regression suite). Can you modify it so that it
exhibits the problem you're seeing?

- Heikki


Вложения