mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	More fixes for psql ^C handling, especially during copy. Still doesn't
cope so well with copy to but that will have to wait for the next release. Also added -X option to prevent reading .psqlrc startup file.
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!--
 | 
					<!--
 | 
				
			||||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.26 2000/02/20 14:29:21 petere Exp $
 | 
					$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.27 2000/03/01 21:09:56 petere Exp $
 | 
				
			||||||
Postgres documentation
 | 
					Postgres documentation
 | 
				
			||||||
-->
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1554,6 +1554,16 @@ Access permissions for database "test"
 | 
				
			|||||||
    </varlistentry>
 | 
					    </varlistentry>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <varlistentry>
 | 
				
			||||||
 | 
					      <term>-X, --no-psqlrc</term>
 | 
				
			||||||
 | 
					      <listitem>
 | 
				
			||||||
 | 
					      <para>
 | 
				
			||||||
 | 
					      Do not read the startup file <filename>~/.psqlrc</filename>.
 | 
				
			||||||
 | 
					      </para>
 | 
				
			||||||
 | 
					      </listitem>
 | 
				
			||||||
 | 
					    </varlistentry>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <varlistentry>
 | 
					    <varlistentry>
 | 
				
			||||||
      <term>-?, --help</term>
 | 
					      <term>-?, --help</term>
 | 
				
			||||||
      <listitem>
 | 
					      <listitem>
 | 
				
			||||||
@@ -2065,7 +2075,7 @@ testdb=> <userinput>\set content `sed -e "s/'/\\\\\\'/g" < my_file.txt`</userinp
 | 
				
			|||||||
    </para>
 | 
					    </para>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <para>
 | 
					    <para>
 | 
				
			||||||
    Before starting up in interactive mode, <application>psql</application> attempts
 | 
					    Before starting up, <application>psql</application> attempts
 | 
				
			||||||
    to read and execute commands from the file <filename>$HOME/.psqlrc</filename>. It
 | 
					    to read and execute commands from the file <filename>$HOME/.psqlrc</filename>. It
 | 
				
			||||||
    could be used to set up the client or the server to taste (using the <command>\set
 | 
					    could be used to set up the client or the server to taste (using the <command>\set
 | 
				
			||||||
    </command> and <command>SET</command> commands).
 | 
					    </command> and <command>SET</command> commands).
 | 
				
			||||||
@@ -2101,7 +2111,7 @@ $endif
 | 
				
			|||||||
    does not seem to use it, you must make sure that <productname>PostgreSQL</productname>'s
 | 
					    does not seem to use it, you must make sure that <productname>PostgreSQL</productname>'s
 | 
				
			||||||
    top-level <filename>configure</filename> script finds it. <filename>configure</filename>
 | 
					    top-level <filename>configure</filename> script finds it. <filename>configure</filename>
 | 
				
			||||||
    needs to find both the library <filename>libreadline.a</filename>
 | 
					    needs to find both the library <filename>libreadline.a</filename>
 | 
				
			||||||
    (or <filename>libreadline.so</filename> on systems with shared libraries)
 | 
					    (or a shared library equivalent)
 | 
				
			||||||
    <emphasis>and</emphasis> the header files <filename>readline.h</filename> and
 | 
					    <emphasis>and</emphasis> the header files <filename>readline.h</filename> and
 | 
				
			||||||
    <filename>history.h</filename> (or <filename>readline/readline.h</filename> and
 | 
					    <filename>history.h</filename> (or <filename>readline/readline.h</filename> and
 | 
				
			||||||
    <filename>readline/history.h</filename>) in appropriate directories. If
 | 
					    <filename>readline/history.h</filename>) in appropriate directories. If
 | 
				
			||||||
@@ -2276,6 +2286,15 @@ Field separator is "oo".
 | 
				
			|||||||
      </para>
 | 
					      </para>
 | 
				
			||||||
      </listitem>
 | 
					      </listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <listitem>
 | 
				
			||||||
 | 
					      <para>
 | 
				
			||||||
 | 
					      Pressing Control-C during a <quote>copy in</quote> (data sent to the
 | 
				
			||||||
 | 
					      server) doesn't show the most ideal of behaviours. If you get a message
 | 
				
			||||||
 | 
					      such as <quote>PQexec: you gotta get out of a COPY state yourself</quote>,
 | 
				
			||||||
 | 
					      simply reset the connection by entering <literal>\c - -</literal>.
 | 
				
			||||||
 | 
					      </para>
 | 
				
			||||||
 | 
					      </listitem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    </itemizedlist>
 | 
					    </itemizedlist>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  </refsect2>
 | 
					  </refsect2>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.23 2000/02/21 02:05:12 ishii Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.24 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "postgres.h"
 | 
					#include "postgres.h"
 | 
				
			||||||
#include "command.h"
 | 
					#include "command.h"
 | 
				
			||||||
@@ -432,7 +432,7 @@ exec_command(const char *cmd,
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
			success = process_file(fname) == EXIT_SUCCESS;
 | 
								success = (process_file(fname) == EXIT_SUCCESS);
 | 
				
			||||||
            free (fname);
 | 
					            free (fname);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -727,7 +727,7 @@ exec_command(const char *cmd,
 | 
				
			|||||||
	else if (strcmp(cmd, "?") == 0)
 | 
						else if (strcmp(cmd, "?") == 0)
 | 
				
			||||||
		slashUsage();
 | 
							slashUsage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if 1
 | 
					#if 0
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
	 * These commands don't do anything. I just use them to test the
 | 
						 * These commands don't do anything. I just use them to test the
 | 
				
			||||||
	 * parser.
 | 
						 * parser.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.17 2000/02/21 19:40:41 petere Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.18 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "postgres.h"
 | 
					#include "postgres.h"
 | 
				
			||||||
#include "common.h"
 | 
					#include "common.h"
 | 
				
			||||||
@@ -170,6 +170,8 @@ NoticeProcessor(void * arg, const char * message)
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Returns a malloc()'ed string with the input (w/o trailing newline).
 | 
					 * Returns a malloc()'ed string with the input (w/o trailing newline).
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					static bool prompt_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char *
 | 
					char *
 | 
				
			||||||
simple_prompt(const char *prompt, int maxlen, bool echo)
 | 
					simple_prompt(const char *prompt, int maxlen, bool echo)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -187,6 +189,8 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
 | 
				
			|||||||
	if (prompt)
 | 
						if (prompt)
 | 
				
			||||||
		fputs(prompt, stderr);
 | 
							fputs(prompt, stderr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    prompt_state = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_TERMIOS_H
 | 
					#ifdef HAVE_TERMIOS_H
 | 
				
			||||||
	if (!echo)
 | 
						if (!echo)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -207,6 +211,8 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    prompt_state = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	length = strlen(destination);
 | 
						length = strlen(destination);
 | 
				
			||||||
	if (length > 0 && destination[length - 1] != '\n')
 | 
						if (length > 0 && destination[length - 1] != '\n')
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -238,7 +244,7 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
 | 
				
			|||||||
 * facilities in a signal handler.
 | 
					 * facilities in a signal handler.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static PGconn *cancelConn;
 | 
					PGconn *cancelConn;
 | 
				
			||||||
volatile bool cancel_pressed;
 | 
					volatile bool cancel_pressed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define write_stderr(String) write(fileno(stderr), String, strlen(String))
 | 
					#define write_stderr(String) write(fileno(stderr), String, strlen(String))
 | 
				
			||||||
@@ -246,24 +252,20 @@ volatile bool cancel_pressed;
 | 
				
			|||||||
void
 | 
					void
 | 
				
			||||||
handle_sigint(SIGNAL_ARGS)
 | 
					handle_sigint(SIGNAL_ARGS)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    cancel_pressed = true;
 | 
					    /* Don't muck around if copying in or prompting for a password. */
 | 
				
			||||||
 | 
					    if ((copy_in_state && pset.cur_cmd_interactive) || prompt_state)
 | 
				
			||||||
    if (copy_state)
 | 
					 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (cancelConn == NULL)
 | 
						if (cancelConn == NULL)
 | 
				
			||||||
#ifndef WIN32
 | 
					 | 
				
			||||||
        siglongjmp(main_loop_jmp, 1);
 | 
					        siglongjmp(main_loop_jmp, 1);
 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Try to send cancel request */
 | 
					    cancel_pressed = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (PQrequestCancel(cancelConn))
 | 
						if (PQrequestCancel(cancelConn))
 | 
				
			||||||
		write_stderr("\nCancel request sent\n");
 | 
							write_stderr("Cancel request sent\n");
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		write_stderr("\nCould not send cancel request: ");
 | 
							write_stderr("Could not send cancel request: ");
 | 
				
			||||||
		write_stderr(PQerrorMessage(cancelConn));
 | 
							write_stderr(PQerrorMessage(cancelConn));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -300,10 +302,11 @@ PSQLexec(const char *query)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	cancelConn = pset.db;
 | 
						cancelConn = pset.db;
 | 
				
			||||||
	res = PQexec(pset.db, query);
 | 
						res = PQexec(pset.db, query);
 | 
				
			||||||
    if (PQresultStatus(res) == PGRES_COPY_IN ||
 | 
					    if (PQresultStatus(res) == PGRES_COPY_IN)
 | 
				
			||||||
        PQresultStatus(res) == PGRES_COPY_OUT)
 | 
					        copy_in_state = true;
 | 
				
			||||||
        copy_state = true;
 | 
					    /* keep cancel connection for copy out state */
 | 
				
			||||||
    cancelConn = NULL;
 | 
					    if (PQresultStatus(res) != PGRES_COPY_OUT)
 | 
				
			||||||
 | 
					        cancelConn = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (PQstatus(pset.db) == CONNECTION_BAD)
 | 
						if (PQstatus(pset.db) == CONNECTION_BAD)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -394,10 +397,11 @@ SendQuery(const char *query)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	cancelConn = pset.db;
 | 
						cancelConn = pset.db;
 | 
				
			||||||
	results = PQexec(pset.db, query);
 | 
						results = PQexec(pset.db, query);
 | 
				
			||||||
    if (PQresultStatus(results) == PGRES_COPY_IN ||
 | 
					    if (PQresultStatus(results) == PGRES_COPY_IN)
 | 
				
			||||||
        PQresultStatus(results) == PGRES_COPY_OUT)
 | 
					        copy_in_state = true;
 | 
				
			||||||
        copy_state = true;
 | 
					    /* keep cancel connection for copy out state */
 | 
				
			||||||
    cancelConn = NULL;
 | 
					    if (PQresultStatus(results) != PGRES_COPY_OUT)
 | 
				
			||||||
 | 
					        cancelConn = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (results == NULL)
 | 
						if (results == NULL)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.7 2000/02/20 14:28:20 petere Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.8 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#ifndef COMMON_H
 | 
					#ifndef COMMON_H
 | 
				
			||||||
#define COMMON_H
 | 
					#define COMMON_H
 | 
				
			||||||
@@ -29,6 +29,7 @@ void        NoticeProcessor(void * arg, const char * message);
 | 
				
			|||||||
char *		simple_prompt(const char *prompt, int maxlen, bool echo);
 | 
					char *		simple_prompt(const char *prompt, int maxlen, bool echo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern volatile bool cancel_pressed;
 | 
					extern volatile bool cancel_pressed;
 | 
				
			||||||
 | 
					extern PGconn *cancelConn;
 | 
				
			||||||
void        handle_sigint(SIGNAL_ARGS);
 | 
					void        handle_sigint(SIGNAL_ARGS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PGresult *	PSQLexec(const char *query);
 | 
					PGresult *	PSQLexec(const char *query);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/copy.c,v 1.11 2000/02/21 19:40:41 petere Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/copy.c,v 1.12 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "postgres.h"
 | 
					#include "postgres.h"
 | 
				
			||||||
#include "copy.h"
 | 
					#include "copy.h"
 | 
				
			||||||
@@ -28,7 +28,7 @@
 | 
				
			|||||||
#define strcasecmp(x,y) stricmp(x,y)
 | 
					#define strcasecmp(x,y) stricmp(x,y)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool copy_state;
 | 
					bool copy_in_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * parse_slash_copy
 | 
					 * parse_slash_copy
 | 
				
			||||||
@@ -335,6 +335,8 @@ handleCopyOut(PGconn *conn, FILE *copystream)
 | 
				
			|||||||
	char		copybuf[COPYBUFSIZ];
 | 
						char		copybuf[COPYBUFSIZ];
 | 
				
			||||||
	int			ret;
 | 
						int			ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    assert(cancelConn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (!copydone)
 | 
						while (!copydone)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		ret = PQgetline(conn, copybuf, COPYBUFSIZ);
 | 
							ret = PQgetline(conn, copybuf, COPYBUFSIZ);
 | 
				
			||||||
@@ -363,7 +365,7 @@ handleCopyOut(PGconn *conn, FILE *copystream)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	fflush(copystream);
 | 
						fflush(copystream);
 | 
				
			||||||
	ret = !PQendcopy(conn);
 | 
						ret = !PQendcopy(conn);
 | 
				
			||||||
    copy_state = false;
 | 
					    cancelConn = NULL;
 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -394,6 +396,10 @@ handleCopyIn(PGconn *conn, FILE *copystream, const char *prompt)
 | 
				
			|||||||
	int			c = 0;
 | 
						int			c = 0;
 | 
				
			||||||
    int         ret;
 | 
					    int         ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef USE_ASSERT_CHECKING
 | 
				
			||||||
 | 
					    assert(copy_in_state);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (prompt)					/* disable prompt if not interactive */
 | 
						if (prompt)					/* disable prompt if not interactive */
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (! isatty(fileno(copystream)))
 | 
							if (! isatty(fileno(copystream)))
 | 
				
			||||||
@@ -409,6 +415,7 @@ handleCopyIn(PGconn *conn, FILE *copystream, const char *prompt)
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		firstload = true;
 | 
							firstload = true;
 | 
				
			||||||
		linedone = false;
 | 
							linedone = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		while (!linedone)
 | 
							while (!linedone)
 | 
				
			||||||
		{						/* for each bufferload in line ... */
 | 
							{						/* for each bufferload in line ... */
 | 
				
			||||||
			s = copybuf;
 | 
								s = copybuf;
 | 
				
			||||||
@@ -427,6 +434,8 @@ handleCopyIn(PGconn *conn, FILE *copystream, const char *prompt)
 | 
				
			|||||||
			{
 | 
								{
 | 
				
			||||||
				PQputline(conn, "\\.");
 | 
									PQputline(conn, "\\.");
 | 
				
			||||||
				copydone = true;
 | 
									copydone = true;
 | 
				
			||||||
 | 
					                if (pset.cur_cmd_interactive)
 | 
				
			||||||
 | 
					                    puts("\\.");
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			PQputline(conn, copybuf);
 | 
								PQputline(conn, copybuf);
 | 
				
			||||||
@@ -443,6 +452,6 @@ handleCopyIn(PGconn *conn, FILE *copystream, const char *prompt)
 | 
				
			|||||||
		PQputline(conn, "\n");
 | 
							PQputline(conn, "\n");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ret = !PQendcopy(conn);
 | 
						ret = !PQendcopy(conn);
 | 
				
			||||||
    copy_state = false;
 | 
					    copy_in_state = false;
 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,14 +3,14 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/copy.h,v 1.8 2000/02/21 19:40:42 petere Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/copy.h,v 1.9 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#ifndef COPY_H
 | 
					#ifndef COPY_H
 | 
				
			||||||
#define COPY_H
 | 
					#define COPY_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libpq-fe.h"
 | 
					#include "libpq-fe.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern bool copy_state;
 | 
					extern bool copy_in_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* handler for \copy */
 | 
					/* handler for \copy */
 | 
				
			||||||
bool		do_copy(const char *args);
 | 
					bool		do_copy(const char *args);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,35 +5,33 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# Copyright 2000 by PostgreSQL Global Development Group
 | 
					# Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# $Header: /cvsroot/pgsql/src/bin/psql/create_help.pl,v 1.4 2000/02/07 23:10:06 petere Exp $
 | 
					# $Header: /cvsroot/pgsql/src/bin/psql/create_help.pl,v 1.5 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
#################################################################
 | 
					#################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This script automatically generates the help on SQL in psql from
 | 
					# This script automatically generates the help on SQL in psql from
 | 
				
			||||||
# the SGML docs. So far the format of the docs was consistent
 | 
					# the SGML docs. So far the format of the docs was consistent
 | 
				
			||||||
# enough that this worked, but this here is my no means an SGML
 | 
					# enough that this worked, but this here is by no means an SGML
 | 
				
			||||||
# parser.
 | 
					# parser.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Call: perl create_help.pl sql_help.h
 | 
					# Call: perl create_help.pl sql_help.h
 | 
				
			||||||
# The name of the header file doesn't matter to this script, but it
 | 
					# The name of the header file doesn't matter to this script, but it
 | 
				
			||||||
# sure does matter to the rest of the source.
 | 
					# sure does matter to the rest of the source.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# A rule for this is also in the psql makefile.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
$docdir = "./../../../doc/src/sgml/ref";
 | 
					$docdir = "./../../../doc/src/sgml/ref";
 | 
				
			||||||
$outputfile = $ARGV[0] or die "Missing required argument.\n";
 | 
					$outputfile = $ARGV[0] or die "$0: missing required argument\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$define = $outputfile;
 | 
					$define = $outputfile;
 | 
				
			||||||
$define =~ tr/a-z/A-Z/;
 | 
					$define =~ tr/a-z/A-Z/;
 | 
				
			||||||
$define =~ s/\W/_/g;
 | 
					$define =~ s/\W/_/g;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
opendir DIR, $docdir or die "Couldn't open documentation sources: $!\n";
 | 
					opendir DIR, $docdir or die "$0: could not open documentation sources: $!\n";
 | 
				
			||||||
open OUT, ">$outputfile" or die "Couldn't open output file '$outputfile': $!\n";
 | 
					open OUT, ">$outputfile" or die "$0: could not open output file '$outputfile': $!\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print OUT
 | 
					print OUT
 | 
				
			||||||
"/*
 | 
					"/*
 | 
				
			||||||
 * *** Do not change this file directly. Changes will be overwritten. ***
 | 
					 * *** Do not change this file. It is machine-generated. ***
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This file was generated by
 | 
					 * This file was generated by
 | 
				
			||||||
 *     $^X $0 $outputfile
 | 
					 *     $^X $0 $outputfile
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.22 2000/02/20 14:28:20 petere Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.23 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "postgres.h"
 | 
					#include "postgres.h"
 | 
				
			||||||
#include "help.h"
 | 
					#include "help.h"
 | 
				
			||||||
@@ -124,10 +124,11 @@ usage(void)
 | 
				
			|||||||
		env = user;
 | 
							env = user;
 | 
				
			||||||
	printf("  -U <username>   Specify database username (default: %s)\n", env);
 | 
						printf("  -U <username>   Specify database username (default: %s)\n", env);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	puts(  "  -x              Turn on expanded table output (-P expanded)");
 | 
					 | 
				
			||||||
	puts(  "  -v name=val     Set psql variable 'name' to 'value'");
 | 
						puts(  "  -v name=val     Set psql variable 'name' to 'value'");
 | 
				
			||||||
	puts(  "  -V              Show version information and exit");
 | 
						puts(  "  -V              Show version information and exit");
 | 
				
			||||||
	puts(  "  -W              Prompt for password (should happen automatically)");
 | 
						puts(  "  -W              Prompt for password (should happen automatically)");
 | 
				
			||||||
 | 
						puts(  "  -x              Turn on expanded table output (-P expanded)");
 | 
				
			||||||
 | 
						puts(  "  -X              Do not read startup file (~/.psqlrc)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    puts(  "\nFor more information, type \"\\?\" (for internal commands) or \"\\help\"");
 | 
					    puts(  "\nFor more information, type \"\\?\" (for internal commands) or \"\\help\"");
 | 
				
			||||||
    puts(  "(for SQL commands) from within psql, or consult the psql section in");
 | 
					    puts(  "(for SQL commands) from within psql, or consult the psql section in");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.22 2000/02/20 14:28:20 petere Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.23 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "postgres.h"
 | 
					#include "postgres.h"
 | 
				
			||||||
#include "mainloop.h"
 | 
					#include "mainloop.h"
 | 
				
			||||||
@@ -40,18 +40,17 @@ MainLoop(FILE *source)
 | 
				
			|||||||
                                   yet, use this one for \e, etc. */
 | 
					                                   yet, use this one for \e, etc. */
 | 
				
			||||||
	char	   *line;			/* current line of input */
 | 
						char	   *line;			/* current line of input */
 | 
				
			||||||
	int			len;			/* length of the line */
 | 
						int			len;			/* length of the line */
 | 
				
			||||||
	int			successResult = EXIT_SUCCESS;
 | 
						volatile int successResult = EXIT_SUCCESS;
 | 
				
			||||||
	backslashResult slashCmdStatus;
 | 
						volatile backslashResult slashCmdStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bool		success;
 | 
						bool		success;
 | 
				
			||||||
	char		in_quote;		/* == 0 for no in_quote */
 | 
						volatile char in_quote;		/* == 0 for no in_quote */
 | 
				
			||||||
	bool        xcomment;		/* in extended comment */
 | 
						volatile bool xcomment;		/* in extended comment */
 | 
				
			||||||
	int			paren_level;
 | 
						volatile int paren_level;
 | 
				
			||||||
	unsigned int query_start;
 | 
						unsigned int query_start;
 | 
				
			||||||
    int         count_eof = 0;
 | 
					    volatile int count_eof = 0;
 | 
				
			||||||
    const char *var;
 | 
					    const char *var;
 | 
				
			||||||
    bool         was_bslash;
 | 
					    volatile unsigned int bslash_count = 0;
 | 
				
			||||||
    unsigned int bslash_count = 0;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int			i,
 | 
						int			i,
 | 
				
			||||||
				prevlen,
 | 
									prevlen,
 | 
				
			||||||
@@ -98,7 +97,6 @@ MainLoop(FILE *source)
 | 
				
			|||||||
         */
 | 
					         */
 | 
				
			||||||
        if (cancel_pressed)
 | 
					        if (cancel_pressed)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            cancel_pressed = false;
 | 
					 | 
				
			||||||
            if (!pset.cur_cmd_interactive)
 | 
					            if (!pset.cur_cmd_interactive)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                /*
 | 
					                /*
 | 
				
			||||||
@@ -109,15 +107,25 @@ MainLoop(FILE *source)
 | 
				
			|||||||
                successResult = EXIT_USER;
 | 
					                successResult = EXIT_USER;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            cancel_pressed = false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
#ifndef WIN32
 | 
					
 | 
				
			||||||
        if (sigsetjmp(main_loop_jmp, 1) != 0)
 | 
					        if (sigsetjmp(main_loop_jmp, 1) != 0)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            /* got here with longjmp */
 | 
					            /* got here with longjmp */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (pset.cur_cmd_interactive)
 | 
					            if (pset.cur_cmd_interactive)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                fputc('\n', stdout);
 | 
					                fputc('\n', stdout);
 | 
				
			||||||
                resetPQExpBuffer(query_buf);
 | 
					                resetPQExpBuffer(query_buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /* reset parsing state */
 | 
				
			||||||
 | 
					                xcomment = false;
 | 
				
			||||||
 | 
					                in_quote = 0;
 | 
				
			||||||
 | 
					                paren_level = 0;
 | 
				
			||||||
 | 
					                count_eof = 0;
 | 
				
			||||||
 | 
					                slashCmdStatus = CMD_UNKNOWN;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -125,7 +133,7 @@ MainLoop(FILE *source)
 | 
				
			|||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (slashCmdStatus == CMD_NEWEDIT)
 | 
							if (slashCmdStatus == CMD_NEWEDIT)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -273,7 +281,7 @@ MainLoop(FILE *source)
 | 
				
			|||||||
             ADVANCE_1)
 | 
					             ADVANCE_1)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			/* was the previous character a backslash? */
 | 
								/* was the previous character a backslash? */
 | 
				
			||||||
			was_bslash = (i > 0 && line[i - prevlen] == '\\');
 | 
								bool was_bslash = (i > 0 && line[i - prevlen] == '\\');
 | 
				
			||||||
            if (was_bslash)
 | 
					            if (was_bslash)
 | 
				
			||||||
                bslash_count++;
 | 
					                bslash_count++;
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright 2000 by PostgreSQL Global Development Group
 | 
					 * Copyright 2000 by PostgreSQL Global Development Group
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.26 2000/02/27 01:10:31 tgl Exp $
 | 
					 * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.27 2000/03/01 21:09:58 petere Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "postgres.h"
 | 
					#include "postgres.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -70,6 +70,7 @@ struct adhoc_opts
 | 
				
			|||||||
	enum _actions action;
 | 
						enum _actions action;
 | 
				
			||||||
	char	   *action_string;
 | 
						char	   *action_string;
 | 
				
			||||||
	bool		no_readline;
 | 
						bool		no_readline;
 | 
				
			||||||
 | 
					    bool        no_psqlrc;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@@ -192,7 +193,7 @@ main(int argc, char *argv[])
 | 
				
			|||||||
		int			success = listAllDbs(false);
 | 
							int			success = listAllDbs(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		PQfinish(pset.db);
 | 
							PQfinish(pset.db);
 | 
				
			||||||
		exit(!success);
 | 
							exit(success ? EXIT_SUCCESS : EXIT_FAILURE);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SetVariable(pset.vars, "DBNAME", PQdb(pset.db));
 | 
					    SetVariable(pset.vars, "DBNAME", PQdb(pset.db));
 | 
				
			||||||
@@ -213,7 +214,12 @@ main(int argc, char *argv[])
 | 
				
			|||||||
     * process file given by -f
 | 
					     * process file given by -f
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
	if (options.action == ACT_FILE)
 | 
						if (options.action == ACT_FILE)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (!options.no_psqlrc)
 | 
				
			||||||
 | 
					            process_psqlrc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		successResult = process_file(options.action_string);
 | 
							successResult = process_file(options.action_string);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
     * process slash command if one was given to -c
 | 
					     * process slash command if one was given to -c
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
@@ -257,7 +263,8 @@ main(int argc, char *argv[])
 | 
				
			|||||||
        SetVariable(pset.vars, "PROMPT1", DEFAULT_PROMPT1);
 | 
					        SetVariable(pset.vars, "PROMPT1", DEFAULT_PROMPT1);
 | 
				
			||||||
        SetVariable(pset.vars, "PROMPT2", DEFAULT_PROMPT2);
 | 
					        SetVariable(pset.vars, "PROMPT2", DEFAULT_PROMPT2);
 | 
				
			||||||
        SetVariable(pset.vars, "PROMPT3", DEFAULT_PROMPT3);
 | 
					        SetVariable(pset.vars, "PROMPT3", DEFAULT_PROMPT3);
 | 
				
			||||||
        process_psqlrc();
 | 
					        if (!options.no_psqlrc)
 | 
				
			||||||
 | 
					            process_psqlrc();
 | 
				
			||||||
        if (!pset.notty)
 | 
					        if (!pset.notty)
 | 
				
			||||||
            initializeInput(options.no_readline ? 0 : 1);
 | 
					            initializeInput(options.no_readline ? 0 : 1);
 | 
				
			||||||
		successResult = MainLoop(stdin);
 | 
							successResult = MainLoop(stdin);
 | 
				
			||||||
@@ -310,11 +317,12 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 | 
				
			|||||||
		{"tuples-only", no_argument, NULL, 't'},
 | 
							{"tuples-only", no_argument, NULL, 't'},
 | 
				
			||||||
		{"table-attr", required_argument, NULL, 'T'},
 | 
							{"table-attr", required_argument, NULL, 'T'},
 | 
				
			||||||
		{"username", required_argument, NULL, 'U'},
 | 
							{"username", required_argument, NULL, 'U'},
 | 
				
			||||||
		{"expanded", no_argument, NULL, 'x'},
 | 
					 | 
				
			||||||
		{"set", required_argument, NULL, 'v'},
 | 
							{"set", required_argument, NULL, 'v'},
 | 
				
			||||||
		{"variable", required_argument, NULL, 'v'},
 | 
							{"variable", required_argument, NULL, 'v'},
 | 
				
			||||||
		{"version", no_argument, NULL, 'V'},
 | 
							{"version", no_argument, NULL, 'V'},
 | 
				
			||||||
		{"password", no_argument, NULL, 'W'},
 | 
							{"password", no_argument, NULL, 'W'},
 | 
				
			||||||
 | 
							{"expanded", no_argument, NULL, 'x'},
 | 
				
			||||||
 | 
					        {"no-psqlrc", no_argument, NULL, 'X'},
 | 
				
			||||||
		{"help", no_argument, NULL, '?'},
 | 
							{"help", no_argument, NULL, '?'},
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -329,13 +337,13 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 | 
				
			|||||||
	memset(options, 0, sizeof *options);
 | 
						memset(options, 0, sizeof *options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_GETOPT_LONG
 | 
					#ifdef HAVE_GETOPT_LONG
 | 
				
			||||||
	while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWx?", long_options, &optindex)) != -1)
 | 
						while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWxX?", long_options, &optindex)) != -1)
 | 
				
			||||||
#else /* not HAVE_GETOPT_LONG */
 | 
					#else /* not HAVE_GETOPT_LONG */
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Be sure to leave the '-' in here, so we can catch accidental long
 | 
						 * Be sure to leave the '-' in here, so we can catch accidental long
 | 
				
			||||||
	 * options.
 | 
						 * options.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	while ((c = getopt(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWx?-")) != -1)
 | 
						while ((c = getopt(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWxX?-")) != -1)
 | 
				
			||||||
#endif /* not HAVE_GETOPT_LONG */
 | 
					#endif /* not HAVE_GETOPT_LONG */
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		switch (c)
 | 
							switch (c)
 | 
				
			||||||
@@ -439,9 +447,6 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 | 
				
			|||||||
			case 'U':
 | 
								case 'U':
 | 
				
			||||||
				options->username = optarg;
 | 
									options->username = optarg;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			case 'x':
 | 
					 | 
				
			||||||
				pset.popt.topt.expanded = true;
 | 
					 | 
				
			||||||
				break;
 | 
					 | 
				
			||||||
			case 'v':
 | 
								case 'v':
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					char	   *value;
 | 
										char	   *value;
 | 
				
			||||||
@@ -478,6 +483,12 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 | 
				
			|||||||
			case 'W':
 | 
								case 'W':
 | 
				
			||||||
				pset.getPassword = true;
 | 
									pset.getPassword = true;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
								case 'x':
 | 
				
			||||||
 | 
									pset.popt.topt.expanded = true;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
					            case 'X':
 | 
				
			||||||
 | 
					                options->no_psqlrc = true;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
			case '?':
 | 
								case '?':
 | 
				
			||||||
                /* Actual help option given */
 | 
					                /* Actual help option given */
 | 
				
			||||||
                if (strcmp(argv[optind-1], "-?")==0 || strcmp(argv[optind-1], "--help")==0)
 | 
					                if (strcmp(argv[optind-1], "-?")==0 || strcmp(argv[optind-1], "--help")==0)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.42 2000/03/01 19:11:06 momjian Exp $
 | 
					# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.43 2000/03/01 21:10:04 petere Exp $
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
if [ $# -eq 0 ]
 | 
					if [ $# -eq 0 ]
 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
@@ -30,7 +30,7 @@ fi
 | 
				
			|||||||
PGTZ="PST8PDT"; export PGTZ
 | 
					PGTZ="PST8PDT"; export PGTZ
 | 
				
			||||||
PGDATESTYLE="Postgres,US"; export PGDATESTYLE
 | 
					PGDATESTYLE="Postgres,US"; export PGDATESTYLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FRONTEND="psql $HOSTLOC -a -q"
 | 
					FRONTEND="psql $HOSTLOC -a -q -X"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ----------
 | 
					# ----------
 | 
				
			||||||
# Scan resultmap file to find which platform-specific expected files to use.
 | 
					# Scan resultmap file to find which platform-specific expected files to use.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.10 2000/02/24 23:37:30 petere Exp $
 | 
					# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.11 2000/03/01 21:10:05 petere Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ----------
 | 
					# ----------
 | 
				
			||||||
# Check call syntax
 | 
					# Check call syntax
 | 
				
			||||||
@@ -91,7 +91,7 @@ PGDATESTYLE="ISO,US"; export PGDATESTYLE
 | 
				
			|||||||
# ----------
 | 
					# ----------
 | 
				
			||||||
# The SQL shell to use during this test
 | 
					# The SQL shell to use during this test
 | 
				
			||||||
# ----------
 | 
					# ----------
 | 
				
			||||||
FRONTEND="$BINDIR/psql $HOSTLOC -a -q"
 | 
					FRONTEND="$BINDIR/psql $HOSTLOC -a -q -X"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ----------
 | 
					# ----------
 | 
				
			||||||
# Scan resultmap file to find which platform-specific expected files to use.
 | 
					# Scan resultmap file to find which platform-specific expected files to use.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user