Patches for libpq++
| От | J. T. Vermeulen |
|---|---|
| Тема | Patches for libpq++ |
| Дата | |
| Msg-id | 20010221185501.D16178@cistron.nl обсуждение исходный текст |
| Ответы |
Re: Patches for libpq++
Re: Patches for libpq++ |
| Список | pgsql-interfaces |
I'd like to suggest the following changes to bring libpq++ a bit more up to
date:
- fixes include path in Makefile- makes some member functions const- flags (but does not fix) what looks like a memory
leakand a warning- changes int return type on ConnectionBad() to bool
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/examples/Makefile
postgresql-7.0.3-jtv/src/interfaces/libpq++/examples/Makefile
--- postgresql-7.0.3/src/interfaces/libpq++/examples/Makefile Thu Mar 2 03:00:59 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/examples/Makefile Wed Feb 21 16:16:14 2001
@@ -4,7 +4,8 @@LIBNAME= libpq++
-HEADERDIR= /usr/local/pgsql/include
+#HEADERDIR= /usr/local/pgsql/include
+HEADERDIR=/usr/include/postgresqlLIBPQDIR= /usr/local/pgsql/lib
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/pgconnection.cc
postgresql-7.0.3-jtv/src/interfaces/libpq++/pgconnection.cc
--- postgresql-7.0.3/src/interfaces/libpq++/pgconnection.cc Sun Apr 23 00:39:15 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/pgconnection.cc Wed Feb 21 17:16:51 2001
@@ -67,7 +67,7 @@}// PgConnection::status -- return connection or result status
-ConnStatusType PgConnection::Status()
+ConnStatusType PgConnection::Status() const{ return PQstatus(pgConn);}
@@ -123,19 +123,19 @@
-int PgConnection::ConnectionBad()
+bool PgConnection::ConnectionBad() const{ return Status() == CONNECTION_BAD; }
-const char* PgConnection::ErrorMessage()
+const char* PgConnection::ErrorMessage() const{ return (const char *)PQerrorMessage(pgConn); }
-const char* PgConnection::DBName()
+const char* PgConnection::DBName() const{ return (const char *)PQdb(pgConn); }
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/pgconnection.h
postgresql-7.0.3-jtv/src/interfaces/libpq++/pgconnection.h
--- postgresql-7.0.3/src/interfaces/libpq++/pgconnection.h Sun Apr 23 00:39:15 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/pgconnection.h Wed Feb 21 17:17:13 2001
@@ -66,12 +66,12 @@ virtual ~PgConnection(); // close connection and clean up // Connection status
anderror messages
- ConnStatusType Status();
- int ConnectionBad();
- const char* ErrorMessage();
+ ConnStatusType Status() const;
+ bool ConnectionBad() const;
+ const char* ErrorMessage() const; // returns the database name of the connection
- const char* DBName();
+ const char* DBName() const; // Query Execution interface ExecStatusType Exec(const char* query); // send a
queryto the backend
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/pgdatabase.cc
postgresql-7.0.3-jtv/src/interfaces/libpq++/pgdatabase.cc
--- postgresql-7.0.3/src/interfaces/libpq++/pgdatabase.cc Sat Jan 29 17:58:52 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/pgdatabase.cc Wed Feb 21 17:41:51 2001
@@ -45,6 +45,8 @@ po.align = width;
+ // TODO: Looks like memory leak
+ // TODO: Looks like PQprintOpt::fieldSep should be const char * if(terseOutput) po.fieldSep = strdup("|");
elsepo.fieldSep = "";
@@ -150,15 +152,15 @@}
-int PgDatabase::GetLine(char* string, int length)
+int PgDatabase::GetLine(char str[], int length){
-return PQgetline(pgConn, string, length);
+return PQgetline(pgConn, str, length); }
-void PgDatabase::PutLine(const char* string)
+void PgDatabase::PutLine(const char str[]){
-PQputline(pgConn, string);
+PQputline(pgConn, str); }
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/pgdatabase.h
postgresql-7.0.3-jtv/src/interfaces/libpq++/pgdatabase.h
--- postgresql-7.0.3/src/interfaces/libpq++/pgdatabase.h Sun Apr 23 00:39:15 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/pgdatabase.h Wed Feb 21 17:37:36 2001
@@ -63,8 +63,8 @@ int terseOutput = 0, int width = 0) ; // copy command related access
- int GetLine(char* string, int length);
- void PutLine(const char* string);
+ int GetLine(char str[], int length);
+ void PutLine(const char str[]); const char* OidStatus(); int EndCopy();
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/pglobject.cc
postgresql-7.0.3-jtv/src/interfaces/libpq++/pglobject.cc
--- postgresql-7.0.3/src/interfaces/libpq++/pglobject.cc Sun Apr 23 00:39:15 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/pglobject.cc Wed Feb 21 17:19:56 2001
@@ -142,7 +142,7 @@}
-int PgLargeObject::Tell()
+int PgLargeObject::Tell() const{ return lo_tell(pgConn, pgFd); }
@@ -160,7 +160,7 @@}
-string PgLargeObject::Status()
+string PgLargeObject::Status() const{ return loStatus; }
diff -u -r postgresql-7.0.3/src/interfaces/libpq++/pglobject.h postgresql-7.0.3-jtv/src/interfaces/libpq++/pglobject.h
--- postgresql-7.0.3/src/interfaces/libpq++/pglobject.h Sun Apr 23 00:39:15 2000
+++ postgresql-7.0.3-jtv/src/interfaces/libpq++/pglobject.h Wed Feb 21 17:19:50 2001
@@ -47,12 +47,12 @@ int Read(char* buf, int len); int Write(const char* buf, int len); int LSeek(int offset, int
whence);
- int Tell();
+ int Tell() const; int Unlink(); Oid LOid(); Oid Import(const char* filename); int Export(const char* filename);
- string Status();
+ string Status() const;private:// We don't support copying of PgLargeObject objects,
В списке pgsql-interfaces по дате отправления: