psql-meta-cmds-expanded-mode.patch
text/x-patch
Filename: psql-meta-cmds-expanded-mode.patch
Type: text/x-patch
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| doc/src/sgml/ref/psql-ref.sgml | 89 | 46 |
| src/bin/psql/command.c | 19 | 1 |
| src/bin/psql/describe.c | 2 | 2 |
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 72f3347e53..b2ba7776f2 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -864,6 +864,13 @@ testdb=>
same line.
</para>
+ <para>
+ Many of the meta-commands also allow <literal>x</literal> to be appended
+ as an option. This will cause the results to be displayed in expanded
+ mode, as if <literal>expanded=on</literal> were included in the list of
+ <literal>\pset</literal> options. See also <literal>\x</literal>.
+ </para>
+
<para>
The following meta-commands are defined:
@@ -1272,7 +1279,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-d">
- <term><literal>\d[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\d[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
@@ -1321,12 +1328,24 @@ SELECT $1 \parse stmt1
foreign tables.
This is purely a convenience measure.
</para>
+ <para>
+ As with many other commands, if <literal>x</literal> is appended to
+ the command name, the results are displayed in expanded mode, but note
+ that this only applies when <command>\d</command> is used without a
+ <replaceable class="parameter">pattern</replaceable> argument, and
+ the <literal>x</literal> modifier cannot appear immediately after the
+ <command>\d</command> (because <command>\dx</command> is a different
+ command); the <literal>x</literal> modifier may only appear after a
+ <literal>S</literal> or <literal>+</literal> modifier. For example,
+ <command>\d+x</command> is equivalent to <command>\dtvmsE+x</command>
+ and will show a list of all relations in expanded mode.
+ </para>
</note>
</listitem>
</varlistentry>
<varlistentry id="app-psql-meta-command-da-lc">
- <term><literal>\da[S] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\da[Sx] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
@@ -1342,7 +1361,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-da-uc">
- <term><literal>\dA[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dA[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
@@ -1357,7 +1376,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dac">
<term>
- <literal>\dAc[+]
+ <literal>\dAc[x+]
[<link linkend="app-psql-patterns"><replaceable class="parameter">access-method-pattern</replaceable></link>
[<link linkend="app-psql-patterns"><replaceable class="parameter">input-type-pattern</replaceable></link>]]
</literal>
@@ -1380,7 +1399,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-daf">
<term>
- <literal>\dAf[+]
+ <literal>\dAf[x+]
[<link linkend="app-psql-patterns"><replaceable class="parameter">access-method-pattern</replaceable></link>
[<link linkend="app-psql-patterns"><replaceable class="parameter">input-type-pattern</replaceable></link>]]
</literal>
@@ -1403,7 +1422,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dao">
<term>
- <literal>\dAo[+]
+ <literal>\dAo[x+]
[<link linkend="app-psql-patterns"><replaceable class="parameter">access-method-pattern</replaceable></link>
[<link linkend="app-psql-patterns"><replaceable class="parameter">operator-family-pattern</replaceable></link>]]
</literal>
@@ -1427,7 +1446,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dap">
<term>
- <literal>\dAp[+]
+ <literal>\dAp[x+]
[<link linkend="app-psql-patterns"><replaceable class="parameter">access-method-pattern</replaceable></link>
[<link linkend="app-psql-patterns"><replaceable class="parameter">operator-family-pattern</replaceable></link>]]
</literal>
@@ -1449,7 +1468,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-db">
- <term><literal>\db[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\db[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
@@ -1465,7 +1484,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dc-lc">
- <term><literal>\dc[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dc[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists conversions between character-set encodings.
@@ -1483,7 +1502,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dconfig">
- <term><literal>\dconfig[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dconfig[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists server configuration parameters and their values.
@@ -1502,7 +1521,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dc-uc">
- <term><literal>\dC[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dC[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists type casts.
@@ -1517,7 +1536,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dd-lc">
- <term><literal>\dd[S] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dd[Sx] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Shows the descriptions of objects of type <literal>constraint</literal>,
@@ -1546,7 +1565,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dd-uc">
- <term><literal>\dD[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dD[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists domains. If <replaceable
@@ -1563,7 +1582,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-ddp">
- <term><literal>\ddp [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\ddp[x] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists default access privilege settings. An entry is shown for
@@ -1585,12 +1604,12 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-de">
- <term><literal>\dE[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
- <term><literal>\di[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
- <term><literal>\dm[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
- <term><literal>\ds[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
- <term><literal>\dt[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
- <term><literal>\dv[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dE[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\di[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dm[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\ds[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dt[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dv[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
@@ -1618,7 +1637,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-des">
- <term><literal>\des[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\des[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists foreign servers (mnemonic: <quote>external
@@ -1634,7 +1653,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-det">
- <term><literal>\det[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\det[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists foreign tables (mnemonic: <quote>external tables</quote>).
@@ -1649,7 +1668,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-deu">
- <term><literal>\deu[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\deu[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists user mappings (mnemonic: <quote>external
@@ -1672,7 +1691,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dew">
- <term><literal>\dew[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dew[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists foreign-data wrappers (mnemonic: <quote>external
@@ -1688,7 +1707,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-df-lc">
- <term><literal>\df[anptwS+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> [ <replaceable class="parameter">arg_pattern</replaceable> ... ] ]</literal></term>
+ <term><literal>\df[anptwSx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> [ <replaceable class="parameter">arg_pattern</replaceable> ... ] ]</literal></term>
<listitem>
<para>
@@ -1722,7 +1741,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-df-uc">
- <term><literal>\dF[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dF[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists text search configurations.
@@ -1736,7 +1755,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dfd">
- <term><literal>\dFd[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dFd[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists text search dictionaries.
@@ -1750,7 +1769,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dfp">
- <term><literal>\dFp[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dFp[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists text search parsers.
@@ -1764,7 +1783,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dft">
- <term><literal>\dFt[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dFt[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists text search templates.
@@ -1778,7 +1797,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dg">
- <term><literal>\dg[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dg[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists database roles.
@@ -1798,7 +1817,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dl-lc">
- <term><literal>\dl[+]</literal></term>
+ <term><literal>\dl[x+]</literal></term>
<listitem>
<para>
This is an alias for <command>\lo_list</command>, which shows a
@@ -1811,7 +1830,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dl-uc">
- <term><literal>\dL[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dL[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists procedural languages. If <replaceable
@@ -1828,7 +1847,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dn">
- <term><literal>\dn[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dn[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
@@ -1845,7 +1864,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-do-lc">
- <term><literal>\do[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> [ <replaceable class="parameter">arg_pattern</replaceable> [ <replaceable class="parameter">arg_pattern</replaceable> ] ] ]</literal></term>
+ <term><literal>\do[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> [ <replaceable class="parameter">arg_pattern</replaceable> [ <replaceable class="parameter">arg_pattern</replaceable> ] ] ]</literal></term>
<listitem>
<para>
Lists operators with their operand and result types.
@@ -1870,7 +1889,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-do-uc">
- <term><literal>\dO[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dO[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists collations.
@@ -1890,7 +1909,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dp-lc">
- <term><literal>\dp[S] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dp[Sx] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists tables, views and sequences with their
@@ -1914,7 +1933,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-dp-uc">
- <term><literal>\dP[itn+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dP[itnx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists partitioned relations.
@@ -1947,7 +1966,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-drds">
- <term><literal>\drds [ <link linkend="app-psql-patterns"><replaceable class="parameter">role-pattern</replaceable></link> [ <link linkend="app-psql-patterns"><replaceable class="parameter">database-pattern</replaceable></link> ] ]</literal></term>
+ <term><literal>\drds[x] [ <link linkend="app-psql-patterns"><replaceable class="parameter">role-pattern</replaceable></link> [ <link linkend="app-psql-patterns"><replaceable class="parameter">database-pattern</replaceable></link> ] ]</literal></term>
<listitem>
<para>
Lists defined configuration settings. These settings can be
@@ -1970,7 +1989,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-drg">
- <term><literal>\drg[S] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\drg[Sx] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists information about each granted role membership, including
@@ -1990,7 +2009,7 @@ SELECT $1 \parse stmt1
<varlistentry id="app-psql-meta-command-drp">
- <term><literal>\dRp[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dRp[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists replication publications.
@@ -2004,7 +2023,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-drs">
- <term><literal>\dRs[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dRs[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists replication subscriptions.
@@ -2018,7 +2037,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dt">
- <term><literal>\dT[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dT[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists data types.
@@ -2035,7 +2054,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-du">
- <term><literal>\du[S+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\du[Sx+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists database roles.
@@ -2054,7 +2073,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dx-lc">
- <term><literal>\dx[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dx[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists installed extensions.
@@ -2068,7 +2087,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dx-uc">
- <term><literal>\dX [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dX[x] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists extended statistics.
@@ -2090,7 +2109,7 @@ SELECT $1 \parse stmt1
</varlistentry>
<varlistentry id="app-psql-meta-command-dy">
- <term><literal>\dy[+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
+ <term><literal>\dy[x+] [ <link linkend="app-psql-patterns"><replaceable class="parameter">pattern</replaceable></link> ]</literal></term>
<listitem>
<para>
Lists event triggers.
@@ -5386,6 +5405,30 @@ testdb=> <userinput>\df int*pl * bigint</userinput>
</programlisting>
</para>
+ <para>
+ Here, the <literal>+</literal> option is used to display additional
+ information about one of these functions, and <literal>x</literal> is used
+ to display the results in expanded mode:
+<programlisting>
+testdb=> <userinput>\df+x int4*pl * bigint</userinput>
+List of functions
+-[ RECORD 1 ]-------+-----------------------------
+Schema | pg_catalog
+Name | int48pl
+Result data type | bigint
+Argument data types | integer, bigint
+Type | func
+Volatility | immutable
+Parallel | safe
+Owner | pgdevel
+Security | invoker
+Access privileges |
+Language | internal
+Internal name | int48pl
+Description | implementation of + operator
+</programlisting>
+ </para>
+
<para>
When suitable, query results can be shown in a crosstab representation
with the <command>\crosstabview</command> command:
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index cd16f27947..462b23118f 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -850,6 +850,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
char *pattern;
bool show_verbose,
show_system;
+ unsigned short int save_expanded;
/* We don't do SQLID reduction on the pattern yet */
pattern = psql_scan_slash_option(scan_state,
@@ -858,6 +859,16 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
show_verbose = strchr(cmd, '+') ? true : false;
show_system = strchr(cmd, 'S') ? true : false;
+ /*
+ * The 'x' option turns expanded mode on for this command only. This
+ * is allowed in all \d* commands, except \d by itself, since \dx is a
+ * separate command, and so the 'x' option cannot appear immediately
+ * after the initial 'd'.
+ */
+ save_expanded = pset.popt.topt.expanded;
+ if (strchr(&cmd[2], 'x'))
+ pset.popt.topt.expanded = 1;
+
switch (cmd[1])
{
case '\0':
@@ -873,13 +884,14 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
{
char *pattern2 = NULL;
- if (pattern && cmd[2] != '\0' && cmd[2] != '+')
+ if (pattern && cmd[2] != '\0' && cmd[2] != '+' && cmd[2] != 'x')
pattern2 = psql_scan_slash_option(scan_state, OT_NORMAL, NULL, true);
switch (cmd[2])
{
case '\0':
case '+':
+ case 'x':
success = describeAccessMethods(pattern, show_verbose);
break;
case 'c':
@@ -941,6 +953,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
case 'p':
case 't':
case 'w':
+ case 'x':
success = exec_command_dfo(scan_state, cmd, pattern,
show_verbose, show_system);
break;
@@ -981,6 +994,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
case 't':
case 'i':
case 'n':
+ case 'x':
success = listPartitionedTables(&cmd[2], pattern, show_verbose);
break;
default:
@@ -1041,6 +1055,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
{
case '\0':
case '+':
+ case 'x':
success = listTSConfigs(pattern, show_verbose);
break;
case 'p':
@@ -1093,6 +1108,9 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
status = PSQL_CMD_UNKNOWN;
}
+ /* Restore original expanded mode */
+ pset.popt.topt.expanded = save_expanded;
+
free(pattern);
}
else
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 2657abdc72..cbfb37e716 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -309,9 +309,9 @@ describeFunctions(const char *functypes, const char *func_pattern,
/* No "Parallel" column before 9.6 */
static const bool translate_columns_pre_96[] = {false, false, false, false, true, true, false, true, false, false, false, false};
- if (strlen(functypes) != strspn(functypes, "anptwS+"))
+ if (strlen(functypes) != strspn(functypes, "anptwSx+"))
{
- pg_log_error("\\df only takes [anptwS+] as options");
+ pg_log_error("\\df only takes [anptwSx+] as options");
return true;
}