<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.73 2002/08/23 01:27:44 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.74 2002/08/27 20:16:48 petere Exp $
PostgreSQL documentation
-->
<term><literal>\timing</literal></term>
<listitem>
<para>
- Toggles a display of how long each query takes, in milliseconds.
+ Toggles a display of how long each SQL statement takes, in milliseconds.
</para>
</listitem>
</varlistentry>
*
* 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"
/* 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;
*
* 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"
"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\"",
*
* 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"
/* 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;
*/
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);
return pwcs;
}
}
-
-#else /* !MULTIBYTE */
-
-/* in single-byte environment, all cells take 1 column */
-int
-pg_wcswidth(unsigned char *pwcs, int len)
-{
- return len;
-}
-
-#endif
-/* $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 */
*
* 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"
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,
exit(EXIT_FAILURE);
}
-#ifdef MULTIBYTE
head_w = calloc(col_count, sizeof(*head_w));
if (!head_w)
{
}
else
cell_w = 0;
-#endif
/* calc column widths */
{
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;
{
int nbspace;
-#ifdef MULTIBYTE
nbspace = widths[i] - head_w[i];
-#else
- nbspace = widths[i] - strlen(headers[i]);
-#endif
/* centered */
fprintf(fout, "%-*s%s%-*s",
/* 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 */
fputc('\n', fout);
/* clean up */
-#ifdef MULTIBYTE
free(cell_w);
free(head_w);
-#endif
free(widths);
}
hwidth = 0,
dwidth = 0;
char *divider;
-
-#ifdef MULTIBYTE
unsigned int cell_count = 0;
unsigned int *cell_w,
*head_w;
-#endif
if (cells[0] == NULL)
{
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));
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)
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);
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)
fputc('\n', fout);
free(divider);
-#ifdef MULTIBYTE
free(cell_w);
free(head_w);
-#endif
}
}
for (i = 0; i < nfields; i++)
- {
-#ifdef MULTIBYTE
headers[i] = mbvalidate(PQfname(result, i));
-#else
- headers[i] = PQfname(result, i);
-#endif
- }
/* set cells */
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 */
*
* 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"
#ifndef WIN32
#include <unistd.h>
-#else /* WIN32 */
+#else /* WIN32 */
#include <io.h>
#include <windows.h>
#include <win32.h>
#include <getopt.h>
#endif
-#ifdef ENABLE_NLS
#include <locale.h>
-#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
char *password = NULL;
bool need_pass;
-#ifdef ENABLE_NLS
setlocale(LC_ALL, "");
+#ifdef ENABLE_NLS
bindtextdomain("psql", LOCALEDIR);
textdomain("psql");
#endif
{
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"
*
* 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"
char *start;
char *cp = NULL;
-#ifndef MULTIBYTE
- (void) encoding; /* not used */
-#endif
-
if (s)
{
free(storage);
for (p = start;
*p && (*p != *cp || *(p - 1) == escape);
-#ifdef MULTIBYTE
p += PQmblen(p, encoding)
-#else
- p++
-#endif
);
/* not yet end of string? */