{"kind": "psql", "major": "18", "item": {"slug": "cmd-70-73-65-74", "name": "\\pset", "name_zh": "", "category": "Output and formatting", "summary": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed.", "aliases": ["\\pset"], "content_hash": "a9be6e5fc779d4cb716d15b40c3bed7a68c91331b5dc7be9d444d18ace8024a3", "versions": {"10": {"facts": [{"label": "Client", "value": "psql 10.23"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=10", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=10", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/10/postgresql-10-A4.pdf", "bytes": 12631706, "pages": 2591, "sha256": "34497ab9efb45c5bdf1bd11b9016b5451354feb462fa029cf74557a5fa5fbbc1", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/10/postgresql-10-US.pdf", "bytes": 12531684, "pages": 2724, "sha256": "429cc7133ddf4f97c560aa466dc9caea4b718721a8321e293357037cf0af4733", "built_at": "2026-09-26"}}, "tree": "10", "index": "index.html", "major": "10", "pages": 1085, "release": "10.23", "source_url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "svg_assets": 0, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "revision": "f9301feba91e2e2566038a36b8cee0e4402db68989538f88670fddd20b1f78ea", "evidence_kind": "English manual and source declarations", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sources": [{"url": "/docs/10/app-psql.html#APP-PSQL-META-COMMANDS", "file": "app-psql.html", "label": "10.23 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMANDS", "sha256": "9e11fe3148cb8c085808f632ed972aa4514332a67758a083a080169101eeb7a4"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span></dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"literal\">border</code></span></dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">columns</code></span></dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab- or comma-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span></dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">footer</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">format</code></span></dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">unaligned</code>, <code class=\"literal\">aligned</code>, <code class=\"literal\">wrapped</code>, <code class=\"literal\">html</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">latex</code> (uses <code class=\"literal\">tabular</code>), <code class=\"literal\">latex-longtable</code>, or <code class=\"literal\">troff-ms</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs (for example, tab-separated or comma-separated format).</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">html</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. <code class=\"literal\">latex-longtable</code> also requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">linestyle</code></span></dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">null</code></span></dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">numericlocale</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager</code></span></dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. If the environment variable <code class=\"envar\">PAGER</code> is set, the output is piped to the specified program. Otherwise a platform-dependent default (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span></dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep</code></span></dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span></dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span></dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span></dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span></dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span></dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span></dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in the <a class=\"xref\" href=\"/docs/10/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a> section.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMANDS", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab- or comma-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of unaligned , aligned , wrapped , html , asciidoc , latex (uses tabular ), latex-longtable , or troff-ms . Unique abbreviations are allowed. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs (for example, tab-separated or comma-separated format). aligned format is the standard, human-readable, nicely formatted text output; this is the default. wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The html , asciidoc , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. latex-longtable also requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. If the environment variable PAGER is set, the output is piped to the specified program. Otherwise a platform-dependent default (such as more ) is used. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in the Examples section. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "f17456a30990c5f14faba21c86386d1370202221135fe6fe39e280842b62dff8"}, "11": {"facts": [{"label": "Client", "value": "psql 11.22"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=11", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=11", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/11/postgresql-11-A4.pdf", "bytes": 13057499, "pages": 2732, "sha256": "41d75855e610d0d9b8802b87dc5b080bef8d7e91c7cf69401fbf8d3cf801b4b5", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/11/postgresql-11-US.pdf", "bytes": 12961189, "pages": 2883, "sha256": "6a8899ef36935a5b7ed2b436207564a567a4ef1eb1c2200195876b8de4d4fa30", "built_at": "2026-09-26"}}, "tree": "11", "index": "index.html", "major": "11", "pages": 1125, "release": "11.22", "source_url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "svg_assets": 0, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "revision": "53315ddaf3b3f9e6669fd1edc096bbb2cd4a65ea3e836c89e542b43af9ba3a7f", "evidence_kind": "English manual and source declarations", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sources": [{"url": "/docs/11/app-psql.html#APP-PSQL-META-COMMANDS", "file": "app-psql.html", "label": "11.22 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMANDS", "sha256": "32c4d489e91e59715de2f7c3264fcccab3dd1eca54673dbfeac61304b0c54d4d"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span></dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"literal\">border</code></span></dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">columns</code></span></dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab- or comma-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span></dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">footer</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">format</code></span></dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">unaligned</code>, <code class=\"literal\">aligned</code>, <code class=\"literal\">wrapped</code>, <code class=\"literal\">html</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">latex</code> (uses <code class=\"literal\">tabular</code>), <code class=\"literal\">latex-longtable</code>, or <code class=\"literal\">troff-ms</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs (for example, tab-separated or comma-separated format).</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">html</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. <code class=\"literal\">latex-longtable</code> also requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">linestyle</code></span></dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">null</code></span></dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">numericlocale</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager</code></span></dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span></dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep</code></span></dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span></dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span></dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span></dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span></dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span></dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span></dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in the <a class=\"xref\" href=\"/docs/11/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a> section.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMANDS", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab- or comma-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of unaligned , aligned , wrapped , html , asciidoc , latex (uses tabular ), latex-longtable , or troff-ms . Unique abbreviations are allowed. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs (for example, tab-separated or comma-separated format). aligned format is the standard, human-readable, nicely formatted text output; this is the default. wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The html , asciidoc , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. latex-longtable also requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. If the environment variable PSQL_PAGER or PAGER is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in the Examples section. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "31bf6d61c64b12980d98014fa520e0c6aed14f62621490529292faf3770b9c88"}, "12": {"facts": [{"label": "Client", "value": "psql 12.22"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=12", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=12", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/12/postgresql-12-A4.pdf", "bytes": 13424351, "pages": 2803, "sha256": "7422cf53fd1939e7a3d2925231a88b0330e468afa5393627cac0ff86158a0621", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/12/postgresql-12-US.pdf", "bytes": 13322565, "pages": 2958, "sha256": "51f3b04e72907fc38512685946223452ea65f84419c60c66241dfa3396035e77", "built_at": "2026-09-26"}}, "tree": "12", "index": "index.html", "major": "12", "pages": 1131, "release": "12.22", "source_url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "svg_assets": 2, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "revision": "7a827e97cbfacd7febff75f34443e2043e40723de5b6d8c9d81a9430b65a37e4", "evidence_kind": "English manual and source declarations", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sources": [{"url": "/docs/12/app-psql.html#APP-PSQL-META-COMMANDS", "file": "app-psql.html", "label": "12.22 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMANDS", "sha256": "a5cec5a456a98610e98d1f1959d96ce57c8413bb392f0f5d6720fc561bb63627"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span></dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"literal\">border</code></span></dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">columns</code></span></dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span></dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">footer</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">format</code></span></dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">linestyle</code></span></dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">null</code></span></dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">numericlocale</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager</code></span></dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span></dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep</code></span></dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span></dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span></dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span></dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span></dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span></dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span></dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in the <a class=\"xref\" href=\"/docs/12/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a> section.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMANDS", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. If the environment variable PSQL_PAGER or PAGER is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in the Examples section. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "d03533770cea01f0776aad9d3ead47a214fecf9f235433254790ceb70ffec4d2"}, "13": {"facts": [{"label": "Client", "value": "psql 13.23"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=13", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=13", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/13/postgresql-13-A4.pdf", "bytes": 13843239, "pages": 2826, "sha256": "171cc09f90936dbc1cbd503a98ff07ae72ea58ab9771ff051313f1217737799c", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/13/postgresql-13-US.pdf", "bytes": 13739572, "pages": 2984, "sha256": "48d09c6e197d9db4220f41afe83efe848a8661b1b168d3b89419751ecaf6c24d", "built_at": "2026-09-26"}}, "tree": "13", "index": "index.html", "major": "13", "pages": 1139, "release": "13.23", "source_url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "revision": "614ee3133270254e476c118cdf6f72af78d4e4b8bbd9b28ed9ab1e14e4e9c0f6", "evidence_kind": "English manual and source declarations", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sources": [{"url": "/docs/13/app-psql.html#APP-PSQL-META-COMMANDS", "file": "app-psql.html", "label": "13.23 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMANDS", "sha256": "30347083b7a58da020d968643e2479d2dfb534191d4493d454603ca53db151b0"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span></dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"literal\">border</code></span></dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">columns</code></span></dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span></dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">footer</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">format</code></span></dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">linestyle</code></span></dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">null</code></span></dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">numericlocale</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager</code></span></dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span></dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep</code></span></dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span></dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span></dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span></dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span></dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span></dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span></dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/13/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMANDS", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. If the environment variable PSQL_PAGER or PAGER is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "b24e8db93413455e7e6df2eb3a5dd96961927063ca2c4330dc284b1ce941e152"}, "14": {"facts": [{"label": "Client", "value": "psql 14.24"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=14", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=14", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/14/postgresql-14-A4.pdf", "bytes": 14354704, "pages": 2944, "sha256": "8bc6b9dd7b246888bb77f0a5e8c39a2eae52e9926569832669c7d1600becb27c", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/14/postgresql-14-US.pdf", "bytes": 14242178, "pages": 3102, "sha256": "b7ecb5a5f62d8b9f73a69e25a7d26ba285373bc53168a553bff7b77955506db4", "built_at": "2026-09-26"}}, "tree": "14", "index": "index.html", "major": "14", "pages": 1158, "release": "14.24", "source_url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "revision": "588700d46356d8837c77c7c0a4e71e645fe6535983b8f1830aa8f2e4e41c40ae", "evidence_kind": "English manual and source declarations", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sources": [{"url": "/docs/14/app-psql.html#APP-PSQL-META-COMMANDS", "file": "app-psql.html", "label": "14.24 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMANDS", "sha256": "8da20abaee171c53c05658cfb2580dea645070f40bad6b46a845d710ad74c3ae"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span></dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"literal\">border</code></span></dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">columns</code></span></dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span></dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">footer</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">format</code></span></dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">linestyle</code></span></dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">null</code></span></dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">numericlocale</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager</code></span></dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span></dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep</code></span></dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span></dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span></dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span></dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span></dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span></dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span></dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/14/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMANDS", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. If the environment variable PSQL_PAGER or PAGER is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "b24e8db93413455e7e6df2eb3a5dd96961927063ca2c4330dc284b1ce941e152"}, "15": {"facts": [{"label": "Client", "value": "psql 15.19"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=15", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=15", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/15/postgresql-15-A4.pdf", "bytes": 14609140, "pages": 2987, "sha256": "66228564a4d16efb47d6a914085716ecfe22ca1566db56bc7c3d82f790646d72", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/15/postgresql-15-US.pdf", "bytes": 14495690, "pages": 3153, "sha256": "645a498c2390d47a6223ec74770631185807a19c484edb0fc5a295d9f460bc02", "built_at": "2026-09-26"}}, "tree": "15", "index": "index.html", "major": "15", "pages": 1168, "release": "15.19", "source_url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "revision": "6af958c6520151fc7697d56e0616b03fb00522c4568158674d452ae0644ba545", "evidence_kind": "English manual and source declarations", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sources": [{"url": "/docs/15/app-psql.html#APP-PSQL-META-COMMANDS", "file": "app-psql.html", "label": "15.19 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMANDS", "sha256": "cb07228edb4914a53530afca316fd700a250cc062af2d5a74d24add93afbd0c8"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span></dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\"><code class=\"literal\">border</code></span></dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">columns</code></span></dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep</code></span></dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span></dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">footer</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">format</code></span></dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">linestyle</code></span></dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">null</code></span></dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">numericlocale</code></span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager</code></span></dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span></dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep</code></span></dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span></dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span></dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span></dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span></dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span></dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span></dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span></dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/15/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMANDS", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "c11f3cea44e64aef2a06d2d1a32c3330760628c71e034da0642413132b5fa413"}, "16": {"facts": [{"label": "Client", "value": "psql 16.15"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=16", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=16", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/16/postgresql-16-A4.pdf", "bytes": 15282337, "pages": 3055, "sha256": "4bb6c1f63deedac98736d8c4c7bc0fad0ac24e85b07e21ee10411872f06afd06", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/16/postgresql-16-US.pdf", "bytes": 15164148, "pages": 3220, "sha256": "5b6b6166c89991199e144bb0ae34c17a5f29826251dbf19db1abc0df3a3e771b", "built_at": "2026-09-26"}}, "tree": "16", "index": "index.html", "major": "16", "pages": 1169, "release": "16.15", "source_url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "svg_assets": 3, "source_mode": "en HTML verified against the pinned official archive", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "revision": "3c21e58b35318021716440e67bb8bafd392b6a2b965a244d90e9e33c99e0bdef", "evidence_kind": "English manual and source declarations", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sources": [{"url": "/docs/16/app-psql.html#APP-PSQL-META-COMMAND-PSET", "file": "app-psql.html", "label": "16.15 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMAND-PSET", "sha256": "add25957a1dfc97db721f2958782be186ab90dc0f0a47c4b720b2b6c26172493"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt id=\"APP-PSQL-META-COMMAND-PSET\"><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span> </dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt id=\"APP-PSQL-META-COMMAND-PSET-BORDER\"><span class=\"term\"><code class=\"literal\">border</code></span> </dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-COLUMNS\"><span class=\"term\"><code class=\"literal\">columns</code></span> </dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-CSV-FIELDSEP\"><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-EXPANDED\"><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP\"><span class=\"term\"><code class=\"literal\">fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span> </dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FOOTER\"><span class=\"term\"><code class=\"literal\">footer</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FORMAT\"><span class=\"term\"><code class=\"literal\">format</code></span> </dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-LINESTYLE\"><span class=\"term\"><code class=\"literal\">linestyle</code></span> </dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NULL\"><span class=\"term\"><code class=\"literal\">null</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NUMERICLOCALE\"><span class=\"term\"><code class=\"literal\">numericlocale</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER\"><span class=\"term\"><code class=\"literal\">pager</code></span> </dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER-MIN-LINES\"><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span> </dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP\"><span class=\"term\"><code class=\"literal\">recordsep</code></span> </dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span> </dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TABLEATTR\"><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span> </dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TITLE\"><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span> </dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TUPLES-ONLY\"><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-BORDER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span> </dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-COLUMN-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span> </dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-HEADER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span> </dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><span class=\"term\"><code class=\"literal\">xheader_width</code></span> </dt>\n<dd>\n<p>Sets the maximum width of the header for expanded output to one of <code class=\"literal\">full</code> (the default value), <code class=\"literal\">column</code>, <code class=\"literal\">page</code>, or an <em class=\"replaceable\"><code>integer value</code></em>.</p>\n<p><code class=\"literal\">full</code>: the expanded header is not truncated, and will be as wide as the widest output line.</p>\n<p><code class=\"literal\">column</code>: truncate the header line to the width of the first column.</p>\n<p><code class=\"literal\">page</code>: truncate the header line to the terminal width.</p>\n<p><em class=\"replaceable\"><code>integer value</code></em>: specify the exact maximum width of the header line.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/16/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMAND-PSET", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . xheader_width Sets the maximum width of the header for expanded output to one of full (the default value), column , page , or an integer value . full : the expanded header is not truncated, and will be as wide as the widest output line. column : truncate the header line to the width of the first column. page : truncate the header line to the terminal width. integer value : specify the exact maximum width of the header line. Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "2cf4022d6b3009357fbbb57d5f824e834137950e9c9798e71c29e50f0956c47c"}, "17": {"facts": [{"label": "Client", "value": "psql 17.11"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=17", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=17", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/17/postgresql-17-A4.pdf", "bytes": 15521293, "pages": 3099, "sha256": "1991354df0dc89e70ec39328c28988ef8b19c6a93671dab3893650b63e9f4e36", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/17/postgresql-17-US.pdf", "bytes": 15398150, "pages": 3270, "sha256": "07696c8f38abf31babf22d2db337093936e7c472d2af36d050b000c49bbcf52c", "built_at": "2026-09-26"}}, "tree": "17", "index": "index.html", "major": "17", "pages": 1143, "release": "17.11", "source_url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "svg_assets": 3, "source_mode": "en SGML built with pinned official archive", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "revision": "58419c9b0dd42cb34c8d53695bb025a7e582edf55ccd4c5bcb1c2c7c71a37487", "evidence_kind": "English manual and source declarations", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sources": [{"url": "/docs/17/app-psql.html#APP-PSQL-META-COMMAND-PSET", "file": "app-psql.html", "label": "17.11 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMAND-PSET", "sha256": "04c77661f1c96a64e91a27313542c34aff0c7d2a94e350ed98c6f9f35700629b"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt id=\"APP-PSQL-META-COMMAND-PSET\"><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span> </dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt id=\"APP-PSQL-META-COMMAND-PSET-BORDER\"><span class=\"term\"><code class=\"literal\">border</code></span> </dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-COLUMNS\"><span class=\"term\"><code class=\"literal\">columns</code></span> </dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-CSV-FIELDSEP\"><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-EXPANDED\"><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP\"><span class=\"term\"><code class=\"literal\">fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span> </dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FOOTER\"><span class=\"term\"><code class=\"literal\">footer</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FORMAT\"><span class=\"term\"><code class=\"literal\">format</code></span> </dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-LINESTYLE\"><span class=\"term\"><code class=\"literal\">linestyle</code></span> </dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NULL\"><span class=\"term\"><code class=\"literal\">null</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NUMERICLOCALE\"><span class=\"term\"><code class=\"literal\">numericlocale</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER\"><span class=\"term\"><code class=\"literal\">pager</code></span> </dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER-MIN-LINES\"><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span> </dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP\"><span class=\"term\"><code class=\"literal\">recordsep</code></span> </dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span> </dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TABLEATTR\"><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span> </dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TITLE\"><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span> </dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TUPLES-ONLY\"><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-BORDER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span> </dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-COLUMN-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span> </dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-HEADER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span> </dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><span class=\"term\"><code class=\"literal\">xheader_width</code></span> </dt>\n<dd>\n<p>Sets the maximum width of the header for expanded output to one of <code class=\"literal\">full</code> (the default value), <code class=\"literal\">column</code>, <code class=\"literal\">page</code>, or an <em class=\"replaceable\"><code>integer value</code></em>.</p>\n<p><code class=\"literal\">full</code>: the expanded header is not truncated, and will be as wide as the widest output line.</p>\n<p><code class=\"literal\">column</code>: truncate the header line to the width of the first column.</p>\n<p><code class=\"literal\">page</code>: truncate the header line to the terminal width.</p>\n<p><em class=\"replaceable\"><code>integer value</code></em>: specify the exact maximum width of the header line.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/17/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMAND-PSET", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . xheader_width Sets the maximum width of the header for expanded output to one of full (the default value), column , page , or an integer value . full : the expanded header is not truncated, and will be as wide as the widest output line. column : truncate the header line to the width of the first column. page : truncate the header line to the terminal width. integer value : specify the exact maximum width of the header line. Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "2cf4022d6b3009357fbbb57d5f824e834137950e9c9798e71c29e50f0956c47c"}, "18": {"facts": [{"label": "Client", "value": "psql 18.6"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=18", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=18", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/18/postgresql-18-A4.pdf", "bytes": 15865106, "pages": 3154, "sha256": "19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/18/postgresql-18-US.pdf", "bytes": 15748059, "pages": 3328, "sha256": "facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319", "built_at": "2026-09-26"}}, "tree": "18", "index": "index.html", "major": "18", "pages": 1148, "release": "18.6", "source_url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "svg_assets": 3, "source_mode": "en SGML built with pinned official archive", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "revision": "ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8", "evidence_kind": "English manual and source declarations", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PSET", "file": "app-psql.html", "label": "18.6 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMAND-PSET", "sha256": "fa2a1d39294b8854318e82e93f71272c645ed88150ecc2786c28902c3f32782c"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt id=\"APP-PSQL-META-COMMAND-PSET\"><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span> </dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt id=\"APP-PSQL-META-COMMAND-PSET-BORDER\"><span class=\"term\"><code class=\"literal\">border</code></span> </dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-COLUMNS\"><span class=\"term\"><code class=\"literal\">columns</code></span> </dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-CSV-FIELDSEP\"><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-EXPANDED\"><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP\"><span class=\"term\"><code class=\"literal\">fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span> </dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FOOTER\"><span class=\"term\"><code class=\"literal\">footer</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FORMAT\"><span class=\"term\"><code class=\"literal\">format</code></span> </dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-LINESTYLE\"><span class=\"term\"><code class=\"literal\">linestyle</code></span> </dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NULL\"><span class=\"term\"><code class=\"literal\">null</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NUMERICLOCALE\"><span class=\"term\"><code class=\"literal\">numericlocale</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER\"><span class=\"term\"><code class=\"literal\">pager</code></span> </dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER-MIN-LINES\"><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span> </dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP\"><span class=\"term\"><code class=\"literal\">recordsep</code></span> </dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span> </dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TABLEATTR\"><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span> </dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TITLE\"><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span> </dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TUPLES-ONLY\"><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-BORDER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span> </dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-COLUMN-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span> </dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-HEADER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span> </dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><span class=\"term\"><code class=\"literal\">xheader_width</code></span> </dt>\n<dd>\n<p>Sets the maximum width of the header for expanded output to one of <code class=\"literal\">full</code> (the default value), <code class=\"literal\">column</code>, <code class=\"literal\">page</code>, or an <em class=\"replaceable\"><code>integer value</code></em>.</p>\n<p><code class=\"literal\">full</code>: the expanded header is not truncated, and will be as wide as the widest output line.</p>\n<p><code class=\"literal\">column</code>: truncate the header line to the width of the first column.</p>\n<p><code class=\"literal\">page</code>: truncate the header line to the terminal width.</p>\n<p><em class=\"replaceable\"><code>integer value</code></em>: specify the exact maximum width of the header line.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/18/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMAND-PSET", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . xheader_width Sets the maximum width of the header for expanded output to one of full (the default value), column , page , or an integer value . full : the expanded header is not truncated, and will be as wide as the widest output line. column : truncate the header line to the width of the first column. page : truncate the header line to the terminal width. integer value : specify the exact maximum width of the header line. Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "2cf4022d6b3009357fbbb57d5f824e834137950e9c9798e71c29e50f0956c47c"}, "19": {"facts": [{"label": "Client", "value": "psql 19beta4"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=19", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=19", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/19/postgresql-19-A4.pdf", "bytes": 16064841, "pages": 3052, "sha256": "4dd099e4125c591128fc5f3ebd02178dc24781f9e5ae629f96d67c4c8547427b", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/19/postgresql-19-US.pdf", "bytes": 15974616, "pages": 3225, "sha256": "61971fa857f0956d47341a0388fa6af9ae10acf691d4b2fc009007d384b0342b", "built_at": "2026-09-26"}}, "tree": "19", "index": "index.html", "major": "19", "pages": 1155, "release": "19beta4", "source_url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "svg_assets": 5, "source_mode": "en SGML built with pinned official archive", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "revision": "1bbbbf4133d426f0e4304010688d2984c30fb67df0cc3a61b3e37eb3f6f37833", "evidence_kind": "English manual and source declarations", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "sources": [{"url": "/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET", "file": "app-psql.html", "label": "19beta4 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMAND-PSET", "sha256": "312975c12d6e4d62aeebcb5e98e7ca795c6d07ecb743b4bc64403dc42bc2a6e9"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt id=\"APP-PSQL-META-COMMAND-PSET\"><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span> </dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt id=\"APP-PSQL-META-COMMAND-PSET-BORDER\"><span class=\"term\"><code class=\"literal\">border</code></span> </dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-COLUMNS\"><span class=\"term\"><code class=\"literal\">columns</code></span> </dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-CSV-FIELDSEP\"><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-DISPLAY-FALSE\"><span class=\"term\"><code class=\"literal\">display_false</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a false value. The default is to print <code class=\"literal\">f</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-DISPLAY-TRUE\"><span class=\"term\"><code class=\"literal\">display_true</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a true value. The default is to print <code class=\"literal\">t</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-EXPANDED\"><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP\"><span class=\"term\"><code class=\"literal\">fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span> </dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FOOTER\"><span class=\"term\"><code class=\"literal\">footer</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FORMAT\"><span class=\"term\"><code class=\"literal\">format</code></span> </dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-LINESTYLE\"><span class=\"term\"><code class=\"literal\">linestyle</code></span> </dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NULL\"><span class=\"term\"><code class=\"literal\">null</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NUMERICLOCALE\"><span class=\"term\"><code class=\"literal\">numericlocale</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER\"><span class=\"term\"><code class=\"literal\">pager</code></span> </dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER-MIN-LINES\"><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span> </dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP\"><span class=\"term\"><code class=\"literal\">recordsep</code></span> </dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span> </dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TABLEATTR\"><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span> </dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TITLE\"><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span> </dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TUPLES-ONLY\"><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-BORDER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span> </dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-COLUMN-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span> </dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-HEADER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span> </dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><span class=\"term\"><code class=\"literal\">xheader_width</code></span> </dt>\n<dd>\n<p>Sets the maximum width of the header for expanded output to one of <code class=\"literal\">full</code> (the default value), <code class=\"literal\">column</code>, <code class=\"literal\">page</code>, or an <em class=\"replaceable\"><code>integer value</code></em>.</p>\n<p><code class=\"literal\">full</code>: the expanded header is not truncated, and will be as wide as the widest output line.</p>\n<p><code class=\"literal\">column</code>: truncate the header line to the width of the first column.</p>\n<p><code class=\"literal\">page</code>: truncate the header line to the terminal width.</p>\n<p><em class=\"replaceable\"><code>integer value</code></em>: specify the exact maximum width of the header line.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/19/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMAND-PSET", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. display_false Sets the string to be printed in place of a false value. The default is to print f . display_true Sets the string to be printed in place of a true value. The default is to print t . expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . xheader_width Sets the maximum width of the header for expanded output to one of full (the default value), column , page , or an integer value . full : the expanded header is not truncated, and will be as wide as the widest output line. column : truncate the header line to the width of the first column. page : truncate the header line to the terminal width. integer value : specify the exact maximum width of the header line. Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "a08272a2986d0d7b2d5901cd0e653d08e76df8bc39ceed89d460bcdada12905d"}, "20": {"facts": [{"label": "Client", "value": "psql 20devel"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=20", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=20", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/20/postgresql-20-A4.pdf", "bytes": 16030631, "pages": 3052, "sha256": "bd5d82c0ce38fc18f92a0447818a91a193a261776bca1c37564bf9a683e177d0", "built_at": "2026-09-28"}, "US": {"url": "/files/documentation/pdf/20/postgresql-20-US.pdf", "bytes": 15936613, "pages": 3223, "sha256": "d97d9e0db479a02f4234b175f50fcad70c3661619afc8d6df9b9437882e3c299", "built_at": "2026-09-28"}}, "tree": "0", "index": "index.html", "major": "20", "pages": 1156, "release": "20devel", "source_url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "svg_assets": 6, "source_mode": "en SGML built with pinned official archive", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_snapshot_utc": "26-Sep-2026 20:22"}, "revision": "2eba5e0fd4c3bffb2803247b6cd537878e9d6ee5a6dfbe3c50ece8b421b80918", "evidence_kind": "English manual and source declarations", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, "sources": [{"url": "/docs/devel/app-psql.html#APP-PSQL-META-COMMAND-PSET", "file": "app-psql.html", "label": "20devel English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMAND-PSET", "sha256": "6df5f6fbaff7800ae0e4a08a3116090d890a0cdcc02fddc31c1f220725905f87"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt id=\"APP-PSQL-META-COMMAND-PSET\"><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span> </dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt id=\"APP-PSQL-META-COMMAND-PSET-BORDER\"><span class=\"term\"><code class=\"literal\">border</code></span> </dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-COLUMNS\"><span class=\"term\"><code class=\"literal\">columns</code></span> </dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-CSV-FIELDSEP\"><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-DISPLAY-FALSE\"><span class=\"term\"><code class=\"literal\">display_false</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a false value. The default is to print <code class=\"literal\">f</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-DISPLAY-TRUE\"><span class=\"term\"><code class=\"literal\">display_true</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a true value. The default is to print <code class=\"literal\">t</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-EXPANDED\"><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP\"><span class=\"term\"><code class=\"literal\">fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span> </dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FOOTER\"><span class=\"term\"><code class=\"literal\">footer</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FORMAT\"><span class=\"term\"><code class=\"literal\">format</code></span> </dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-LINESTYLE\"><span class=\"term\"><code class=\"literal\">linestyle</code></span> </dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NULL\"><span class=\"term\"><code class=\"literal\">null</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NUMERICLOCALE\"><span class=\"term\"><code class=\"literal\">numericlocale</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER\"><span class=\"term\"><code class=\"literal\">pager</code></span> </dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER-MIN-LINES\"><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span> </dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP\"><span class=\"term\"><code class=\"literal\">recordsep</code></span> </dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span> </dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TABLEATTR\"><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span> </dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TITLE\"><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span> </dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TUPLES-ONLY\"><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-BORDER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span> </dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-COLUMN-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span> </dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-HEADER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span> </dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><span class=\"term\"><code class=\"literal\">xheader_width</code></span> </dt>\n<dd>\n<p>Sets the maximum width of the header for expanded output to one of <code class=\"literal\">full</code> (the default value), <code class=\"literal\">column</code>, <code class=\"literal\">page</code>, or an <em class=\"replaceable\"><code>integer value</code></em>.</p>\n<p><code class=\"literal\">full</code>: the expanded header is not truncated, and will be as wide as the widest output line.</p>\n<p><code class=\"literal\">column</code>: truncate the header line to the width of the first column.</p>\n<p><code class=\"literal\">page</code>: truncate the header line to the terminal width.</p>\n<p><em class=\"replaceable\"><code>integer value</code></em>: specify the exact maximum width of the header line.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/devel/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMAND-PSET", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. display_false Sets the string to be printed in place of a false value. The default is to print f . display_true Sets the string to be printed in place of a true value. The default is to print t . expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . xheader_width Sets the maximum width of the header for expanded output to one of full (the default value), column , page , or an integer value . full : the expanded header is not truncated, and will be as wide as the widest output line. column : truncate the header line to the width of the first column. page : truncate the header line to the terminal width. integer value : specify the exact maximum width of the header line. Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "a08272a2986d0d7b2d5901cd0e653d08e76df8bc39ceed89d460bcdada12905d"}}}, "snapshot": {"facts": [{"label": "Client", "value": "psql 18.6"}, {"label": "Case-sensitive spelling", "value": "\\pset"}], "tables": [{"key": "spellings", "rows": [{"command": {"url": "/wiki/psql/cmd-70-73-65-74/?v=18", "text": "\\pset"}, "modifiers": "None listed in this signature"}], "title": "Spellings in this manual definition", "columns": [{"key": "command", "label": "Command"}, {"key": "modifiers", "label": "Documented suffix modifiers"}]}], "command": "\\pset", "related": [{"url": "/wiki/tool/psql/?v=18", "label": "psql command-line options and complete manual"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "manifest": {"pdf": {"A4": {"url": "/files/documentation/pdf/18/postgresql-18-A4.pdf", "bytes": 15865106, "pages": 3154, "sha256": "19512c405da53f9f7fcf0abba359223aa65f021be025bf3411381918f92e3190", "built_at": "2026-09-26"}, "US": {"url": "/files/documentation/pdf/18/postgresql-18-US.pdf", "bytes": 15748059, "pages": 3328, "sha256": "facbe6c229e598b872d3d98bef53308f46e06746006fa4590de9a7de9dd46319", "built_at": "2026-09-26"}}, "tree": "18", "index": "index.html", "major": "18", "pages": 1148, "release": "18.6", "source_url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "svg_assets": 3, "source_mode": "en SGML built with pinned official archive", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "revision": "ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8", "evidence_kind": "English manual and source declarations", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PSET", "file": "app-psql.html", "label": "18.6 English manual \u00b7 app-psql.html", "anchor": "APP-PSQL-META-COMMAND-PSET", "sha256": "fa2a1d39294b8854318e82e93f71272c645ed88150ecc2786c28902c3f32782c"}], "sections": [], "modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "description": ["This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed."], "manual_html": "<div><dl class=\"variablelist\"><dt id=\"APP-PSQL-META-COMMAND-PSET\"><span class=\"term\"><code class=\"literal\">\\pset [ <em class=\"replaceable\"><code>option</code></em> [ <em class=\"replaceable\"><code>value</code></em> ] ]</code></span> </dt><dd>\n<p>This command sets options affecting the output of query result tables. <em class=\"replaceable\"><code>option</code></em> indicates which option is to be set. The semantics of <em class=\"replaceable\"><code>value</code></em> vary depending on the selected option. For some options, omitting <em class=\"replaceable\"><code>value</code></em> causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting <em class=\"replaceable\"><code>value</code></em> just results in the current setting being displayed.</p>\n<p><code class=\"command\">\\pset</code> without any arguments displays the current status of all printing options.</p>\n<p>Adjustable printing options are:</p>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt id=\"APP-PSQL-META-COMMAND-PSET-BORDER\"><span class=\"term\"><code class=\"literal\">border</code></span> </dt>\n<dd>\n<p>The <em class=\"replaceable\"><code>value</code></em> must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the <code class=\"literal\">border=...</code> attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as <code class=\"literal\">border = 2</code>. The <code class=\"literal\">latex</code> and <code class=\"literal\">latex-longtable</code> formats additionally allow a value of 3 to add dividing lines between data rows.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-COLUMNS\"><span class=\"term\"><code class=\"literal\">columns</code></span> </dt>\n<dd>\n<p>Sets the target width for the <code class=\"literal\">wrapped</code> format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable <code class=\"envar\">COLUMNS</code>, or the detected screen width if <code class=\"envar\">COLUMNS</code> is not set. In addition, if <code class=\"literal\">columns</code> is zero then the <code class=\"literal\">wrapped</code> format only affects screen output. If <code class=\"literal\">columns</code> is nonzero then file and pipe output is wrapped to that width as well.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-CSV-FIELDSEP\"><span class=\"term\"><code class=\"literal\">csv_fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-EXPANDED\"><span class=\"term\"><code class=\"literal\">expanded</code> (or <code class=\"literal\">x</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code>, which will enable or disable expanded mode, or <code class=\"literal\">auto</code>. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal <span class=\"quote\">\u201c<span class=\"quote\">horizontal</span>\u201d</span> mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP\"><span class=\"term\"><code class=\"literal\">fieldsep</code></span> </dt>\n<dd>\n<p>Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type <code class=\"literal\">\\pset fieldsep '\\t'</code>. The default field separator is <code class=\"literal\">'|'</code> (a vertical bar).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FIELDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">fieldsep_zero</code></span> </dt>\n<dd>\n<p>Sets the field separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FOOTER\"><span class=\"term\"><code class=\"literal\">footer</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of the table footer (the <code class=\"literal\">(<em class=\"replaceable\"><code>n</code></em> rows)</code> count). If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles footer display on or off.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-FORMAT\"><span class=\"term\"><code class=\"literal\">format</code></span> </dt>\n<dd>\n<p>Sets the output format to one of <code class=\"literal\">aligned</code>, <code class=\"literal\">asciidoc</code>, <code class=\"literal\">csv</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, <code class=\"literal\">troff-ms</code>, <code class=\"literal\">unaligned</code>, or <code class=\"literal\">wrapped</code>. Unique abbreviations are allowed.</p>\n<p><code class=\"literal\">aligned</code> format is the standard, human-readable, nicely formatted text output; this is the default.</p>\n<p><code class=\"literal\">unaligned</code> format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes.</p>\n<p><code class=\"literal\">csv</code> format  writes column values separated by commas, applying the quoting rules described in <a class=\"ulink\" href=\"https://datatracker.ietf.org/doc/html/rfc4180\">RFC 4180</a>. This output is compatible with the CSV format of the server's <code class=\"command\">COPY</code> command. A header line with column names is generated unless the <code class=\"literal\">tuples_only</code> parameter is <code class=\"literal\">on</code>. Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline (<code class=\"literal\">\\n</code>) for Unix-like systems or a carriage return and newline sequence (<code class=\"literal\">\\r\\n</code>) for Microsoft Windows. Field separator characters other than comma can be selected with <code class=\"command\">\\pset csv_fieldsep</code>.</p>\n<p><code class=\"literal\">wrapped</code> format is like <code class=\"literal\">aligned</code> but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the <code class=\"literal\">columns</code> option. Note that <span class=\"application\">psql</span> will not attempt to wrap column header titles; therefore, <code class=\"literal\">wrapped</code> format behaves the same as <code class=\"literal\">aligned</code> if the total width needed for column headers exceeds the target.</p>\n<p>The <code class=\"literal\">asciidoc</code>, <code class=\"literal\">html</code>, <code class=\"literal\">latex</code>, <code class=\"literal\">latex-longtable</code>, and <code class=\"literal\">troff-ms</code> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML, but in <span class=\"application\">LaTeX</span> you must have a complete document wrapper. The <code class=\"literal\">latex</code> format uses <span class=\"application\">LaTeX</span>'s <code class=\"literal\">tabular</code> environment. The <code class=\"literal\">latex-longtable</code> format requires the <span class=\"application\">LaTeX</span> <code class=\"literal\">longtable</code> and <code class=\"literal\">booktabs</code> packages.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-LINESTYLE\"><span class=\"term\"><code class=\"literal\">linestyle</code></span> </dt>\n<dd>\n<p>Sets the border line drawing style to one of <code class=\"literal\">ascii</code>, <code class=\"literal\">old-ascii</code>, or <code class=\"literal\">unicode</code>. Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is <code class=\"literal\">ascii</code>. This option only affects the <code class=\"literal\">aligned</code> and <code class=\"literal\">wrapped</code> output formats.</p>\n<p><code class=\"literal\">ascii</code> style uses plain ASCII characters. Newlines in data are shown using a <code class=\"literal\">+</code> symbol in the right-hand margin. When the <code class=\"literal\">wrapped</code> format wraps data from one line to the next without a newline character, a dot (<code class=\"literal\">.</code>) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p><code class=\"literal\">old-ascii</code> style uses plain ASCII characters, using the formatting style used in <span class=\"productname\">PostgreSQL</span> 8.4 and earlier. Newlines in data are shown using a <code class=\"literal\">:</code> symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a <code class=\"literal\">;</code> symbol is used in place of the left-hand column separator.</p>\n<p><code class=\"literal\">unicode</code> style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line.</p>\n<p>When the <code class=\"literal\">border</code> setting is greater than zero, the <code class=\"literal\">linestyle</code> option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NULL\"><span class=\"term\"><code class=\"literal\">null</code></span> </dt>\n<dd>\n<p>Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer <code class=\"literal\">\\pset null '(null)'</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-NUMERICLOCALE\"><span class=\"term\"><code class=\"literal\">numericlocale</code></span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and locale-specific numeric output.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER\"><span class=\"term\"><code class=\"literal\">pager</code></span> </dt>\n<dd>\n<p>Controls use of a pager program for query and <span class=\"application\">psql</span> help output. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">off</code>, the pager program is not used. When the <code class=\"literal\">pager</code> option is <code class=\"literal\">on</code>, the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The <code class=\"literal\">pager</code> option can also be set to <code class=\"literal\">always</code>, which causes the pager to be used for all terminal output regardless of whether it fits on the screen. <code class=\"literal\">\\pset pager</code> without a <em class=\"replaceable\"><code>value</code></em> toggles pager use on and off.</p>\n<p>If the environment variable <code class=\"envar\">PSQL_PAGER</code> or <code class=\"envar\">PAGER</code> is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as <code class=\"filename\">more</code>) is used.</p>\n<p>When using the <code class=\"literal\">\\watch</code> command to execute a query repeatedly, the environment variable <code class=\"envar\">PSQL_WATCH_PAGER</code> is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand <span class=\"application\">psql</span>'s output format (such as <code class=\"filename\">pspg --stream</code>).</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-PAGER-MIN-LINES\"><span class=\"term\"><code class=\"literal\">pager_min_lines</code></span> </dt>\n<dd>\n<p>If <code class=\"literal\">pager_min_lines</code> is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP\"><span class=\"term\"><code class=\"literal\">recordsep</code></span> </dt>\n<dd>\n<p>Specifies the record (line) separator to use in unaligned output format. The default is a newline character.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-RECORDSEP-ZERO\"><span class=\"term\"><code class=\"literal\">recordsep_zero</code></span> </dt>\n<dd>\n<p>Sets the record separator to use in unaligned output format to a zero byte.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TABLEATTR\"><span class=\"term\"><code class=\"literal\">tableattr</code> (or <code class=\"literal\">T</code>)</span> </dt>\n<dd>\n<p>In HTML format, this specifies attributes to be placed inside the <code class=\"sgmltag-element\">table</code> tag. This could for example be <code class=\"literal\">cellpadding</code> or <code class=\"literal\">bgcolor</code>. Note that you probably don't want to specify <code class=\"literal\">border</code> here, as that is already taken care of by <code class=\"literal\">\\pset border</code>. If no <em class=\"replaceable\"><code>value</code></em> is given, the table attributes are unset.</p>\n<p>In <code class=\"literal\">latex-longtable</code> format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., <code class=\"literal\">'0.2 0.2 0.6'</code>. Unspecified output columns use the last specified value.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TITLE\"><span class=\"term\"><code class=\"literal\">title</code> (or <code class=\"literal\">C</code>)</span> </dt>\n<dd>\n<p>Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no <em class=\"replaceable\"><code>value</code></em> is given, the title is unset.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-TUPLES-ONLY\"><span class=\"term\"><code class=\"literal\">tuples_only</code> (or <code class=\"literal\">t</code>)</span> </dt>\n<dd>\n<p>If <em class=\"replaceable\"><code>value</code></em> is specified it must be either <code class=\"literal\">on</code> or <code class=\"literal\">off</code> which will enable or disable tuples-only mode. If <em class=\"replaceable\"><code>value</code></em> is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-BORDER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_border_linestyle</code></span> </dt>\n<dd>\n<p>Sets the border drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-COLUMN-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_column_linestyle</code></span> </dt>\n<dd>\n<p>Sets the column drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-UNICODE-HEADER-LINESTYLE\"><span class=\"term\"><code class=\"literal\">unicode_header_linestyle</code></span> </dt>\n<dd>\n<p>Sets the header drawing style for the <code class=\"literal\">unicode</code> line style to one of <code class=\"literal\">single</code> or <code class=\"literal\">double</code>.</p>\n</dd>\n<dt id=\"APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><span class=\"term\"><code class=\"literal\">xheader_width</code></span> </dt>\n<dd>\n<p>Sets the maximum width of the header for expanded output to one of <code class=\"literal\">full</code> (the default value), <code class=\"literal\">column</code>, <code class=\"literal\">page</code>, or an <em class=\"replaceable\"><code>integer value</code></em>.</p>\n<p><code class=\"literal\">full</code>: the expanded header is not truncated, and will be as wide as the widest output line.</p>\n<p><code class=\"literal\">column</code>: truncate the header line to the width of the first column.</p>\n<p><code class=\"literal\">page</code>: truncate the header line to the terminal width.</p>\n<p><em class=\"replaceable\"><code>integer value</code></em>: specify the exact maximum width of the header line.</p>\n</dd>\n</dl>\n</div>\n<p>Illustrations of how these different formats look can be seen in <a class=\"xref\" href=\"/docs/18/app-psql.html#APP-PSQL-EXAMPLES\" title=\"Examples\">Examples</a>, below.</p>\n<div class=\"tip\">\n<h3 class=\"title\">Tip</h3>\n<p>There are various shortcut commands for <code class=\"command\">\\pset</code>. See <code class=\"command\">\\a</code>, <code class=\"command\">\\C</code>, <code class=\"command\">\\f</code>, <code class=\"command\">\\H</code>, <code class=\"command\">\\t</code>, <code class=\"command\">\\T</code>, and <code class=\"command\">\\x</code>.</p>\n</div>\n</dd></dl></div>", "manual_path": "app-psql.html#APP-PSQL-META-COMMAND-PSET", "comparison_data": {"modifiers": [], "signature": "\\pset [ option [ value ] ]", "spellings": ["\\pset"], "definition": "This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\pset fieldsep '\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\n ) for Unix-like systems or a carriage return and newline sequence ( \\r\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . xheader_width Sets the maximum width of the header for expanded output to one of full (the default value), column , page , or an integer value . full : the expanded header is not truncated, and will be as wide as the widest output line. column : truncate the header line to the width of the first column. page : truncate the header line to the terminal width. integer value : specify the exact maximum width of the header line. Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\pset . See \\a , \\C , \\f , \\H , \\t , \\T , and \\x ."}, "comparison_hash": "2cf4022d6b3009357fbbb57d5f824e834137950e9c9798e71c29e50f0956c47c"}, "comparison": {"left": "14", "right": "15", "status": "changed", "diff": "--- PostgreSQL 14\n+++ PostgreSQL 15\n@@ -1,5 +1,5 @@\n {\n-  \"definition\": \"This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\\\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\\\pset fieldsep '\\\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\\\n ) for Unix-like systems or a carriage return and newline sequence ( \\\\r\\\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\\\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\\\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. If the environment variable PSQL_PAGER or PAGER is set, the output is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\\\pset pager without a value toggles pager use on and off. pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\\\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\\\pset . See \\\\a , \\\\C , \\\\f , \\\\H , \\\\t , \\\\T , and \\\\x .\",\n+  \"definition\": \"This command sets options affecting the output of query result tables. option indicates which option is to be set. The semantics of value vary depending on the selected option. For some options, omitting value causes the option to be toggled or unset, as described under the particular option. If no such behavior is mentioned, then omitting value just results in the current setting being displayed. \\\\pset without any arguments displays the current status of all printing options. Adjustable printing options are: border The value must be a number. In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format. In HTML format, this will translate directly into the border=... attribute. In most other formats only values 0 (no border), 1 (internal dividing lines), and 2 (table frame) make sense, and values above 2 will be treated the same as border = 2 . The latex and latex-longtable formats additionally allow a value of 3 to add dividing lines between data rows. columns Sets the target width for the wrapped format, and also the width limit for determining whether output is wide enough to require the pager or switch to the vertical display in expanded auto mode. Zero (the default) causes the target width to be controlled by the environment variable COLUMNS , or the detected screen width if COLUMNS is not set. In addition, if columns is zero then the wrapped format only affects screen output. If columns is nonzero then file and pipe output is wrapped to that width as well. csv_fieldsep Specifies the field separator to be used in CSV output format. If the separator character appears in a field's value, that field is output within double quotes, following standard CSV rules. The default is a comma. expanded (or x ) If value is specified it must be either on or off , which will enable or disable expanded mode, or auto . If value is omitted the command toggles between the on and off settings. When expanded mode is enabled, query results are displayed in two columns, with the column name on the left and the data on the right. This mode is useful if the data wouldn't fit on the screen in the normal \u201c horizontal \u201d mode. In the auto setting, the expanded mode is used whenever the query output has more than one column and is wider than the screen; otherwise, the regular mode is used. The auto setting is only effective in the aligned and wrapped formats. In other formats, it always behaves as if the expanded mode is off. fieldsep Specifies the field separator to be used in unaligned output format. That way one can create, for example, tab-separated output, which other programs might prefer. To set a tab as field separator, type \\\\pset fieldsep '\\\\t' . The default field separator is '|' (a vertical bar). fieldsep_zero Sets the field separator to use in unaligned output format to a zero byte. footer If value is specified it must be either on or off which will enable or disable display of the table footer (the ( n rows) count). If value is omitted the command toggles footer display on or off. format Sets the output format to one of aligned , asciidoc , csv , html , latex , latex-longtable , troff-ms , unaligned , or wrapped . Unique abbreviations are allowed. aligned format is the standard, human-readable, nicely formatted text output; this is the default. unaligned format writes all columns of a row on one line, separated by the currently active field separator. This is useful for creating output that might be intended to be read in by other programs, for example, tab-separated or comma-separated format. However, the field separator character is not treated specially if it appears in a column's value; so CSV format may be better suited for such purposes. csv format writes column values separated by commas, applying the quoting rules described in RFC 4180 . This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless the tuples_only parameter is on . Titles and footers are not printed. Each row is terminated by the system-dependent end-of-line character, which is typically a single newline ( \\\\n ) for Unix-like systems or a carriage return and newline sequence ( \\\\r\\\\n ) for Microsoft Windows. Field separator characters other than comma can be selected with \\\\pset csv_fieldsep . wrapped format is like aligned but wraps wide data values across lines to make the output fit in the target column width. The target width is determined as described under the columns option. Note that psql will not attempt to wrap column header titles; therefore, wrapped format behaves the same as aligned if the total width needed for column headers exceeds the target. The asciidoc , html , latex , latex-longtable , and troff-ms formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! This might not be necessary in HTML , but in LaTeX you must have a complete document wrapper. The latex format uses LaTeX 's tabular environment. The latex-longtable format requires the LaTeX longtable and booktabs packages. linestyle Sets the border line drawing style to one of ascii , old-ascii , or unicode . Unique abbreviations are allowed. (That would mean one letter is enough.) The default setting is ascii . This option only affects the aligned and wrapped output formats. ascii style uses plain ASCII characters. Newlines in data are shown using a + symbol in the right-hand margin. When the wrapped format wraps data from one line to the next without a newline character, a dot ( . ) is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. old-ascii style uses plain ASCII characters, using the formatting style used in PostgreSQL 8.4 and earlier. Newlines in data are shown using a : symbol in place of the left-hand column separator. When the data is wrapped from one line to the next without a newline character, a ; symbol is used in place of the left-hand column separator. unicode style uses Unicode box-drawing characters. Newlines in data are shown using a carriage return symbol in the right-hand margin. When the data is wrapped from one line to the next without a newline character, an ellipsis symbol is shown in the right-hand margin of the first line, and again in the left-hand margin of the following line. When the border setting is greater than zero, the linestyle option also determines the characters with which the border lines are drawn. Plain ASCII characters work everywhere, but Unicode characters look nicer on displays that recognize them. null Sets the string to be printed in place of a null value. The default is to print nothing, which can easily be mistaken for an empty string. For example, one might prefer \\\\pset null '(null)' . numericlocale If value is specified it must be either on or off which will enable or disable display of a locale-specific character to separate groups of digits to the left of the decimal marker. If value is omitted the command toggles between regular and locale-specific numeric output. pager Controls use of a pager program for query and psql help output. When the pager option is off , the pager program is not used. When the pager option is on , the pager is used when appropriate, i.e., when the output is to a terminal and will not fit on the screen. The pager option can also be set to always , which causes the pager to be used for all terminal output regardless of whether it fits on the screen. \\\\pset pager without a value toggles pager use on and off. If the environment variable PSQL_PAGER or PAGER is set, output to be paged is piped to the specified program. Otherwise a platform-dependent default program (such as more ) is used. When using the \\\\watch command to execute a query repeatedly, the environment variable PSQL_WATCH_PAGER is used to find the pager program instead, on Unix systems. This is configured separately because it may confuse traditional pagers, but can be used to send output to tools that understand psql 's output format (such as pspg --stream ). pager_min_lines If pager_min_lines is set to a number greater than the page height, the pager program will not be called unless there are at least this many lines of output to show. The default setting is 0. recordsep Specifies the record (line) separator to use in unaligned output format. The default is a newline character. recordsep_zero Sets the record separator to use in unaligned output format to a zero byte. tableattr (or T ) In HTML format, this specifies attributes to be placed inside the table tag. This could for example be cellpadding or bgcolor . Note that you probably don't want to specify border here, as that is already taken care of by \\\\pset border . If no value is given, the table attributes are unset. In latex-longtable format, this controls the proportional width of each column containing a left-aligned data type. It is specified as a whitespace-separated list of values, e.g., '0.2 0.2 0.6' . Unspecified output columns use the last specified value. title (or C ) Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title is unset. tuples_only (or t ) If value is specified it must be either on or off which will enable or disable tuples-only mode. If value is omitted the command toggles between regular and tuples-only output. Regular output includes extra information such as column headers, titles, and various footers. In tuples-only mode, only actual table data is shown. unicode_border_linestyle Sets the border drawing style for the unicode line style to one of single or double . unicode_column_linestyle Sets the column drawing style for the unicode line style to one of single or double . unicode_header_linestyle Sets the header drawing style for the unicode line style to one of single or double . Illustrations of how these different formats look can be seen in Examples , below. Tip There are various shortcut commands for \\\\pset . See \\\\a , \\\\C , \\\\f , \\\\H , \\\\t , \\\\T , and \\\\x .\",\n   \"modifiers\": [],\n   \"signature\": \"\\\\pset [ option [ value ] ]\",\n   \"spellings\": ["}}