summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2000-02-07 23:10:11 +0000
committerPeter Eisentraut <peter_e@gmx.net>2000-02-07 23:10:11 +0000
commit9ceb5d8a7bfc4a6315f37913afb5f3d6cefa651f (patch)
treecfe54170ff754e064955bb00be586a5b26ab7db3 /src/interfaces/libpq
parent4842ef86247a323de9ec25e799d756c320222fe0 (diff)
downloadpostgresql-9ceb5d8a7bfc4a6315f37913afb5f3d6cefa651f.tar.gz
Fixed psql double quoting of SQL ids
Fixed libpq printing functions
Diffstat (limited to 'src/interfaces/libpq')
-rw-r--r--src/interfaces/libpq/fe-auth.c6
-rw-r--r--src/interfaces/libpq/fe-connect.c19
-rw-r--r--src/interfaces/libpq/fe-exec.c26
-rw-r--r--src/interfaces/libpq/fe-lobj.c4
-rw-r--r--src/interfaces/libpq/fe-misc.c4
-rw-r--r--src/interfaces/libpq/fe-print.c21
-rw-r--r--src/interfaces/libpq/libpq-fe.h55
-rw-r--r--src/interfaces/libpq/libpq-int.h7
-rw-r--r--src/interfaces/libpq/pqexpbuffer.c16
-rw-r--r--src/interfaces/libpq/pqexpbuffer.h10
-rw-r--r--src/interfaces/libpq/win32.h4
11 files changed, 96 insertions, 76 deletions
diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c
index 96589497d3..7a3bff45e9 100644
--- a/src/interfaces/libpq/fe-auth.c
+++ b/src/interfaces/libpq/fe-auth.c
@@ -10,7 +10,7 @@
* exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.36 2000/01/26 05:58:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.37 2000/02/07 23:10:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -474,6 +474,10 @@ int
fe_sendauth(AuthRequest areq, PGconn *conn, const char *hostname,
const char *password, char *PQerrormsg)
{
+#if !defined(KRB4) && !defined(KRB5)
+ (void)hostname; /*not used*/
+#endif
+
switch (areq)
{
case AUTH_REQ_OK:
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 92d32917ef..94bf6bf0b8 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.117 2000/02/05 12:33:22 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.118 2000/02/07 23:10:09 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2291,7 +2291,7 @@ conninfo_free()
}
/* =========== accessor functions for PGconn ========= */
-const char *
+char *
PQdb(const PGconn *conn)
{
if (!conn)
@@ -2299,7 +2299,7 @@ PQdb(const PGconn *conn)
return conn->dbName;
}
-const char *
+char *
PQuser(const PGconn *conn)
{
if (!conn)
@@ -2307,7 +2307,7 @@ PQuser(const PGconn *conn)
return conn->pguser;
}
-const char *
+char *
PQpass(const PGconn *conn)
{
if (!conn)
@@ -2315,7 +2315,7 @@ PQpass(const PGconn *conn)
return conn->pgpass;
}
-const char *
+char *
PQhost(const PGconn *conn)
{
if (!conn)
@@ -2323,7 +2323,7 @@ PQhost(const PGconn *conn)
return conn->pghost;
}
-const char *
+char *
PQport(const PGconn *conn)
{
if (!conn)
@@ -2331,7 +2331,7 @@ PQport(const PGconn *conn)
return conn->pgport;
}
-const char *
+char *
PQtty(const PGconn *conn)
{
if (!conn)
@@ -2339,7 +2339,7 @@ PQtty(const PGconn *conn)
return conn->pgtty;
}
-const char *
+char *
PQoptions(const PGconn *conn)
{
if (!conn)
@@ -2355,7 +2355,7 @@ PQstatus(const PGconn *conn)
return conn->status;
}
-const char *
+char *
PQerrorMessage(const PGconn *conn)
{
static char noConn[] = "PQerrorMessage: conn pointer is NULL\n";
@@ -2478,6 +2478,7 @@ PQsetNoticeProcessor(PGconn *conn, PQnoticeProcessor proc, void *arg)
static void
defaultNoticeProcessor(void *arg, const char *message)
{
+ (void)arg; /*not used*/
/* Note: we expect the supplied string to end with a newline already. */
fprintf(stderr, "%s", message);
}
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index 406ab49903..8bba82e788 100644
--- a/src/interfaces/libpq/fe-exec.c
+++ b/src/interfaces/libpq/fe-exec.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.89 2000/01/26 05:58:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.90 2000/02/07 23:10:10 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,7 +27,7 @@
#endif
/* keep this in same order as ExecStatusType in libpq-fe.h */
-const char *const pgresStatus[] = {
+char * const pgresStatus[] = {
"PGRES_EMPTY_QUERY",
"PGRES_COMMAND_OK",
"PGRES_TUPLES_OK",
@@ -1760,15 +1760,15 @@ PQresultStatus(const PGresult *res)
return res->resultStatus;
}
-const char *
+char *
PQresStatus(ExecStatusType status)
{
- if ((int)status < 0 || (size_t)status >= sizeof pgresStatus / sizeof pgresStatus[0])
+ if (status < 0 || status >= sizeof pgresStatus / sizeof pgresStatus[0])
return "Invalid ExecStatusType code";
return pgresStatus[status];
}
-const char *
+char *
PQresultErrorMessage(const PGresult *res)
{
if (!res || !res->errMsg)
@@ -1862,7 +1862,7 @@ check_tuple_field_number(const char *routineName, const PGresult *res,
/*
returns NULL if the field_num is invalid
*/
-const char *
+char *
PQfname(const PGresult *res, int field_num)
{
if (!check_field_number("PQfname", res, field_num))
@@ -1947,8 +1947,8 @@ PQfmod(const PGresult *res, int field_num)
return 0;
}
-const char *
-PQcmdStatus(const PGresult *res)
+char *
+PQcmdStatus(PGresult *res)
{
if (!res)
return NULL;
@@ -1960,7 +1960,7 @@ PQcmdStatus(const PGresult *res)
if the last command was an INSERT, return the oid string
if not, return ""
*/
-const char *
+char *
PQoidStatus(const PGresult *res)
{
/*
@@ -2011,8 +2011,8 @@ PQoidValue(const PGresult *res)
if the last command was an INSERT/UPDATE/DELETE, return number
of inserted/affected tuples, if not, return ""
*/
-const char *
-PQcmdTuples(const PGresult *res)
+char *
+PQcmdTuples(PGresult *res)
{
char noticeBuf[128];
@@ -2023,7 +2023,7 @@ PQcmdTuples(const PGresult *res)
strncmp(res->cmdStatus, "DELETE", 6) == 0 ||
strncmp(res->cmdStatus, "UPDATE", 6) == 0)
{
- const char *p = res->cmdStatus + 6;
+ char *p = res->cmdStatus + 6;
if (*p == 0)
{
@@ -2067,7 +2067,7 @@ PQcmdTuples(const PGresult *res)
if res is not binary, a null-terminated ASCII string is returned.
*/
-const char *
+char *
PQgetvalue(const PGresult *res, int tup_num, int field_num)
{
if (!check_tuple_field_number("PQgetvalue", res, tup_num, field_num))
diff --git a/src/interfaces/libpq/fe-lobj.c b/src/interfaces/libpq/fe-lobj.c
index e31b66a28b..6a7fd71f44 100644
--- a/src/interfaces/libpq/fe-lobj.c
+++ b/src/interfaces/libpq/fe-lobj.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-lobj.c,v 1.27 2000/01/26 05:58:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-lobj.c,v 1.28 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -168,7 +168,7 @@ lo_read(PGconn *conn, int fd, char *buf, size_t len)
*
*/
int
-lo_write(PGconn *conn, int fd, const char *buf, size_t len)
+lo_write(PGconn *conn, int fd, char *buf, size_t len)
{
PQArgBlock argv[2];
PGresult *res;
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index ff6acefea8..d171c457d9 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -25,7 +25,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.38 2000/01/29 16:58:51 petere Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.39 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -782,6 +782,8 @@ PQenv2encoding(void)
int
PQmblen(const unsigned char *s, int encoding)
{
+ (void)s;
+ (void)encoding;
return 1;
}
int
diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c
index e54167cc1f..3b9102d4d8 100644
--- a/src/interfaces/libpq/fe-print.c
+++ b/src/interfaces/libpq/fe-print.c
@@ -10,7 +10,7 @@
* didn't really belong there.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.34 2000/02/05 12:33:22 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.35 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -59,7 +59,7 @@ static char *do_header(FILE *fout, const PQprintOpt *po, const int nFields,
static void output_row(FILE *fout, const PQprintOpt *po, const int nFields, char **fields,
unsigned char *fieldNotNum, int *fieldMax, char *border,
const int row_index);
-
+static void fill(int length, int max, char filler, FILE *fp);
/*
* PQprint()
@@ -440,7 +440,6 @@ do_header(FILE *fout, const PQprintOpt *po, const int nFields, int *fieldMax,
fputs("<tr>", fout);
else
{
- int j; /* for loop index */
int tot = 0;
int n = 0;
char *p = NULL;
@@ -557,7 +556,6 @@ output_row(FILE *fout, const PQprintOpt *po, const int nFields, char **fields,
-#if 0
/*
* really old printing routines
*/
@@ -728,4 +726,17 @@ PQprintTuples(const PGresult *res,
}
}
}
-#endif
+
+
+
+/* simply send out max-length number of filler characters to fp */
+
+static void
+fill(int length, int max, char filler, FILE *fp)
+{
+ int count;
+
+ count = max - length;
+ while (count-- >= 0)
+ putc(filler, fp);
+}
diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h
index 8acb622ad1..66437a903f 100644
--- a/src/interfaces/libpq/libpq-fe.h
+++ b/src/interfaces/libpq/libpq-fe.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-fe.h,v 1.59 2000/02/05 12:33:22 ishii Exp $
+ * $Id: libpq-fe.h,v 1.60 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -74,11 +74,6 @@ extern "C"
PGRES_FATAL_ERROR
} ExecStatusType;
-/* String descriptions of the ExecStatusTypes.
- * NB: direct use of this array is now deprecated; call PQresStatus() instead.
- */
- extern const char *const pgresStatus[];
-
/* PGconn encapsulates a connection to the backend.
* The contents of this struct are not supposed to be known to applications.
*/
@@ -115,16 +110,17 @@ extern "C"
typedef void (*PQnoticeProcessor) (void *arg, const char *message);
/* Print options for PQprint() */
+ typedef char pqbool;
typedef struct _PQprintOpt
{
- int header; /* print output field headings and row
+ pqbool header; /* print output field headings and row
* count */
- int align; /* fill align the fields */
- int standard; /* old brain dead format */
- int html3; /* output html tables */
- int expanded; /* expand tables */
- int pager; /* use pager for output if needed */
+ pqbool align; /* fill align the fields */
+ pqbool standard; /* old brain dead format */
+ pqbool html3; /* output html tables */
+ pqbool expanded; /* expand tables */
+ pqbool pager; /* use pager for output if needed */
char *fieldSep; /* field separator */
char *tableOpt; /* insert to HTML <table ...> */
char *caption; /* HTML <caption> */
@@ -207,15 +203,15 @@ extern "C"
extern int PQrequestCancel(PGconn *conn);
/* Accessor functions for PGconn objects */
- extern const char *PQdb(const PGconn *conn);
- extern const char *PQuser(const PGconn *conn);
- extern const char *PQpass(const PGconn *conn);
- extern const char *PQhost(const PGconn *conn);
- extern const char *PQport(const PGconn *conn);
- extern const char *PQtty(const PGconn *conn);
- extern const char *PQoptions(const PGconn *conn);
+ extern char *PQdb(const PGconn *conn);
+ extern char *PQuser(const PGconn *conn);
+ extern char *PQpass(const PGconn *conn);
+ extern char *PQhost(const PGconn *conn);
+ extern char *PQport(const PGconn *conn);
+ extern char *PQtty(const PGconn *conn);
+ extern char *PQoptions(const PGconn *conn);
extern ConnStatusType PQstatus(const PGconn *conn);
- extern const char *PQerrorMessage(const PGconn *conn);
+ extern char *PQerrorMessage(const PGconn *conn);
extern int PQsocket(const PGconn *conn);
extern int PQbackendPID(const PGconn *conn);
extern int PQclientEncoding(const PGconn *conn);
@@ -279,21 +275,21 @@ extern "C"
/* Accessor functions for PGresult objects */
extern ExecStatusType PQresultStatus(const PGresult *res);
- extern const char *PQresStatus(ExecStatusType status);
- extern const char *PQresultErrorMessage(const PGresult *res);
+ extern char *PQresStatus(ExecStatusType status);
+ extern char *PQresultErrorMessage(const PGresult *res);
extern int PQntuples(const PGresult *res);
extern int PQnfields(const PGresult *res);
extern int PQbinaryTuples(const PGresult *res);
- extern const char *PQfname(const PGresult *res, int field_num);
+ extern char *PQfname(const PGresult *res, int field_num);
extern int PQfnumber(const PGresult *res, const char *field_name);
extern Oid PQftype(const PGresult *res, int field_num);
extern int PQfsize(const PGresult *res, int field_num);
extern int PQfmod(const PGresult *res, int field_num);
- extern const char *PQcmdStatus(const PGresult *res);
- extern const char *PQoidStatus(const PGresult *res); /* old and ugly */
+ extern char *PQcmdStatus(PGresult *res);
+ extern char *PQoidStatus(const PGresult *res); /* old and ugly */
extern Oid PQoidValue(const PGresult *res); /* new and improved */
- extern const char *PQcmdTuples(const PGresult *res);
- extern const char *PQgetvalue(const PGresult *res, int tup_num, int field_num);
+ extern char *PQcmdTuples(PGresult *res);
+ extern char *PQgetvalue(const PGresult *res, int tup_num, int field_num);
extern int PQgetlength(const PGresult *res, int tup_num, int field_num);
extern int PQgetisnull(const PGresult *res, int tup_num, int field_num);
@@ -313,7 +309,6 @@ extern "C"
const PGresult *res,
const PQprintOpt *ps); /* option structure */
-#if 0
/*
* really old printing routines
*/
@@ -330,7 +325,7 @@ extern "C"
int terseOutput, /* delimiter bars */
int width); /* width of column, if
* 0, use variable width */
-#endif
+
/* === in fe-lobj.c === */
@@ -338,7 +333,7 @@ extern "C"
extern int lo_open(PGconn *conn, Oid lobjId, int mode);
extern int lo_close(PGconn *conn, int fd);
extern int lo_read(PGconn *conn, int fd, char *buf, size_t len);
- extern int lo_write(PGconn *conn, int fd, const char *buf, size_t len);
+ extern int lo_write(PGconn *conn, int fd, char *buf, size_t len);
extern int lo_lseek(PGconn *conn, int fd, int offset, int whence);
extern Oid lo_creat(PGconn *conn, int mode);
extern int lo_tell(PGconn *conn, int fd);
diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h
index bb6f193bfe..16555d9885 100644
--- a/src/interfaces/libpq/libpq-int.h
+++ b/src/interfaces/libpq/libpq-int.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-int.h,v 1.18 2000/01/26 05:58:46 momjian Exp $
+ * $Id: libpq-int.h,v 1.19 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -244,6 +244,11 @@ struct pg_conn
int client_encoding; /* encoding id */
};
+/* String descriptions of the ExecStatusTypes.
+ * direct use of this array is deprecated; call PQresStatus() instead.
+ */
+extern char *const pgresStatus[];
+
/* ----------------
* Internal functions of libpq
* Functions declared here need to be visible across files of libpq,
diff --git a/src/interfaces/libpq/pqexpbuffer.c b/src/interfaces/libpq/pqexpbuffer.c
index dc006e55c8..f70d9139c2 100644
--- a/src/interfaces/libpq/pqexpbuffer.c
+++ b/src/interfaces/libpq/pqexpbuffer.c
@@ -17,7 +17,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/pqexpbuffer.c,v 1.4 2000/01/26 05:58:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/pqexpbuffer.c,v 1.5 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -124,9 +124,9 @@ resetPQExpBuffer(PQExpBuffer str)
* Returns 1 if OK, 0 if failed to enlarge buffer.
*/
int
-enlargePQExpBuffer(PQExpBuffer str, int needed)
+enlargePQExpBuffer(PQExpBuffer str, size_t needed)
{
- int newlen;
+ size_t newlen;
char *newdata;
needed += str->len + 1; /* total space required now */
@@ -164,8 +164,8 @@ void
printfPQExpBuffer(PQExpBuffer str, const char *fmt,...)
{
va_list args;
- int avail,
- nprinted;
+ size_t avail;
+ int nprinted;
resetPQExpBuffer(str);
@@ -214,8 +214,8 @@ void
appendPQExpBuffer(PQExpBuffer str, const char *fmt,...)
{
va_list args;
- int avail,
- nprinted;
+ size_t avail;
+ int nprinted;
for (;;)
{
@@ -286,7 +286,7 @@ appendPQExpBufferChar(PQExpBuffer str, char ch)
* if necessary.
*/
void
-appendBinaryPQExpBuffer(PQExpBuffer str, const char *data, int datalen)
+appendBinaryPQExpBuffer(PQExpBuffer str, const char *data, size_t datalen)
{
/* Make more room if needed */
if (! enlargePQExpBuffer(str, datalen))
diff --git a/src/interfaces/libpq/pqexpbuffer.h b/src/interfaces/libpq/pqexpbuffer.h
index b70170d61a..014254465a 100644
--- a/src/interfaces/libpq/pqexpbuffer.h
+++ b/src/interfaces/libpq/pqexpbuffer.h
@@ -18,7 +18,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pqexpbuffer.h,v 1.3 2000/01/26 05:58:46 momjian Exp $
+ * $Id: pqexpbuffer.h,v 1.4 2000/02/07 23:10:11 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -40,8 +40,8 @@
typedef struct PQExpBufferData
{
char *data;
- int len;
- int maxlen;
+ size_t len;
+ size_t maxlen;
} PQExpBufferData;
typedef PQExpBufferData *PQExpBuffer;
@@ -113,7 +113,7 @@ extern void resetPQExpBuffer(PQExpBuffer str);
*
* Returns 1 if OK, 0 if failed to enlarge buffer.
*/
-extern int enlargePQExpBuffer(PQExpBuffer str, int needed);
+extern int enlargePQExpBuffer(PQExpBuffer str, size_t needed);
/*------------------------
* printfPQExpBuffer
@@ -153,6 +153,6 @@ extern void appendPQExpBufferChar(PQExpBuffer str, char ch);
* if necessary.
*/
extern void appendBinaryPQExpBuffer(PQExpBuffer str,
- const char *data, int datalen);
+ const char *data, size_t datalen);
#endif /* PQEXPBUFFER_H */
diff --git a/src/interfaces/libpq/win32.h b/src/interfaces/libpq/win32.h
index 6988bcd98f..91f7df1a2d 100644
--- a/src/interfaces/libpq/win32.h
+++ b/src/interfaces/libpq/win32.h
@@ -11,9 +11,11 @@
* Some compat functions
*/
#define open(a,b,c) _open(a,b,c)
+#define close(a) _close(a)
#define read(a,b,c) _read(a,b,c)
#define write(a,b,c) _write(a,b,c)
-
+#define popen(a,b) _popen(a,b)
+#define pclose(a) _pclose(a)
/*
* crypt not available (yet)