Fix case issues with quotes.
authorBruce Momjian
Mon, 10 Nov 1997 05:10:50 +0000 (05:10 +0000)
committerBruce Momjian
Mon, 10 Nov 1997 05:10:50 +0000 (05:10 +0000)
src/backend/postmaster/postmaster.c
src/include/c.h
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-exec.c

index 2eef75ca5e969479b3b166a6c1d46d5d2cd8ee32..65047f9c8ea14fa5aeea8437ae8b406b890a26b8 100644 (file)
@@ -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);
    }
 }
-
index 2aeb743f9a0706ae68c5da553f7344678c4a96cb..a3c85f584cc7552c77b26a08aba68aa27eea5be1 100644 (file)
@@ -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) \
index f5ace69dc07a032c612fbf5644e89db399dd522b..e18702282818cc5ba8485444a892bbc08fe44821 100644 (file)
@@ -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);
index 483644e7457907d41f2d0343dea9d86e98fc443a..2f1b55fbd12aad6920337e3ce715f7096c132caa 100644 (file)
@@ -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 
 #include 
 #include 
+#include 
 #include "postgres.h"
 #include "libpq/pqcomm.h"
 #include "libpq/pqsignal.h"
 
 #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