Thread: Query buffer allocate error in copy_statement_with_parameters
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
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 > > > >
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