Обсуждение: psqlodbc: No memory available to store statement

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

psqlodbc: No memory available to store statement

От
AYahorau@ibagroup.eu
Дата:
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

Re: psqlodbc: No memory available to store statement

От
"Inoue, Hiroshi"
Дата:

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

Re: psqlodbc: No memory available to store statement

От
AYahorau@ibagroup.eu
Дата:
Hello,
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

Вложения

Re: psqlodbc: No memory available to store statement

От
"Inoue, Hiroshi"
Дата:
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

Re: psqlodbc: No memory available to store statement

От
AYahorau@ibagroup.eu
Дата:
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" <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


Вложения

Re: psqlodbc: No memory available to store statement

От
AYahorau@ibagroup.eu
Дата:
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