arguments are passed as pairs of <replaceable>argname</replaceable>
and <replaceable>argvalue</replaceable> in the form:
<programlisting>
- SELECT pg_restore_extended_stats(
+SELECT pg_restore_extended_stats(
'<replaceable>arg1name</replaceable>', '<replaceable>arg1value</replaceable>'::<replaceable>arg1type</replaceable>,
'<replaceable>arg2name</replaceable>', '<replaceable>arg2value</replaceable>'::<replaceable>arg2type</replaceable>,
'<replaceable>arg3name</replaceable>', '<replaceable>arg3value</replaceable>'::<replaceable>arg3type</replaceable>);
For example, to set some values for the statistics object
<structname>myschema.mystatsobj</structname>:
<programlisting>
- SELECT pg_restore_extended_stats(
+SELECT pg_restore_extended_stats(
'schemaname', 'tab_schema',
'relname', 'tab_name',
'statistics_schemaname', 'stats_schema',
<para>
The <literal>null treatment</literal> option must be one of:
<synopsis>
- RESPECT NULLS
- IGNORE NULLS
+RESPECT NULLS
+IGNORE NULLS
</synopsis>
If unspecified, the default is <literal>RESPECT NULLS</literal> which includes NULL
values in any result calculation. <literal>IGNORE NULLS</literal> ignores NULL values.
operations, the application retrieves the current WAL location using a
function call like this.
- <programlisting>
+<programlisting>
postgres=# SELECT pg_current_wal_insert_lsn();
-pg_current_wal_insert_lsn
---------------------
-0/306EE20
+ pg_current_wal_insert_lsn
+---------------------------
+ 0/306EE20
(1 row)
- </programlisting>
+</programlisting>
</para>
<para>
the standby's WAL replay process reaches (or exceeds) the specified
<acronym>LSN</acronym>.
- <programlisting>
+<programlisting>
postgres=# WAIT FOR LSN '0/306EE20';
status
---------
+---------
success
(1 row)
- </programlisting>
+</programlisting>
Once the command returns a status of success, it guarantees that all
changes up to the provided <acronym>LSN</acronym> have been applied,
ensuring that subsequent read queries will reflect the latest updates.
development and testing. The variable accepts a comma-separated list of
debug options:
- <programlisting>
+<programlisting>
PGOAUTHDEBUG=option1,option2,... <lineannotation>for safe options only</lineannotation>
PGOAUTHDEBUG=UNSAFE:option1,option2,... <lineannotation>when using unsafe options</lineannotation>
PGOAUTHDEBUG=UNSAFE <lineannotation>legacy format; enables all options</lineannotation>
- </programlisting>
+</programlisting>
</para>
<para>
<para>
Examples:
- <programlisting>
+<programlisting>
PGOAUTHDEBUG=call-count <lineannotation>safe options only</lineannotation>
PGOAUTHDEBUG=UNSAFE:http,trace <lineannotation>enable HTTP and traffic logging</lineannotation>
PGOAUTHDEBUG=UNSAFE:http,call-count <lineannotation>mix of unsafe and safe</lineannotation>
- </programlisting>
+</programlisting>
</para>
<warning>
The <function>pg_get_multixact_stats()</function> function described in
<xref linkend="functions-pg-snapshot"/> provides a way to monitor
multixact allocation and usage patterns in real time, for example:
- <programlisting>
+<screen>
=# SELECT *, pg_size_pretty(members_size) members_size_pretty
FROM pg_catalog.pg_get_multixact_stats();
num_mxids | num_members | members_size | oldest_multixact | members_size_pretty
-----------+-------------+--------------+------------------+---------------------
311740299 | 2785241176 | 13926205880 | 2 | 13 GB
(1 row)
- </programlisting>
+</screen>
This output shows a system with significant multixact activity: about
312 million multixact IDs and about 2.8 billion member entries consuming
13 GB of storage space.
</para>
<programlisting>
- Finalize Aggregate
- -> Gather
- -> Partial Aggregate
- -> Parallel Seq Scan on outer_example
- Filter: (something = (hashed SubPlan any_1).col1)
- SubPlan any_1
- -> Seq Scan on inner_example
- Filter: (something_else > 100)
+Finalize Aggregate
+ -> Gather
+ -> Partial Aggregate
+ -> Parallel Seq Scan on outer_example
+ Filter: (something = (hashed SubPlan any_1).col1)
+ SubPlan any_1
+ -> Seq Scan on inner_example
+ Filter: (something_else > 100)
</programlisting>
<para>
</para>
<programlisting>
- Aggregate
- -> Seq Scan on outer_example
- Filter: (something = (hashed SubPlan any_1).col1)
- SubPlan any_1
- -> Gather
- -> Parallel Seq Scan on inner_example
- Filter: (something_else > 100)
+Aggregate
+ -> Seq Scan on outer_example
+ Filter: (something = (hashed SubPlan any_1).col1)
+ SubPlan any_1
+ -> Gather
+ -> Parallel Seq Scan on inner_example
+ Filter: (something_else > 100)
</programlisting>
</sect3>