Enable locale, so case conversion (identifier processing) and number
authorPeter Eisentraut
Tue, 27 Aug 2002 20:16:49 +0000 (20:16 +0000)
committerPeter Eisentraut
Tue, 27 Aug 2002 20:16:49 +0000 (20:16 +0000)
formatting (\timing) works correctly.  Change "Total time" to "Time"
since there is nothing that "total" refers to.  Remove non-multibyte
code.

doc/src/sgml/ref/psql-ref.sgml
src/bin/psql/common.c
src/bin/psql/describe.c
src/bin/psql/mbprint.c
src/bin/psql/mbprint.h
src/bin/psql/print.c
src/bin/psql/startup.c
src/bin/psql/stringutils.c

index 02c5d833b8205509742e4f99763c559524ae8339..3bded5cf93bd9d936c65d93bd5c7ff3600197819 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -1591,7 +1591,7 @@ lo_import 152801
        \timing
         
         
-         Toggles a display of how long each query takes, in milliseconds.
+         Toggles a display of how long each SQL statement takes, in milliseconds.
         
        
       
index 9362886c4ce8ac214dfb7727840fd2237e813f90..f8bf9c9a35e7a077dab5d7d06a06b5199aedeb72 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.42 2002/08/10 19:35:00 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.43 2002/08/27 20:16:48 petere Exp $
  */
 #include "postgres_fe.h"
 
@@ -466,7 +466,7 @@ SendQuery(const char *query)
 
    /* Possible microtiming output */
    if (pset.timing && success)
-       printf(gettext("Total time: %.2f msec\n"),
+       printf(gettext("Time: %.2f ms\n"),
               ((after.tv_sec-before.tv_sec)*1000000 + after.tv_usec - before.tv_usec) / 1000.0);
 
    return success;
index 43ebe94e58933cf8d6152f216fdbba51cad4e7d3..64cef431701437a20b49b87563e3081c28a32ff5 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000-2002 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.65 2002/08/27 18:28:28 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/describe.c,v 1.66 2002/08/27 20:16:48 petere Exp $
  */
 #include "postgres_fe.h"
 #include "describe.h"
@@ -305,11 +305,9 @@ listAllDbs(bool verbose)
             "SELECT d.datname as \"%s\",\n"
             "       u.usename as \"%s\"",
             _("Name"), _("Owner"));
-#ifdef MULTIBYTE
    appendPQExpBuffer(&buf,
             ",\n       pg_catalog.pg_encoding_to_char(d.encoding) as \"%s\"",
             _("Encoding"));
-#endif
    if (verbose)
        appendPQExpBuffer(&buf,
             ",\n       pg_catalog.obj_description(d.oid, 'pg_database') as \"%s\"",
index b0478eeef8d091fbeb5d82d006e1103b76a79f51..dcd305d921293b88a23dd67397a82cacafe12a22 100644 (file)
@@ -3,14 +3,12 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/mbprint.c,v 1.3 2001/10/28 06:25:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/mbprint.c,v 1.4 2002/08/27 20:16:48 petere Exp $
  */
 
 #include "postgres_fe.h"
 #include "mbprint.h"
 
-#ifdef MULTIBYTE
-
 #include "mb/pg_wchar.h"
 #include "settings.h"
 
@@ -195,7 +193,7 @@ utf2ucs(const unsigned char *c)
 /* mb_utf_wcwidth : calculate column length for the utf8 string pwcs
  */
 static int
-mb_utf_wcswidth(unsigned char *pwcs, int len)
+mb_utf_wcswidth(unsigned char *pwcs, size_t len)
 {
    int         w,
                l = 0;
@@ -312,7 +310,7 @@ mb_utf_validate(unsigned char *pwcs)
  */
 
 int
-pg_wcswidth(unsigned char *pwcs, int len)
+pg_wcswidth(unsigned char *pwcs, size_t len)
 {
    if (pset.encoding == PG_UTF8)
        return mb_utf_wcswidth(pwcs, len);
@@ -340,14 +338,3 @@ mbvalidate(unsigned char *pwcs)
        return pwcs;
    }
 }
-
-#else                          /* !MULTIBYTE */
-
-/* in single-byte environment, all cells take 1 column */
-int
-pg_wcswidth(unsigned char *pwcs, int len)
-{
-   return len;
-}
-
-#endif
index 3c5660f376fb4d3ffb7a38c4e6562dd9014c9e01..826b71c84a456e3cae20fca9b717345b3b4ba530 100644 (file)
@@ -1,17 +1,13 @@
-/* $Id: mbprint.h,v 1.4 2001/11/05 17:46:31 momjian Exp $ */
+/* $Id: mbprint.h,v 1.5 2002/08/27 20:16:48 petere Exp $ */
 #ifndef MBPRINT_H
 #define MBPRINT_H
 
-
-#ifdef MULTIBYTE
-
 #include "mb/pg_wchar.h"
 
 pg_wchar   utf2ucs(const unsigned char *c);
 
 unsigned char *mbvalidate(unsigned char *pwcs);
-#endif   /* MULTIBYTE */
 
-int            pg_wcswidth(unsigned char *pwcs, int len);
+int            pg_wcswidth(unsigned char *pwcs, size_t len);
 
 #endif   /* MBPRINT_H */
index a8a0b9af7b0e7a2496e996d4a2143af57492a505..f8dd092d677098cbef7de46d94bb1f453bd03d65 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.28 2002/07/18 04:46:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/print.c,v 1.29 2002/08/27 20:16:48 petere Exp $
  */
 #include "postgres_fe.h"
 #include "print.h"
@@ -209,13 +209,9 @@ print_aligned_text(const char *title, const char *const * headers,
                   FILE *fout)
 {
    unsigned int col_count = 0;
-
-#ifdef MULTIBYTE
    unsigned int cell_count = 0;
    unsigned int *head_w,
               *cell_w;
-#endif
-
    unsigned int i,
                tmp;
    unsigned int *widths,
@@ -233,7 +229,6 @@ print_aligned_text(const char *title, const char *const * headers,
        exit(EXIT_FAILURE);
    }
 
-#ifdef MULTIBYTE
    head_w = calloc(col_count, sizeof(*head_w));
    if (!head_w)
    {
@@ -256,7 +251,6 @@ print_aligned_text(const char *title, const char *const * headers,
    }
    else
        cell_w = 0;
-#endif
 
 
    /* calc column widths */
@@ -264,18 +258,14 @@ print_aligned_text(const char *title, const char *const * headers,
    {
        if ((tmp = pg_wcswidth((unsigned char *) headers[i], strlen(headers[i]))) > widths[i])
            widths[i] = tmp;
-#ifdef MULTIBYTE
        head_w[i] = tmp;
-#endif
    }
 
    for (i = 0, ptr = cells; *ptr; ptr++, i++)
    {
        if ((tmp = pg_wcswidth((unsigned char *) *ptr, strlen(*ptr))) > widths[i % col_count])
            widths[i % col_count] = tmp;
-#ifdef MULTIBYTE
        cell_w[i] = tmp;
-#endif
    }
    if (opt_border == 0)
        total_w = col_count - 1;
@@ -313,11 +303,7 @@ print_aligned_text(const char *title, const char *const * headers,
        {
            int         nbspace;
 
-#ifdef MULTIBYTE
            nbspace = widths[i] - head_w[i];
-#else
-           nbspace = widths[i] - strlen(headers[i]);
-#endif
 
            /* centered */
            fprintf(fout, "%-*s%s%-*s",
@@ -356,26 +342,16 @@ print_aligned_text(const char *title, const char *const * headers,
        /* content */
        if (opt_align[(i) % col_count] == 'r')
        {
-#ifdef MULTIBYTE
            fprintf(fout, "%*s%s",
                    widths[i % col_count] - cell_w[i], "", cells[i]);
-#else
-           fprintf(fout, "%*s", widths[i % col_count], cells[i]);
-#endif
        }
        else
        {
            if ((i + 1) % col_count == 0 && opt_border != 2)
                fputs(cells[i], fout);
            else
-           {
-#ifdef MULTIBYTE
                fprintf(fout, "%-s%*s", cells[i],
                        widths[i % col_count] - cell_w[i], "");
-#else
-               fprintf(fout, "%-*s", widths[i % col_count], cells[i]);
-#endif
-           }
        }
 
        /* divider */
@@ -406,10 +382,8 @@ print_aligned_text(const char *title, const char *const * headers,
    fputc('\n', fout);
 
    /* clean up */
-#ifdef MULTIBYTE
    free(cell_w);
    free(head_w);
-#endif
    free(widths);
 }
 
@@ -429,12 +403,9 @@ print_aligned_vertical(const char *title, const char *const * headers,
                hwidth = 0,
                dwidth = 0;
    char       *divider;
-
-#ifdef MULTIBYTE
    unsigned int cell_count = 0;
    unsigned int *cell_w,
               *head_w;
-#endif
 
    if (cells[0] == NULL)
    {
@@ -442,8 +413,7 @@ print_aligned_vertical(const char *title, const char *const * headers,
        return;
    }
 
-#ifdef MULTIBYTE
-   /* pre-count headers */
+   /* count headers and find longest one */
    for (ptr = headers; *ptr; ptr++)
        col_count++;
    head_w = calloc(col_count, sizeof(*head_w));
@@ -480,22 +450,6 @@ print_aligned_vertical(const char *title, const char *const * headers,
            dwidth = tmp;
        cell_w[i] = tmp;
    }
-#else
-   /* count columns and find longest header */
-   for (ptr = headers; *ptr; ptr++)
-   {
-       col_count++;
-       if ((tmp = strlen(*ptr)) > hwidth)
-           hwidth = tmp;       /* don't wanna call strlen twice */
-   }
-
-   /* find longest data cell */
-   for (ptr = cells; *ptr; ptr++)
-   {
-       if ((tmp = strlen(*ptr)) > dwidth)
-           dwidth = tmp;
-   }
-#endif
 
    /* print title */
    if (!opt_barebones && title)
@@ -569,12 +523,8 @@ print_aligned_vertical(const char *title, const char *const * headers,
 
        if (opt_border == 2)
            fputs("| ", fout);
-#if MULTIBYTE
        fprintf(fout, "%-s%*s", headers[i % col_count],
                hwidth - head_w[i % col_count], "");
-#else
-       fprintf(fout, "%-*s", hwidth, headers[i % col_count]);
-#endif
 
        if (opt_border > 0)
            fputs(" | ", fout);
@@ -584,13 +534,7 @@ print_aligned_vertical(const char *title, const char *const * headers,
        if (opt_border < 2)
            fprintf(fout, "%s\n", *ptr);
        else
-       {
-#ifdef MULTIBYTE
            fprintf(fout, "%-s%*s |\n", *ptr, dwidth - cell_w[i], "");
-#else
-           fprintf(fout, "%-*s |\n", dwidth, *ptr);
-#endif
-       }
    }
 
    if (opt_border == 2)
@@ -610,10 +554,8 @@ print_aligned_vertical(const char *title, const char *const * headers,
    fputc('\n', fout);
    free(divider);
 
-#ifdef MULTIBYTE
    free(cell_w);
    free(head_w);
-#endif
 }
 
 
@@ -1167,13 +1109,7 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
    }
 
    for (i = 0; i < nfields; i++)
-   {
-#ifdef MULTIBYTE
        headers[i] = mbvalidate(PQfname(result, i));
-#else
-       headers[i] = PQfname(result, i);
-#endif
-   }
 
    /* set cells */
 
@@ -1189,13 +1125,7 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
        if (PQgetisnull(result, i / nfields, i % nfields))
            cells[i] = opt->nullPrint ? opt->nullPrint : "";
        else
-       {
-#ifdef MULTIBYTE
            cells[i] = mbvalidate(PQgetvalue(result, i / nfields, i % nfields));
-#else
-           cells[i] = PQgetvalue(result, i / nfields, i % nfields);
-#endif
-       }
    }
 
    /* set footers */
index ed734ec5a197ea44492c1f9a314c5d3a74119edd..a93219d22fc4d08528a834a5a8e32db9e53ebdfb 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.62 2002/08/10 19:35:01 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.63 2002/08/27 20:16:48 petere Exp $
  */
 #include "postgres_fe.h"
 
@@ -11,7 +11,7 @@
 
 #ifndef WIN32
 #include 
-#else                          /* WIN32 */
+#else /* WIN32 */
 #include 
 #include 
 #include 
@@ -21,9 +21,7 @@
 #include 
 #endif
 
-#ifdef ENABLE_NLS
 #include 
-#endif
 
 #include "libpq-fe.h"
 
 #include "settings.h"
 #include "variables.h"
 
-#ifdef MULTIBYTE
 #include "mb/pg_wchar.h"
-#else
-/* XXX Grand unified hard-coded badness; this should go into libpq */
-#define pg_encoding_to_char(x) "SQL_ASCII"
-#endif
 
 /*
  * Global psql options
@@ -105,8 +98,8 @@ main(int argc, char *argv[])
    char       *password = NULL;
    bool        need_pass;
 
-#ifdef ENABLE_NLS
    setlocale(LC_ALL, "");
+#ifdef ENABLE_NLS
    bindtextdomain("psql", LOCALEDIR);
    textdomain("psql");
 #endif
@@ -638,26 +631,8 @@ showVersion(void)
 {
    puts("psql (PostgreSQL) " PG_VERSION);
 
-#if defined(USE_READLINE) || defined(MULTIBYTE)
-   fputs(gettext("contains support for: "), stdout);
-
-#ifdef USE_READLINE
-   fputs(gettext("readline"), stdout);
-#define _Feature
-#endif
-
-#ifdef MULTIBYTE
-#ifdef _Feature
-   fputs(", ", stdout);
-#else
-#define _Feature
-#endif
-   fputs(gettext("multibyte"), stdout);
-#endif
-
-#undef _Feature
-
-   puts("");
+#if defined(USE_READLINE)
+   puts(gettext("contains support for readline"));
 #endif
 
    puts(gettext("Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group\n"
index a406c59c8d08655ec201895101586b0701b2c97c..8ff58c464301cc63700b3552fc3ca56254dfdb24 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.29 2002/07/02 05:49:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/stringutils.c,v 1.30 2002/08/27 20:16:49 petere Exp $
  */
 #include "postgres_fe.h"
 #include "stringutils.h"
@@ -52,10 +52,6 @@ strtokx(const char *s,
    char       *start;
    char       *cp = NULL;
 
-#ifndef MULTIBYTE
-   (void) encoding;            /* not used */
-#endif
-
    if (s)
    {
        free(storage);
@@ -95,11 +91,7 @@ strtokx(const char *s,
 
        for (p = start;
             *p && (*p != *cp || *(p - 1) == escape);
-#ifdef MULTIBYTE
             p += PQmblen(p, encoding)
-#else
-            p++
-#endif
            );
 
        /* not yet end of string? */