mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-02 23:26:53 +02:00
Add psql \prompt capability.
Chad Wagner
This commit is contained in:
parent
cc77005df7
commit
7031dd6869
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.186 2007/02/21 23:22:42 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.187 2007/02/23 18:20:58 momjian Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -1429,6 +1429,24 @@ lo_import 152801
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><literal>\prompt [ <replaceable class="parameter">text</replaceable> ] <replaceable class="parameter">name</replaceable></literal></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prompts the user to set variable <replaceable
|
||||||
|
class="parameter">name</>. An optional prompt, <replaceable
|
||||||
|
class="parameter">text</>, can be specified. (For multi-word
|
||||||
|
prompts, use single-quotes.)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
By default, <literal>\prompt</> uses the terminal for input and
|
||||||
|
output. However, if the <option>-f</> command line switch is
|
||||||
|
used, <literal>\prompt</> uses standard input and standard output.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><literal>\pset <replaceable class="parameter">parameter</replaceable> [ <replaceable class="parameter">value</replaceable> ]</literal></term>
|
<term><literal>\pset <replaceable class="parameter">parameter</replaceable> [ <replaceable class="parameter">value</replaceable> ]</literal></term>
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.177 2007/01/05 22:19:49 momjian Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.178 2007/02/23 18:20:58 momjian Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
@ -712,6 +712,57 @@ exec_command(const char *cmd,
|
|||||||
free(pw2);
|
free(pw2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* \prompt -- prompt and set variable */
|
||||||
|
else if (strcmp(cmd, "prompt") == 0)
|
||||||
|
{
|
||||||
|
char *opt, *prompt_text = NULL;
|
||||||
|
char *arg1, *arg2;
|
||||||
|
|
||||||
|
arg1 = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, false);
|
||||||
|
arg2 = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, false);
|
||||||
|
|
||||||
|
if (!arg1)
|
||||||
|
{
|
||||||
|
psql_error("\\%s: missing required argument\n", cmd);
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *result;
|
||||||
|
|
||||||
|
if (arg2)
|
||||||
|
{
|
||||||
|
prompt_text = arg1;
|
||||||
|
opt = arg2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
opt = arg1;
|
||||||
|
|
||||||
|
if (!pset.inputfile)
|
||||||
|
result = simple_prompt(prompt_text, 4096, true);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (prompt_text)
|
||||||
|
{
|
||||||
|
fputs(prompt_text, stdout);
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
result = gets_fromFile(stdin);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!SetVariable(pset.vars, opt, result))
|
||||||
|
{
|
||||||
|
psql_error("\\%s: error\n", cmd);
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(result);
|
||||||
|
if (prompt_text)
|
||||||
|
free(prompt_text);
|
||||||
|
free(opt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* \pset -- set printing parameters */
|
/* \pset -- set printing parameters */
|
||||||
else if (strcmp(cmd, "pset") == 0)
|
else if (strcmp(cmd, "pset") == 0)
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/help.c,v 1.116 2007/01/05 22:19:49 momjian Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/help.c,v 1.117 2007/02/23 18:20:59 momjian Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ slashUsage(unsigned short int pager)
|
|||||||
{
|
{
|
||||||
FILE *output;
|
FILE *output;
|
||||||
|
|
||||||
output = PageOutput(67, pager);
|
output = PageOutput(69, pager);
|
||||||
|
|
||||||
/* if you add/remove a line here, change the row count above */
|
/* if you add/remove a line here, change the row count above */
|
||||||
|
|
||||||
@ -184,6 +184,8 @@ slashUsage(unsigned short int pager)
|
|||||||
fprintf(output, _(" \\timing toggle timing of commands (currently %s)\n"),
|
fprintf(output, _(" \\timing toggle timing of commands (currently %s)\n"),
|
||||||
ON(pset.timing));
|
ON(pset.timing));
|
||||||
fprintf(output, _(" \\unset NAME unset (delete) internal variable\n"));
|
fprintf(output, _(" \\unset NAME unset (delete) internal variable\n"));
|
||||||
|
fprintf(output, _(" \\prompt [TEXT] NAME\n"
|
||||||
|
" prompt user to set internal variable\n"));
|
||||||
fprintf(output, _(" \\! [COMMAND] execute command in shell or start interactive shell\n"));
|
fprintf(output, _(" \\! [COMMAND] execute command in shell or start interactive shell\n"));
|
||||||
fprintf(output, "\n");
|
fprintf(output, "\n");
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.158 2007/02/07 00:52:35 petere Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.159 2007/02/23 18:20:59 momjian Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
@ -542,7 +542,7 @@ psql_completion(char *text, int start, int end)
|
|||||||
"\\e", "\\echo", "\\encoding",
|
"\\e", "\\echo", "\\encoding",
|
||||||
"\\f", "\\g", "\\h", "\\help", "\\H", "\\i", "\\l",
|
"\\f", "\\g", "\\h", "\\help", "\\H", "\\i", "\\l",
|
||||||
"\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
|
"\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
|
||||||
"\\o", "\\p", "\\password", "\\pset", "\\q", "\\qecho", "\\r",
|
"\\o", "\\p", "\\password", "\\prompt", "\\pset", "\\q", "\\qecho", "\\r",
|
||||||
"\\set", "\\t", "\\T",
|
"\\set", "\\t", "\\T",
|
||||||
"\\timing", "\\unset", "\\x", "\\w", "\\z", "\\!", NULL
|
"\\timing", "\\unset", "\\x", "\\w", "\\z", "\\!", NULL
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user