use of PQconnectdb and PQfinish in a shared library - Mailing list pgsql-general

From Alex Sandini
Subject use of PQconnectdb and PQfinish in a shared library
Date
Msg-id 3DBD3BF9.70607@keyware.com
Whole thread Raw
List pgsql-general
Sorry if this message appears twice, i'have just suscribed

Hi all,
Using PQconnectdb and PQfinish each time a function is called from a
client, the function run well the first time is invoqued, but fails on
any subsequent call, at the first PQexec call, with respective kill -9
of the child process on the server.

The database opened within the functions is the same from where the
function is called, i.e., select any_function('kk;, 2);

To get it working, i've done something like:

static bool bfirsttime = false;
int4 any_function (text buf, int4 num )
{
    if( !bfirsttime ) {
        dbconn = PQconnectdb( conninfo );
        bfirsttime = true;
    }

    /* code... */

    /* dont close db in library */
    /* PQfinish( dbconn ); */
    return( 0 );
}

Hum, the connection is never closed, it should be possible to do it in a
cleaner way...
Does something like:
memcpy( dbconn, CURRENT_DATABASE, sizeof( dbconn ) ); exists?

Any hint?

Thx,
Alex


pgsql-general by date:

Previous
From: markus.cl@gmx.de (Markus Dehmann)
Date:
Subject: Why does postgres seach in ALL lines (not optimal!)
Next
From: Christoph Dalitz
Date:
Subject: Re: supplying password to psql on command line?