psql: Make \pset without arguments show all settings.
Gilles Darold, reviewed by Pavel Stehule
This commit is contained in:
parent
c2b175b948
commit
c64e68fd9f
|
@ -2272,13 +2272,10 @@ lo_import 152801
|
||||||
</para>
|
</para>
|
||||||
</tip>
|
</tip>
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>
|
<para>
|
||||||
It is an error to call <command>\pset</command> without any
|
<command>\pset</command> without any arguments displays the current status
|
||||||
arguments. In the future this case might show the current status
|
|
||||||
of all printing options.
|
of all printing options.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
|
@ -68,6 +68,7 @@ static int strip_lineno_from_funcdesc(char *func);
|
||||||
static void minimal_error_message(PGresult *res);
|
static void minimal_error_message(PGresult *res);
|
||||||
|
|
||||||
static void printSSLInfo(void);
|
static void printSSLInfo(void);
|
||||||
|
static bool printPsetInfo(const char *param, struct printQueryOpt *popt);
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
static void checkWin32Codepage(void);
|
static void checkWin32Codepage(void);
|
||||||
|
@ -1045,8 +1046,20 @@ exec_command(const char *cmd,
|
||||||
|
|
||||||
if (!opt0)
|
if (!opt0)
|
||||||
{
|
{
|
||||||
psql_error("\\%s: missing required argument\n", cmd);
|
size_t i;
|
||||||
success = false;
|
/* list all variables */
|
||||||
|
static const char *const my_list[] = {
|
||||||
|
"border", "columns", "expanded", "fieldsep",
|
||||||
|
"footer", "format", "linestyle", "null",
|
||||||
|
"numericlocale", "pager", "recordsep",
|
||||||
|
"tableattr", "title", "tuples_only",
|
||||||
|
NULL };
|
||||||
|
for (i = 0; my_list[i] != NULL; i++) {
|
||||||
|
printPsetInfo(my_list[i], &pset.popt);
|
||||||
|
}
|
||||||
|
|
||||||
|
success = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
success = do_pset(opt0, opt1, &pset.popt, pset.quiet);
|
success = do_pset(opt0, opt1, &pset.popt, pset.quiet);
|
||||||
|
@ -2275,8 +2288,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!quiet)
|
|
||||||
printf(_("Output format is %s.\n"), _align2string(popt->topt.format));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set table line style */
|
/* set table line style */
|
||||||
|
@ -2296,9 +2307,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!quiet)
|
|
||||||
printf(_("Line style is %s.\n"),
|
|
||||||
get_line_style(&popt->topt)->name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set border style/width */
|
/* set border style/width */
|
||||||
|
@ -2307,8 +2315,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
if (value)
|
if (value)
|
||||||
popt->topt.border = atoi(value);
|
popt->topt.border = atoi(value);
|
||||||
|
|
||||||
if (!quiet)
|
|
||||||
printf(_("Border style is %d.\n"), popt->topt.border);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set expanded/vertical mode */
|
/* set expanded/vertical mode */
|
||||||
|
@ -2320,15 +2326,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.expanded = ParseVariableBool(value);
|
popt->topt.expanded = ParseVariableBool(value);
|
||||||
else
|
else
|
||||||
popt->topt.expanded = !popt->topt.expanded;
|
popt->topt.expanded = !popt->topt.expanded;
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.expanded == 1)
|
|
||||||
printf(_("Expanded display is on.\n"));
|
|
||||||
else if (popt->topt.expanded == 2)
|
|
||||||
printf(_("Expanded display is used automatically.\n"));
|
|
||||||
else
|
|
||||||
printf(_("Expanded display is off.\n"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* locale-aware numeric output */
|
/* locale-aware numeric output */
|
||||||
|
@ -2338,13 +2335,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.numericLocale = ParseVariableBool(value);
|
popt->topt.numericLocale = ParseVariableBool(value);
|
||||||
else
|
else
|
||||||
popt->topt.numericLocale = !popt->topt.numericLocale;
|
popt->topt.numericLocale = !popt->topt.numericLocale;
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.numericLocale)
|
|
||||||
puts(_("Showing locale-adjusted numeric output."));
|
|
||||||
else
|
|
||||||
puts(_("Locale-adjusted numeric output is off."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* null display */
|
/* null display */
|
||||||
|
@ -2355,8 +2345,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
free(popt->nullPrint);
|
free(popt->nullPrint);
|
||||||
popt->nullPrint = pg_strdup(value);
|
popt->nullPrint = pg_strdup(value);
|
||||||
}
|
}
|
||||||
if (!quiet)
|
|
||||||
printf(_("Null display is \"%s\".\n"), popt->nullPrint ? popt->nullPrint : "");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* field separator for unaligned text */
|
/* field separator for unaligned text */
|
||||||
|
@ -2368,13 +2356,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.fieldSep.separator = pg_strdup(value);
|
popt->topt.fieldSep.separator = pg_strdup(value);
|
||||||
popt->topt.fieldSep.separator_zero = false;
|
popt->topt.fieldSep.separator_zero = false;
|
||||||
}
|
}
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.fieldSep.separator_zero)
|
|
||||||
printf(_("Field separator is zero byte.\n"));
|
|
||||||
else
|
|
||||||
printf(_("Field separator is \"%s\".\n"), popt->topt.fieldSep.separator);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (strcmp(param, "fieldsep_zero") == 0)
|
else if (strcmp(param, "fieldsep_zero") == 0)
|
||||||
|
@ -2382,8 +2363,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
free(popt->topt.fieldSep.separator);
|
free(popt->topt.fieldSep.separator);
|
||||||
popt->topt.fieldSep.separator = NULL;
|
popt->topt.fieldSep.separator = NULL;
|
||||||
popt->topt.fieldSep.separator_zero = true;
|
popt->topt.fieldSep.separator_zero = true;
|
||||||
if (!quiet)
|
|
||||||
printf(_("Field separator is zero byte.\n"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* record separator for unaligned text */
|
/* record separator for unaligned text */
|
||||||
|
@ -2395,15 +2374,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.recordSep.separator = pg_strdup(value);
|
popt->topt.recordSep.separator = pg_strdup(value);
|
||||||
popt->topt.recordSep.separator_zero = false;
|
popt->topt.recordSep.separator_zero = false;
|
||||||
}
|
}
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.recordSep.separator_zero)
|
|
||||||
printf(_("Record separator is zero byte.\n"));
|
|
||||||
else if (strcmp(popt->topt.recordSep.separator, "\n") == 0)
|
|
||||||
printf(_("Record separator is <newline>."));
|
|
||||||
else
|
|
||||||
printf(_("Record separator is \"%s\".\n"), popt->topt.recordSep.separator);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (strcmp(param, "recordsep_zero") == 0)
|
else if (strcmp(param, "recordsep_zero") == 0)
|
||||||
|
@ -2411,8 +2381,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
free(popt->topt.recordSep.separator);
|
free(popt->topt.recordSep.separator);
|
||||||
popt->topt.recordSep.separator = NULL;
|
popt->topt.recordSep.separator = NULL;
|
||||||
popt->topt.recordSep.separator_zero = true;
|
popt->topt.recordSep.separator_zero = true;
|
||||||
if (!quiet)
|
|
||||||
printf(_("Record separator is zero byte.\n"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* toggle between full and tuples-only format */
|
/* toggle between full and tuples-only format */
|
||||||
|
@ -2422,13 +2390,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.tuples_only = ParseVariableBool(value);
|
popt->topt.tuples_only = ParseVariableBool(value);
|
||||||
else
|
else
|
||||||
popt->topt.tuples_only = !popt->topt.tuples_only;
|
popt->topt.tuples_only = !popt->topt.tuples_only;
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.tuples_only)
|
|
||||||
puts(_("Showing only tuples."));
|
|
||||||
else
|
|
||||||
puts(_("Tuples only is off."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set title override */
|
/* set title override */
|
||||||
|
@ -2439,14 +2400,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->title = NULL;
|
popt->title = NULL;
|
||||||
else
|
else
|
||||||
popt->title = pg_strdup(value);
|
popt->title = pg_strdup(value);
|
||||||
|
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->title)
|
|
||||||
printf(_("Title is \"%s\".\n"), popt->title);
|
|
||||||
else
|
|
||||||
printf(_("Title is unset.\n"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set HTML table tag options */
|
/* set HTML table tag options */
|
||||||
|
@ -2457,14 +2410,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.tableAttr = NULL;
|
popt->topt.tableAttr = NULL;
|
||||||
else
|
else
|
||||||
popt->topt.tableAttr = pg_strdup(value);
|
popt->topt.tableAttr = pg_strdup(value);
|
||||||
|
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.tableAttr)
|
|
||||||
printf(_("Table attribute is \"%s\".\n"), popt->topt.tableAttr);
|
|
||||||
else
|
|
||||||
printf(_("Table attributes unset.\n"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* toggle use of pager */
|
/* toggle use of pager */
|
||||||
|
@ -2481,15 +2426,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.pager = 0;
|
popt->topt.pager = 0;
|
||||||
else
|
else
|
||||||
popt->topt.pager = 1;
|
popt->topt.pager = 1;
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.pager == 1)
|
|
||||||
puts(_("Pager is used for long output."));
|
|
||||||
else if (popt->topt.pager == 2)
|
|
||||||
puts(_("Pager is always used."));
|
|
||||||
else
|
|
||||||
puts(_("Pager usage is off."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* disable "(x rows)" footer */
|
/* disable "(x rows)" footer */
|
||||||
|
@ -2499,13 +2435,6 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
popt->topt.default_footer = ParseVariableBool(value);
|
popt->topt.default_footer = ParseVariableBool(value);
|
||||||
else
|
else
|
||||||
popt->topt.default_footer = !popt->topt.default_footer;
|
popt->topt.default_footer = !popt->topt.default_footer;
|
||||||
if (!quiet)
|
|
||||||
{
|
|
||||||
if (popt->topt.default_footer)
|
|
||||||
puts(_("Default footer is on."));
|
|
||||||
else
|
|
||||||
puts(_("Default footer is off."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set border style/width */
|
/* set border style/width */
|
||||||
|
@ -2513,9 +2442,167 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
|
||||||
{
|
{
|
||||||
if (value)
|
if (value)
|
||||||
popt->topt.columns = atoi(value);
|
popt->topt.columns = atoi(value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
psql_error("\\pset: unknown option: %s\n", param);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!quiet)
|
if (!quiet)
|
||||||
printf(_("Target width is %d.\n"), popt->topt.columns);
|
printPsetInfo(param, &pset.popt);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool
|
||||||
|
printPsetInfo(const char *param, struct printQueryOpt *popt)
|
||||||
|
{
|
||||||
|
Assert(param != NULL);
|
||||||
|
|
||||||
|
/* show border style/width */
|
||||||
|
if (strcmp(param, "border") == 0)
|
||||||
|
{
|
||||||
|
if (!popt->topt.border)
|
||||||
|
printf(_("Border style (%s) unset.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Border style (%s) is %d.\n"), param,
|
||||||
|
popt->topt.border);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show the target width for the wrapped format */
|
||||||
|
else if (strcmp(param, "columns") == 0)
|
||||||
|
{
|
||||||
|
if (!popt->topt.columns)
|
||||||
|
printf(_("Target width (%s) unset.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Target width (%s) is %d.\n"), param,
|
||||||
|
popt->topt.columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show expanded/vertical mode */
|
||||||
|
else if (strcmp(param, "x") == 0 || strcmp(param, "expanded") == 0 || strcmp(param, "vertical") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.expanded == 1)
|
||||||
|
printf(_("Expanded display (%s) is on.\n"), param);
|
||||||
|
else if (popt->topt.expanded == 2)
|
||||||
|
printf(_("Expanded display (%s) is used automatically.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Expanded display (%s) is off.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show field separator for unaligned text */
|
||||||
|
else if (strcmp(param, "fieldsep") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.fieldSep.separator_zero)
|
||||||
|
printf(_("Field separator (%s) is zero byte.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Field separator (%s) is \"%s\".\n"), param,
|
||||||
|
popt->topt.fieldSep.separator);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (strcmp(param, "fieldsep_zero") == 0)
|
||||||
|
{
|
||||||
|
printf(_("Field separator (%s) is zero byte.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show disable "(x rows)" footer */
|
||||||
|
else if (strcmp(param, "footer") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.default_footer)
|
||||||
|
printf(_("Default footer (%s) is on.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Default footer (%s) is off."), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show format */
|
||||||
|
else if (strcmp(param, "format") == 0)
|
||||||
|
{
|
||||||
|
if (!popt->topt.format)
|
||||||
|
printf(_("Output format (%s) is aligned.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Output format (%s) is %s.\n"), param,
|
||||||
|
_align2string(popt->topt.format));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show table line style */
|
||||||
|
else if (strcmp(param, "linestyle") == 0)
|
||||||
|
{
|
||||||
|
printf(_("Line style (%s) is %s.\n"), param,
|
||||||
|
get_line_style(&popt->topt)->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show null display */
|
||||||
|
else if (strcmp(param, "null") == 0)
|
||||||
|
{
|
||||||
|
printf(_("Null display (%s) is \"%s\".\n"), param,
|
||||||
|
popt->nullPrint ? popt->nullPrint : "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show locale-aware numeric output */
|
||||||
|
else if (strcmp(param, "numericlocale") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.numericLocale)
|
||||||
|
printf(_("Locale-adjusted numeric output (%s) is on.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Locale-adjusted numeric output (%s) is off.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show toggle use of pager */
|
||||||
|
else if (strcmp(param, "pager") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.pager == 1)
|
||||||
|
printf(_("Pager (%s) is used for long output.\n"), param);
|
||||||
|
else if (popt->topt.pager == 2)
|
||||||
|
printf(_("Pager (%s) is always used.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Pager (%s) usage is off.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show record separator for unaligned text */
|
||||||
|
else if (strcmp(param, "recordsep") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.recordSep.separator_zero)
|
||||||
|
printf(_("Record separator (%s) is zero byte.\n"), param);
|
||||||
|
else if (strcmp(popt->topt.recordSep.separator, "\n") == 0)
|
||||||
|
printf(_("Record separator (%s) is <newline>.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Record separator (%s) is \"%s\".\n"), param,
|
||||||
|
popt->topt.recordSep.separator);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (strcmp(param, "recordsep_zero") == 0)
|
||||||
|
{
|
||||||
|
printf(_("Record separator (%s) is zero byte.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show HTML table tag options */
|
||||||
|
else if (strcmp(param, "T") == 0 || strcmp(param, "tableattr") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.tableAttr)
|
||||||
|
printf(_("Table attribute (%s) is \"%s\".\n"), param,
|
||||||
|
popt->topt.tableAttr);
|
||||||
|
else
|
||||||
|
printf(_("Table attributes (%s) unset.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show title override */
|
||||||
|
else if (strcmp(param, "title") == 0)
|
||||||
|
{
|
||||||
|
if (popt->title)
|
||||||
|
printf(_("Title (%s) is \"%s\".\n"), param, popt->title);
|
||||||
|
else
|
||||||
|
printf(_("Title (%s) unset.\n"), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show toggle between full and tuples-only format */
|
||||||
|
else if (strcmp(param, "t") == 0 || strcmp(param, "tuples_only") == 0)
|
||||||
|
{
|
||||||
|
if (popt->topt.tuples_only)
|
||||||
|
printf(_("Tuples only (%s) is on.\n"), param);
|
||||||
|
else
|
||||||
|
printf(_("Tuples only (%s) is off.\n"), param);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
|
@ -247,7 +247,7 @@ slashUsage(unsigned short int pager)
|
||||||
fprintf(output, _(" \\f [STRING] show or set field separator for unaligned query output\n"));
|
fprintf(output, _(" \\f [STRING] show or set field separator for unaligned query output\n"));
|
||||||
fprintf(output, _(" \\H toggle HTML output mode (currently %s)\n"),
|
fprintf(output, _(" \\H toggle HTML output mode (currently %s)\n"),
|
||||||
ON(pset.popt.topt.format == PRINT_HTML));
|
ON(pset.popt.topt.format == PRINT_HTML));
|
||||||
fprintf(output, _(" \\pset NAME [VALUE] set table output option\n"
|
fprintf(output, _(" \\pset [NAME [VALUE]] set table output option\n"
|
||||||
" (NAME := {format|border|expanded|fieldsep|fieldsep_zero|footer|null|\n"
|
" (NAME := {format|border|expanded|fieldsep|fieldsep_zero|footer|null|\n"
|
||||||
" numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager})\n"));
|
" numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager})\n"));
|
||||||
fprintf(output, _(" \\t [on|off] show only rows (currently %s)\n"),
|
fprintf(output, _(" \\t [on|off] show only rows (currently %s)\n"),
|
||||||
|
|
|
@ -52,3 +52,19 @@ more than one row returned for \gset
|
||||||
select 10 as test01, 20 as test02 from generate_series(1,0) \gset
|
select 10 as test01, 20 as test02 from generate_series(1,0) \gset
|
||||||
no rows returned for \gset
|
no rows returned for \gset
|
||||||
\unset FETCH_COUNT
|
\unset FETCH_COUNT
|
||||||
|
-- show all pset options
|
||||||
|
\pset
|
||||||
|
Border style (border) is 1.
|
||||||
|
Target width (columns) unset.
|
||||||
|
Expanded display (expanded) is off.
|
||||||
|
Field separator (fieldsep) is "|".
|
||||||
|
Default footer (footer) is on.
|
||||||
|
Output format (format) is aligned.
|
||||||
|
Line style (linestyle) is ascii.
|
||||||
|
Null display (null) is "".
|
||||||
|
Locale-adjusted numeric output (numericlocale) is off.
|
||||||
|
Pager (pager) is used for long output.
|
||||||
|
Record separator (recordsep) is <newline>.
|
||||||
|
Table attributes (tableattr) unset.
|
||||||
|
Title (title) unset.
|
||||||
|
Tuples only (tuples_only) is off.
|
||||||
|
|
|
@ -37,3 +37,6 @@ select 10 as test01, 20 as test02 from generate_series(1,3) \gset
|
||||||
select 10 as test01, 20 as test02 from generate_series(1,0) \gset
|
select 10 as test01, 20 as test02 from generate_series(1,0) \gset
|
||||||
|
|
||||||
\unset FETCH_COUNT
|
\unset FETCH_COUNT
|
||||||
|
|
||||||
|
-- show all pset options
|
||||||
|
\pset
|
||||||
|
|
Loading…
Reference in New Issue