Thread: psqlodbc: No memory available to store statement
I widely use psqlodb driver with unixODBC manager on my SLES12 linux machine.
Not very long ago I updated psqlodbc driver from 10.03.0000 to the latest one 11.01.0000 .
I use unixODBC-2.3.6-7.9.1.x86_64 package installed from YAST setup and configurational tool and configure, build, and install psqlodbc from the source code in the same way as for psqlodbc 10.03.0000:
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config --with-unixodbc=path_to_odbc_config
make
make install
In my program I use quite common ODBC functions to establish a connection, perform a query, retrieve a result:
SQLConnect, SQLExecDirect, SQLFetch etc.
But after I had installed psqlodbc11.01.0000 I am constantly getting the following error:
No memory available to store statement *** PostgreSQL SQLSTATE = HY001
I inspected all the changes in 11.00.0000 and 11.01.0000 versions and found out that this behaviour is caused by the following commit:
1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
So, in this case I see that configure script generates config.h file with defined SIZEOF_LONG_INT: #define SIZEOF_LONG_INT 0,
while odcb_config --header says:
#define SIZEOF_LONG_INT 8
So, in regard to this situation I have some questions.
Unfortunately there is not enough information. So what was the aim of this commit? 1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
Did anybody face this issue? (No memory available to store statement *** PostgreSQL SQLSTATE = HY001 )
What do I do wrong? How to resolve this issue?
Best regards,
Andrei Yahorau
Hi Andrei,
Hello PostgreSQL Community!
I widely use psqlodb driver with unixODBC manager on my SLES12 linux machine.
Not very long ago I updated psqlodbc driver from 10.03.0000 to the latest one 11.01.0000 .
I use unixODBC-2.3.6-7.9.1.x86_64 package installed from YAST setup and configurational tool and configure, build, and install psqlodbc from the source code in the same way as for psqlodbc 10.03.0000:
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config --with-unixodbc=path_to_odbc_config
make
make install
In my program I use quite common ODBC functions to establish a connection, perform a query, retrieve a result:
SQLConnect, SQLExecDirect, SQLFetch etc.
But after I had installed psqlodbc11.01.0000 I am constantly getting the following error:
No memory available to store statement *** PostgreSQL SQLSTATE = HY001
I inspected all the changes in 11.00.0000 and 11.01.0000 versions and found out that this behaviour is caused by the following commit:
1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
So, in this case I see that configure script generates config.h file with defined SIZEOF_LONG_INT: #define SIZEOF_LONG_INT 0,
Could you please send me config.h ?
regards,
Hiroshi Inoue
while odcb_config --header says:
#define SIZEOF_LONG_INT 8
So, in regard to this situation I have some questions.
Unfortunately there is not enough information. So what was the aim of this commit? 1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
Did anybody face this issue? (No memory available to store statement *** PostgreSQL SQLSTATE = HY001 )
What do I do wrong? How to resolve this issue?
Best regards,
Andrei Yahorau
I attached config.h, generated after configure command:
Best regards,
Andrei Yahorau
From: "Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>
To: AYahorau@ibagroup.eu,
Cc: pgsql-odbc@postgresql.org
Date: 26/06/2019 23:43
Subject: Re: psqlodbc: No memory available to store statement
Hi Andrei,
On 2019/06/25 21:28, AYahorau@ibagroup.eu wrote:
Hello PostgreSQL Community!
I widely use psqlodb driver with unixODBC manager on my SLES12 linux machine.
Not very long ago I updated psqlodbc driver from 10.03.0000 to the latest one 11.01.0000 .
I use unixODBC-2.3.6-7.9.1.x86_64 package installed from YAST setup and configurational tool and configure, build, and install psqlodbc from the source code in the same way as for psqlodbc 10.03.0000:
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config --with-unixodbc=path_to_odbc_config
make
make install
In my program I use quite common ODBC functions to establish a connection, perform a query, retrieve a result:
SQLConnect, SQLExecDirect, SQLFetch etc.
But after I had installed psqlodbc11.01.0000 I am constantly getting the following error:
No memory available to store statement *** PostgreSQL SQLSTATE = HY001
I inspected all the changes in 11.00.0000 and 11.01.0000 versions and found out that this behaviour is caused by the following commit:
1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
So, in this case I see that configure script generates config.h file with defined SIZEOF_LONG_INT: #define SIZEOF_LONG_INT 0,
Could you please send me config.h ?
regards,
Hiroshi Inoue
while odcb_config --header says:
#define SIZEOF_LONG_INT 8
So, in regard to this situation I have some questions.
Unfortunately there is not enough information. So what was the aim of this commit? 1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
Did anybody face this issue? (No memory available to store statement *** PostgreSQL SQLSTATE = HY001 )
What do I do wrong? How to resolve this issue?
Best regards,
Andrei Yahorau
Attachment
Hello,
I attached config.h, generated after configure command:
It's strange that SIZEOF_LONG, SIZEOF_LONG_INT and SIZEOF_VOID_P = 0.
Could you show me config.log?
regards,
Hiroshi Inoue
Best regards,
Andrei Yahorau
From: "Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>
To: AYahorau@ibagroup.eu,
Cc: pgsql-odbc@postgresql.org
Date: 26/06/2019 23:43
Subject: Re: psqlodbc: No memory available to store statement
Hi Andrei,On 2019/06/25 21:28, AYahorau@ibagroup.eu wrote:
Hello PostgreSQL Community!
I widely use psqlodb driver with unixODBC manager on my SLES12 linux machine.
Not very long ago I updated psqlodbc driver from 10.03.0000 to the latest one 11.01.0000 .
I use unixODBC-2.3.6-7.9.1.x86_64 package installed from YAST setup and configurational tool and configure, build, and install psqlodbc from the source code in the same way as for psqlodbc 10.03.0000:
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config --with-unixodbc=path_to_odbc_config
make
make install
In my program I use quite common ODBC functions to establish a connection, perform a query, retrieve a result:
SQLConnect, SQLExecDirect, SQLFetch etc.
But after I had installed psqlodbc11.01.0000 I am constantly getting the following error:
No memory available to store statement *** PostgreSQL SQLSTATE = HY001
I inspected all the changes in 11.00.0000 and 11.01.0000 versions and found out that this behaviour is caused by the following commit:
1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
So, in this case I see that configure script generates config.h file with defined SIZEOF_LONG_INT: #define SIZEOF_LONG_INT 0,
Could you please send me config.h ?
regards,
Hiroshi Inoue
while odcb_config --header says:
#define SIZEOF_LONG_INT 8
So, in regard to this situation I have some questions.
Unfortunately there is not enough information. So what was the aim of this commit? 1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
Did anybody face this issue? (No memory available to store statement *** PostgreSQL SQLSTATE = HY001 )
What do I do wrong? How to resolve this issue?
Best regards,
Andrei Yahorau
I attached 2 archives.
The first contains config.log and config.h generated after the following procedure:
export LD_RUN_PATH=/usr/local/postgres11.3/lib
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config
The second one contains the files after the following procedure:
export LD_RUN_PATH=/usr/local/postgres11.3/lib
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config -with-unixodbc=path_to_unixODBC
Anyway, despite the configuration procedure, I get the same error when I use psqlodbc driver:
No memory available to store statement *** PostgreSQL SQLSTATE = HY001
Thank You in advance,
Andrei Yahorau
From: "Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>
To: AYahorau@ibagroup.eu,
Cc: pgsql-odbc@postgresql.org, MikalaiKeida@ibagroup.eu
Date: 28/06/2019 03:49
Subject: Re: psqlodbc: No memory available to store statement
Hi Andrei,
On 2019/06/28 1:55, AYahorau@ibagroup.eu wrote:
Hello,
I attached config.h, generated after configure command:
It's strange that SIZEOF_LONG, SIZEOF_LONG_INT and SIZEOF_VOID_P = 0.
Could you show me config.log?
regards,
Hiroshi Inoue
Best regards,
Andrei Yahorau
From: "Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>
To: AYahorau@ibagroup.eu,
Cc: pgsql-odbc@postgresql.org
Date: 26/06/2019 23:43
Subject: Re: psqlodbc: No memory available to store statement
Hi Andrei,
On 2019/06/25 21:28, AYahorau@ibagroup.eu wrote:
Hello PostgreSQL Community!
I widely use psqlodb driver with unixODBC manager on my SLES12 linux machine.
Not very long ago I updated psqlodbc driver from 10.03.0000 to the latest one 11.01.0000 .
I use unixODBC-2.3.6-7.9.1.x86_64 package installed from YAST setup and configurational tool and configure, build, and install psqlodbc from the source code in the same way as for psqlodbc 10.03.0000:
autoreconf -i
./configure --prefix=path_to_install --with-libpq=path_to_pg_config --with-unixodbc=path_to_odbc_config
make
make install
In my program I use quite common ODBC functions to establish a connection, perform a query, retrieve a result:
SQLConnect, SQLExecDirect, SQLFetch etc.
But after I had installed psqlodbc11.01.0000 I am constantly getting the following error:
No memory available to store statement *** PostgreSQL SQLSTATE = HY001
I inspected all the changes in 11.00.0000 and 11.01.0000 versions and found out that this behaviour is caused by the following commit:
1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
So, in this case I see that configure script generates config.h file with defined SIZEOF_LONG_INT: #define SIZEOF_LONG_INT 0,
Could you please send me config.h ?
regards,
Hiroshi Inoue
while odcb_config --header says:
#define SIZEOF_LONG_INT 8
So, in regard to this situation I have some questions.
Unfortunately there is not enough information. So what was the aim of this commit? 1086a6 2018-05-23 | Call AC_CHECK_SIZEOF(long int) in configure.ac and always place config.h before sql....h. Due to this change, sqltypes.h of unixODBC can recognize SIZEOF_LONG_INT used in psqlodbc driver. [Hiroshi Inoue]
Did anybody face this issue? (No memory available to store statement *** PostgreSQL SQLSTATE = HY001 )
What do I do wrong? How to resolve this issue?
Best regards,
Andrei Yahorau
ウイルス フリー。 www.avg.com |
Attachment
I found a possible approach to overcome this issue.
It is necessary to explicitly specify the path to libpq.so library within LD_LIBRARY_PATH environment variable before running the configure command.
In this case conftest program finds the desired libpq and in this case the generated config.h file contains proper defines:
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
/* The size of `long int', as computed by sizeof. */
#define SIZEOF_LONG_INT 8
/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 8
Thank You so much for your help!
Best regards,
Andrei Yahorau