If on one is has outstanding libpq++ patches, I will run libpq++ through
my new tools src/tools/pgindent/pgcppindent. It uses astyle. I can
also wait for 7.3 beta and run it then.
---------------------------------------------------------------------------
Neil Conway wrote:
> On Wed, 12 Jun 2002 20:29:21 +0200
> "Jeroen T. Vermeulen" <[EMAIL PROTECTED]> wrote:
> > I think libpqxx, the alternative to libpq++, is just about ready for
> > prime time.
>
> Great -- I like libpqxx a lot, and I'd like to see it in 7.3. We should
> also probably keep libpq++ around for backward compatibility, but I
> suppose we can stop distributing it eventually.
>
> > That means integrating it with the main source tree, I
> > suppose, but I have no idea where to start--particularly because libpqxx
> > has its own configure setup.
>
> I took a brief look at libpqxx's configure setup and ISTM that you won't
> need to do a lot of work to integrate it into the PostgreSQL build system.
> Users won't need to specify '--with-postgres' anymore, and the rest of the
> configure options look pretty standard (gnu-ld, pic, etc.)
>
> Is there a reason for keeping '--enable-postgres-dialect', when libpqxx
> is distributed with PostgreSQL?
>
> Otherwise, if you put the code into src/interfaces/libpqxx and modify
> the PostgreSQL build system to be aware of it (as well as removing
> libpqxx's autoconf stuff), it shouldn't be too difficult.
>
> Cheers,
>
> Neil
>
> --
> Neil Conway <[EMAIL PROTECTED]>
> PGP Key ID: DB3C29FC
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
--
Bruce Momjian | http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Index: pgconnection.cc
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq++/pgconnection.cc,v
retrieving revision 1.14
diff -c -r1.14 pgconnection.cc
*** pgconnection.cc 15 Jun 2002 18:49:29 -0000 1.14
--- pgconnection.cc 15 Jun 2002 19:05:11 -0000
***************
*** 1,19 ****
/*-------------------------------------------------------------------------
! *
! * FILE
! * pgconnection.cc
! *
! * DESCRIPTION
! * implementation of the PgConnection class.
! * PgConnection encapsulates a frontend to backend connection
! *
! * Copyright (c) 1994, Regents of the University of California
! *
! * IDENTIFICATION
! * $Header: /cvsroot/pgsql/src/interfaces/libpq++/pgconnection.cc,v 1.14
2002/06/15 18:49:29 momjian Exp $
! *
! *-------------------------------------------------------------------------
! */
#include "pgconnection.h"
--- 1,19 ----
/*-------------------------------------------------------------------------
! *
! * FILE
! * pgconnection.cc
! *
! * DESCRIPTION
! * implementation of the PgConnection class.
! * PgConnection encapsulates a frontend to backend connection
! *
! * Copyright (c) 1994, Regents of the University of California
! *
! * IDENTIFICATION
! * $Header: /cvsroot/pgsql/src/interfaces/libpq++/pgconnection.cc,v 1.14
2002/06/15 18:49:29 momjian Exp $
! *
! *-------------------------------------------------------------------------
! */
#include "pgconnection.h"
***************
*** 28,71 ****
// ****************************************************************
// default constructor -- initialize everything
PgConnection::PgConnection()
! : pgConn(NULL), pgResult(NULL), pgCloseConnection(false)
{}
// constructor -- checks environment variable for database name
// Now uses PQconnectdb
PgConnection::PgConnection(const char* conninfo)
! : pgConn(NULL), pgResult(NULL), pgCloseConnection(true)
{
! // Connect to the database
! Connect(conninfo);
}
// destructor - closes down the connection and cleanup
PgConnection::~PgConnection()
{
! // Close the connection only if needed
! // This feature will most probably be used by the derived classes that
! // need not close the connection after they are destructed.
! CloseConnection();
}
// PgConnection::CloseConnection()
// close down the connection if there is one
! void PgConnection::CloseConnection()
{
! // if the connection is open, close it first
! if (pgCloseConnection) {
! if (pgResult)
! PQclear(pgResult);
! pgResult = NULL;
! if (pgConn)
! PQfinish(pgConn);
! pgConn = NULL;
! pgCloseConnection = false;
! }
}
--- 28,73 ----
// ****************************************************************
// default constructor -- initialize everything
PgConnection::PgConnection()
! : pgConn(NULL), pgResult(NULL), pgCloseConnection(false)
{}
// constructor -- checks environment variable for database name
// Now uses PQconnectdb
+
PgConnection::PgConnection(const char* conninfo)
! : pgConn(NULL), pgResult(NULL), pgCloseConnection(true)
{
! // Connect to the database
! Connect(conninfo);
}
// destructor - closes down the connection and cleanup
PgConnection::~PgConnection()
{
! // Close the connection only if needed
! // This feature will most probably be used by the derived classes that
! // need not close the connection after they are destructed.
! CloseConnection();
}
// PgConnection::CloseConnection()
// close down the connection if there is one
! void PgConnection::CloseConnection()
{
! // if the connection is open, close it first
! if (pgCloseConnection)
! {
! if (pgResult)
! PQclear(pgResult);
! pgResult = NULL;
! if (pgConn)
! PQfinish(pgConn);
! pgConn = NULL;
! pgCloseConnection = false;
! }
}
***************
*** 73,112 ****
// establish a connection to a backend
ConnStatusType PgConnection::Connect(const char conninfo[])
{
! // if the connection is open, close it first
! CloseConnection();
! // Connect to the database
! pgConn = PQconnectdb(conninfo);
! // Now we have a connection we must close (even if it's bad!)
! pgCloseConnection = true;
!
! // Status will return either CONNECTION_OK or CONNECTION_BAD
! return Status();
}
// PgConnection::status -- return connection or result status
ConnStatusType PgConnection::Status() const
{
! return PQstatus(pgConn);
}
// PgConnection::exec -- send a query to the backend
ExecStatusType PgConnection::Exec(const char* query)
{
! // Clear the result stucture if needed
! if (pgResult)
! PQclear(pgResult);
!
! // Execute the given query
! pgResult = PQexec(pgConn, query);
!
! // Return the status
! if (pgResult)
! return PQresultStatus(pgResult);
! else
! return PGRES_FATAL_ERROR;
}
// Return true if the Postgres command was executed OK
--- 75,114 ----
// establish a connection to a backend
ConnStatusType PgConnection::Connect(const char conninfo[])
{
! // if the connection is open, close it first
! CloseConnection();
!
! // Connect to the database
! pgConn = PQconnectdb(conninfo);
! // Now we have a connection we must close (even if it's bad!)
! pgCloseConnection = true;
! // Status will return either CONNECTION_OK or CONNECTION_BAD
! return Status();
}
// PgConnection::status -- return connection or result status
ConnStatusType PgConnection::Status() const
{
! return PQstatus(pgConn);
}
// PgConnection::exec -- send a query to the backend
ExecStatusType PgConnection::Exec(const char* query)
{
! // Clear the result stucture if needed
! if (pgResult)
! PQclear(pgResult);
!
! // Execute the given query
! pgResult = PQexec(pgConn, query);
!
! // Return the status
! if (pgResult)
! return PQresultStatus(pgResult);
! else
! return PGRES_FATAL_ERROR;
}
// Return true if the Postgres command was executed OK
***************
*** 125,158 ****
// PgConnection::notifies() -- returns a notification from a list of unhandled
notifications
PGnotify* PgConnection::Notifies()
{
! return PQnotifies(pgConn);
}
// From Integer To String Conversion Function
string PgConnection::IntToString(int n)
{
! char buffer [4*sizeof(n) + 2];
! sprintf(buffer, "%d", n);
! return buffer;
}
bool PgConnection::ConnectionBad() const
! {
! return Status() == CONNECTION_BAD;
}
const char* PgConnection::ErrorMessage() const
! {
! return (const char *)PQerrorMessage(pgConn);
}
!
const char* PgConnection::DBName() const
! {
! return (const char *)PQdb(pgConn);
}
PQnoticeProcessor PgConnection::SetNoticeProcessor(PQnoticeProcessor proc, void *arg)
{
! return PQsetNoticeProcessor(pgConn, proc, arg);
}
--- 127,160 ----
// PgConnection::notifies() -- returns a notification from a list of unhandled
notifications
PGnotify* PgConnection::Notifies()
{
! return PQnotifies(pgConn);
}
// From Integer To String Conversion Function
string PgConnection::IntToString(int n)
{
! char buffer [4*sizeof(n) + 2];
! sprintf(buffer, "%d", n);
! return buffer;
}
bool PgConnection::ConnectionBad() const
! {
! return Status() == CONNECTION_BAD;
}
const char* PgConnection::ErrorMessage() const
! {
! return (const char *)PQerrorMessage(pgConn);
}
!
const char* PgConnection::DBName() const
! {
! return (const char *)PQdb(pgConn);
}
PQnoticeProcessor PgConnection::SetNoticeProcessor(PQnoticeProcessor proc, void *arg)
{
! return PQsetNoticeProcessor(pgConn, proc, arg);
}
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]