Fix case issues with quotes.
This commit is contained in:
parent
0f367cf8c8
commit
baeb8790ac
src
@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.60 1997/11/07 20:51:47 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.61 1997/11/10 05:10:21 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
*
|
||||
@ -131,8 +131,8 @@ static char *progname = (char *) NULL;
|
||||
*/
|
||||
static char Execfile[MAXPATHLEN] = "";
|
||||
|
||||
static int ServerSock_INET = INVALID_SOCK; /* stream socket server */
|
||||
static int ServerSock_UNIX = INVALID_SOCK; /* stream socket server */
|
||||
static int ServerSock_INET = INVALID_SOCK; /* stream socket server */
|
||||
static int ServerSock_UNIX = INVALID_SOCK; /* stream socket server */
|
||||
|
||||
/*
|
||||
* Set by the -o option
|
||||
@ -149,8 +149,8 @@ static char ExtraOptions[ARGV_SIZE] = "";
|
||||
static int Reinit = 1;
|
||||
static int SendStop = 0;
|
||||
|
||||
static int NetServer = 0; /* if not zero, postmaster listen for
|
||||
non-local connections */
|
||||
static int NetServer = 0; /* if not zero, postmaster listen for
|
||||
* non-local connections */
|
||||
static int MultiplexedBackends = 0;
|
||||
static int MultiplexedBackendPort;
|
||||
|
||||
@ -318,8 +318,8 @@ PostmasterMain(int argc, char *argv[])
|
||||
else
|
||||
DebugLvl = 1;
|
||||
break;
|
||||
case 'i':
|
||||
NetServer = 1;
|
||||
case 'i':
|
||||
NetServer = 1;
|
||||
break;
|
||||
case 'm':
|
||||
MultiplexedBackends = 1;
|
||||
@ -394,15 +394,15 @@ PostmasterMain(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (NetServer)
|
||||
{
|
||||
status = StreamServerPort(hostName, PostPortName, &ServerSock_INET);
|
||||
if (status != STATUS_OK)
|
||||
{
|
||||
fprintf(stderr, "%s: cannot create INET stream port\n",
|
||||
progname);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
{
|
||||
status = StreamServerPort(hostName, PostPortName, &ServerSock_INET);
|
||||
if (status != STATUS_OK)
|
||||
{
|
||||
fprintf(stderr, "%s: cannot create INET stream port\n",
|
||||
progname);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
status = StreamServerPort(NULL, PostPortName, &ServerSock_UNIX);
|
||||
if (status != STATUS_OK)
|
||||
{
|
||||
@ -487,11 +487,13 @@ usage(const char *progname)
|
||||
static int
|
||||
ServerLoop(void)
|
||||
{
|
||||
fd_set rmask, basemask;
|
||||
fd_set rmask,
|
||||
basemask;
|
||||
int nSockets,
|
||||
nSelected,
|
||||
status,
|
||||
oldFd, newFd;
|
||||
oldFd,
|
||||
newFd;
|
||||
Dlelem *next,
|
||||
*curr;
|
||||
|
||||
@ -511,11 +513,11 @@ ServerLoop(void)
|
||||
FD_SET(ServerSock_UNIX, &basemask);
|
||||
nSockets = ServerSock_UNIX;
|
||||
if (ServerSock_INET != INVALID_SOCK)
|
||||
{
|
||||
FD_SET(ServerSock_INET, &basemask);
|
||||
if (ServerSock_INET > ServerSock_UNIX)
|
||||
nSockets = ServerSock_INET;
|
||||
}
|
||||
{
|
||||
FD_SET(ServerSock_INET, &basemask);
|
||||
if (ServerSock_INET > ServerSock_UNIX)
|
||||
nSockets = ServerSock_INET;
|
||||
}
|
||||
nSockets++;
|
||||
|
||||
#ifdef HAVE_SIGPROCMASK
|
||||
@ -563,14 +565,14 @@ ServerLoop(void)
|
||||
|
||||
/* new connection pending on our well-known port's socket */
|
||||
oldFd = -1;
|
||||
if (FD_ISSET(ServerSock_UNIX, &rmask))
|
||||
oldFd = ServerSock_UNIX;
|
||||
else if (ServerSock_INET != INVALID_SOCK &&
|
||||
FD_ISSET(ServerSock_INET, &rmask))
|
||||
oldFd = ServerSock_INET;
|
||||
if (FD_ISSET(ServerSock_UNIX, &rmask))
|
||||
oldFd = ServerSock_UNIX;
|
||||
else if (ServerSock_INET != INVALID_SOCK &&
|
||||
FD_ISSET(ServerSock_INET, &rmask))
|
||||
oldFd = ServerSock_INET;
|
||||
if (oldFd >= 0)
|
||||
{
|
||||
|
||||
|
||||
/*
|
||||
* connect and make an addition to PortList. If the
|
||||
* connection dies and we notice it, just forget about the
|
||||
@ -587,9 +589,9 @@ ServerLoop(void)
|
||||
progname, newFd);
|
||||
}
|
||||
else if (DebugLvl)
|
||||
fprintf(stderr,
|
||||
"%s: ServerLoop: connect failed: (%d) %s\n",
|
||||
progname, errno, strerror(errno));
|
||||
fprintf(stderr,
|
||||
"%s: ServerLoop: connect failed: (%d) %s\n",
|
||||
progname, errno, strerror(errno));
|
||||
--nSelected;
|
||||
FD_CLR(oldFd, &rmask);
|
||||
}
|
||||
@ -823,7 +825,7 @@ ConnStartup(Port *port, int *status,
|
||||
static void
|
||||
send_error_reply(Port *port, const char *errormsg)
|
||||
{
|
||||
int rc; /* return code from write */
|
||||
int rc; /* return code from write */
|
||||
char *reply;
|
||||
|
||||
/*
|
||||
@ -1299,8 +1301,10 @@ ExitPostmaster(int status)
|
||||
* Not sure of the semantics here. When the Postmaster dies, should
|
||||
* the backends all be killed? probably not.
|
||||
*/
|
||||
if (ServerSock_INET != INVALID_SOCK) close(ServerSock_INET);
|
||||
if (ServerSock_UNIX != INVALID_SOCK) close(ServerSock_UNIX);
|
||||
if (ServerSock_INET != INVALID_SOCK)
|
||||
close(ServerSock_INET);
|
||||
if (ServerSock_UNIX != INVALID_SOCK)
|
||||
close(ServerSock_UNIX);
|
||||
exitpg(status);
|
||||
}
|
||||
|
||||
@ -1315,10 +1319,9 @@ dumpstatus(SIGNAL_ARGS)
|
||||
|
||||
fprintf(stderr, "%s: dumpstatus:\n", progname);
|
||||
fprintf(stderr, "\tsock %d: nBytes=%d, laddr=0x%lx, raddr=0x%lx\n",
|
||||
port->sock, port->nBytes,
|
||||
(long int) port->laddr.in.sin_addr.s_addr,
|
||||
(long int) port->raddr.in.sin_addr.s_addr);
|
||||
port->sock, port->nBytes,
|
||||
(long int) port->laddr.in.sin_addr.s_addr,
|
||||
(long int) port->raddr.in.sin_addr.s_addr);
|
||||
curr = DLGetSucc(curr);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: c.h,v 1.26 1997/10/30 23:36:56 momjian Exp $
|
||||
* $Id: c.h,v 1.27 1997/11/10 05:10:34 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -697,8 +697,8 @@ typedef struct Exception
|
||||
#define INT_ALIGN_MASK (sizeof(int32) - 1)
|
||||
|
||||
/* This function gets call too often, so we inline it if we can */
|
||||
#define MemSet(start, val, len) do \
|
||||
{ /* are we aligned for int32? */ \
|
||||
#define MemSet(start, val, len) do \
|
||||
{ /* are we aligned for int32? */ \
|
||||
/* We have to cast the pointer to int \
|
||||
so we can do the AND */ \
|
||||
if (((int)(start) & INT_ALIGN_MASK) == 0 && \
|
||||
@ -707,7 +707,7 @@ typedef struct Exception
|
||||
/* \
|
||||
* We got this number by testing this \
|
||||
* against the stock memset() on \
|
||||
* bsd/os 3.0. Larger values were \
|
||||
* bsd/os 3.0. Larger values were \
|
||||
* slower. \
|
||||
*/ \
|
||||
(len) <= 64) \
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.43 1997/11/07 20:52:15 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.44 1997/11/10 05:10:45 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -340,8 +340,9 @@ PQsetdb(const char *pghost, const char *pgport, const char *pgoptions, const cha
|
||||
|
||||
if (!pghost || pghost[0] == '\0')
|
||||
{
|
||||
conn->pghost = NULL;
|
||||
if (tmp = getenv("PGHOST")) conn->pghost = strdup(tmp);
|
||||
conn->pghost = NULL;
|
||||
if (tmp = getenv("PGHOST"))
|
||||
conn->pghost = strdup(tmp);
|
||||
}
|
||||
else
|
||||
conn->pghost = strdup(pghost);
|
||||
@ -413,14 +414,23 @@ PQsetdb(const char *pghost, const char *pgport, const char *pgoptions, const cha
|
||||
{
|
||||
if (((tmp = (char *) dbName) && (dbName[0] != '\0')) ||
|
||||
((tmp = getenv("PGDATABASE"))))
|
||||
{
|
||||
conn->dbName = strdup(tmp);
|
||||
}
|
||||
else
|
||||
conn->dbName = strdup(conn->pguser);
|
||||
for (i = 0; conn->dbName[i]; i++)
|
||||
if (isupper(conn->dbName[i]))
|
||||
conn->dbName[i] = tolower(conn->dbName[i]);
|
||||
|
||||
/*
|
||||
* if the table name is surrounded by double-quotes, then
|
||||
* don't convert case
|
||||
*/
|
||||
if (*conn->dbName == '"')
|
||||
{
|
||||
strcpy(conn->dbName, conn->dbName + 1);
|
||||
*(conn->dbName + strlen(conn->dbName) - 1) = '\0';
|
||||
}
|
||||
else
|
||||
for (i = 0; conn->dbName[i]; i++)
|
||||
if (isupper(conn->dbName[i]))
|
||||
conn->dbName[i] = tolower(conn->dbName[i]);
|
||||
}
|
||||
else
|
||||
conn->dbName = NULL;
|
||||
@ -470,7 +480,9 @@ connectDB(PGconn *conn)
|
||||
MsgType msgtype;
|
||||
int laddrlen = sizeof(struct sockaddr);
|
||||
Port *port = conn->port;
|
||||
int portno, family, len;
|
||||
int portno,
|
||||
family,
|
||||
len;
|
||||
|
||||
/*
|
||||
* Initialize the startup packet.
|
||||
@ -498,8 +510,8 @@ connectDB(PGconn *conn)
|
||||
port = (Port *) malloc(sizeof(Port));
|
||||
MemSet((char *) port, 0, sizeof(Port));
|
||||
|
||||
if (conn->pghost &&
|
||||
(!(hp = gethostbyname(conn->pghost)) || hp->h_addrtype != AF_INET))
|
||||
if (conn->pghost &&
|
||||
(!(hp = gethostbyname(conn->pghost)) || hp->h_addrtype != AF_INET))
|
||||
{
|
||||
(void) sprintf(conn->errorMessage,
|
||||
"connectDB() -- unknown hostname: %s\n",
|
||||
@ -510,17 +522,17 @@ connectDB(PGconn *conn)
|
||||
portno = atoi(conn->pgport);
|
||||
port->raddr.in.sin_family = family = conn->pghost ? AF_INET : AF_UNIX;
|
||||
if (family == AF_INET)
|
||||
{
|
||||
memmove((char *) &(port->raddr.in.sin_addr),
|
||||
(char *) hp->h_addr,
|
||||
hp->h_length);
|
||||
port->raddr.in.sin_port = htons((unsigned short) (portno));
|
||||
len = sizeof(struct sockaddr_in);
|
||||
}
|
||||
{
|
||||
memmove((char *) &(port->raddr.in.sin_addr),
|
||||
(char *) hp->h_addr,
|
||||
hp->h_length);
|
||||
port->raddr.in.sin_port = htons((unsigned short) (portno));
|
||||
len = sizeof(struct sockaddr_in);
|
||||
}
|
||||
else
|
||||
{
|
||||
len = UNIXSOCK_PATH(port->raddr.un,portno);
|
||||
}
|
||||
{
|
||||
len = UNIXSOCK_PATH(port->raddr.un, portno);
|
||||
}
|
||||
/* connect to the server */
|
||||
if ((port->sock = socket(family, SOCK_STREAM, 0)) < 0)
|
||||
{
|
||||
@ -529,12 +541,12 @@ connectDB(PGconn *conn)
|
||||
errno, strerror(errno));
|
||||
goto connect_errReturn;
|
||||
}
|
||||
if (connect(port->sock, (struct sockaddr *) &port->raddr, len) < 0)
|
||||
if (connect(port->sock, (struct sockaddr *) & port->raddr, len) < 0)
|
||||
{
|
||||
(void) sprintf(conn->errorMessage,
|
||||
"connectDB() failed: Is the postmaster running at '%s' on port '%s'?\n",
|
||||
conn->pghost ? conn->pghost : "UNIX Socket",
|
||||
conn->pgport);
|
||||
"connectDB() failed: Is the postmaster running at '%s' on port '%s'?\n",
|
||||
conn->pghost ? conn->pghost : "UNIX Socket",
|
||||
conn->pgport);
|
||||
goto connect_errReturn;
|
||||
}
|
||||
if (family == AF_INET)
|
||||
@ -779,7 +791,8 @@ packetSend(Port *port,
|
||||
PacketLen len,
|
||||
bool nonBlocking)
|
||||
{
|
||||
PacketLen doneLen = write(port->sock, buf, len);
|
||||
PacketLen doneLen = write(port->sock, buf, len);
|
||||
|
||||
if (doneLen < len)
|
||||
{
|
||||
return (STATUS_ERROR);
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.39 1997/11/03 04:21:49 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.40 1997/11/10 05:10:50 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -17,6 +17,7 @@
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include "postgres.h"
|
||||
#include "libpq/pqcomm.h"
|
||||
#include "libpq/pqsignal.h"
|
||||
@ -31,12 +32,14 @@
|
||||
|
||||
#ifdef TIOCGWINSZ
|
||||
struct winsize screen_size;
|
||||
|
||||
#else
|
||||
struct winsize
|
||||
{
|
||||
int ws_row;
|
||||
int ws_col;
|
||||
} screen_size;
|
||||
|
||||
#endif
|
||||
|
||||
/* the rows array in a PGresGroup has to grow to accommodate the rows */
|
||||
@ -1674,6 +1677,7 @@ int
|
||||
PQfnumber(PGresult *res, const char *field_name)
|
||||
{
|
||||
int i;
|
||||
char *field_case;
|
||||
|
||||
if (!res)
|
||||
{
|
||||
@ -1686,13 +1690,27 @@ PQfnumber(PGresult *res, const char *field_name)
|
||||
res->attDescs == NULL)
|
||||
return -1;
|
||||
|
||||
field_case = strdup(field_name);
|
||||
if (*field_case == '"')
|
||||
{
|
||||
strcpy(field_case, field_case + 1);
|
||||
*(field_case + strlen(field_case) - 1) = '\0';
|
||||
}
|
||||
else
|
||||
for (i = 0; field_case; i++)
|
||||
if (isupper(field_case[i]))
|
||||
field_case[i] = tolower(field_case[i]);
|
||||
|
||||
for (i = 0; i < res->numAttributes; i++)
|
||||
{
|
||||
if (strcasecmp(field_name, res->attDescs[i].name) == 0)
|
||||
if (strcmp(field_name, res->attDescs[i].name) == 0)
|
||||
{
|
||||
free(field_case);
|
||||
return i;
|
||||
}
|
||||
}
|
||||
free(field_case);
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
Oid
|
||||
|
Loading…
x
Reference in New Issue
Block a user