psqlodbc: No memory available to store statement

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

psqlodbc: No memory available to store statement

AYahorau
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,
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
Reply | Threaded
Open this post in threaded view
|

Re: psqlodbc: No memory available to store statement

Inoue, Hiroshi-2

Hi Andrei,

On 2019/06/25 21:28, [hidden email] 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
Reply | Threaded
Open this post in threaded view
|

Re: psqlodbc: No memory available to store statement

AYahorau
Hello,
I attached  config.h, generated after configure command:





 Best regards,
 Andrei Yahorau



From:        "Inoue, Hiroshi" <[hidden email]>
To:        [hidden email],
Cc:        [hidden email]
Date:        26/06/2019 23:43
Subject:        Re: psqlodbc: No memory available to store statement




Hi Andrei,

On 2019/06/25 21:28, AYahorau@... 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


config.zip (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: psqlodbc: No memory available to store statement

Inoue, Hiroshi-2
Hi Andrei,

On 2019/06/28 1:55, [hidden email] 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" [hidden email]
To:        [hidden email],
Cc:        [hidden email]
Date:        26/06/2019 23:43
Subject:        Re: psqlodbc: No memory available to store statement




Hi Andrei,

On 2019/06/25 21:28, [hidden email] 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
Reply | Threaded
Open this post in threaded view
|

Re: psqlodbc: No memory available to store statement

AYahorau
Hello Hiroshi,

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" <[hidden email]>
To:        [hidden email],
Cc:        [hidden email], [hidden email]
Date:        28/06/2019 03:49
Subject:        Re: psqlodbc: No memory available to store statement




Hi Andrei,

On 2019/06/28 1:55, AYahorau@... 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" [hidden email]
To:        
AYahorau@...,
Cc:        
[hidden email]
Date:        
26/06/2019 23:43
Subject:        
Re: psqlodbc: No memory available to store statement




Hi Andrei,

On 2019/06/25 21:28, AYahorau@... 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



without_unixodbc.zip (16K) Download Attachment
with_unixodbc.zip (16K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: psqlodbc: No memory available to store statement

AYahorau
In reply to this post by AYahorau
Hello Hiroshi,

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