libpq++ update

From: Tom Vijlbrief <tom(dot)vijlbrief(at)knoware(dot)nl>
To: pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>, pgsql-patches <pgsql-patches(at)postgresql(dot)org>
Subject: libpq++ update
Date: 2000-04-20 15:11:22
Message-ID: 38FF1E1A.292C7ED@knoware.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-patches

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name : Tom Vijlbrief
Your email address : tom(dot)vijlbrief(at)knoware(dot)nl


System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel PII

Operating System (example: Linux 2.0.26 ELF) : Linux 2.3.51

PostgreSQL version (example: PostgreSQL-6.5.3): PostgreSQL-6.5.3

Compiler used (example: gcc 2.8.0) : egcs-2.91.66


Please enter a FULL description of your problem:

libpq++ leaks file descriptors and memory.

The constructor of PgConnection leaks a file everytime it is called.
Also DEBUG is on by default.

In addition the header file libpq++.H is insane. It contains
outdated copies of the header files (pglobject.h and the others).

The libpq++.H declares a smaller PgLargeObject (without class member
variables) then the PgLargeObject in pglobject.h.
This is the reason that examples/testlo crashes !

I fixed the header classes and memory/file leakage. I also added
header file PostgresDatabase.h which contains a new implementation
with exception handling, cursors and transactions. Look at
examples/testexcep.cc for the usage. The C++ interface is still
compatible with the old version.


Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
Running the next program, it crashes after approx. 1000 iterations
(depending on configuration of OS)


#include <libpq++.H>

#include <iostream>

int main()
{
for (int i= 0; i < 10000; i++) {
cerr << i << endl;
PgConnection("");
}
}


Running examples/testlo crashes with a damaged stack.


If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

change 'FILE * debug' from a local var to a static var in
pgconnection.cc.

I added a tar containing a new version of the src/interfaces/libpq++
directory
because many files (source, headers, README, TODO, CHANGES) are
changed.

Attachment Content-Type Size
libpq++.tar.gz application/octet-stream 16.0 KB

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2000-04-20 15:44:50 Re: libpq++ update
Previous Message Tom Lane 2000-04-20 14:40:53 Re: [HACKERS] Re: Join/table alias bug

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2000-04-20 15:44:50 Re: libpq++ update
Previous Message Andriy I Pilipenko 2000-04-19 09:21:48 Locale bug