mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Add relation fork support to pg_relation_size() function. You can now pass
name of a fork ('main' or 'fsm', at the moment) to pg_relation_size() to get the size of a specific fork. Defaults to 'main', if none given. While we're at it, modify pg_relation_size to take a regclass as argument, instead of separate variants taking oid and name. This change is transparent to typical use where the table name is passed as a string literal, like pg_relation_size('table'), but will break queries like pg_relation_size(namecol), where namecol is of type name. text-type input still works, and using a non-schema-qualified table name is not very reliable anyway, so this is unlikely to break anyone's queries in practice.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.447 2008/09/11 17:32:33 tgl Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.448 2008/10/03 07:33:08 heikki Exp $ -->
|
||||
|
||||
<chapter id="functions">
|
||||
<title>Functions and Operators</title>
|
||||
@ -12417,7 +12417,7 @@ postgres=# select * from pg_xlogfile_name_offset(pg_stop_backup());
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><function>pg_column_size</function>(<type>any</type>)</entry>
|
||||
<entry><literal><function>pg_column_size</function>(<type>any</type>)</literal></entry>
|
||||
<entry><type>int</type></entry>
|
||||
<entry>Number of bytes used to store a particular value (possibly compressed)</entry>
|
||||
</row>
|
||||
@ -12437,19 +12437,22 @@ postgres=# select * from pg_xlogfile_name_offset(pg_stop_backup());
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal><function>pg_relation_size</function>(<type>oid</type>)</literal>
|
||||
<literal><function>pg_relation_size</function>(<parameter>relation</parameter> <type>regclass</type>, <parameter>fork</parameter> <type>text</type>)</literal>
|
||||
</entry>
|
||||
<entry><type>bigint</type></entry>
|
||||
<entry>Disk space used by the table or index with the specified OID</entry>
|
||||
<entry>
|
||||
Disk space used by the specified fork, <literal>'main'</literal> or
|
||||
<literal>'fsm'</literal>, of a table or index with the specified OID
|
||||
or name. The table name can be qualified with a schema name
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal><function>pg_relation_size</function>(<type>text</type>)</literal>
|
||||
<literal><function>pg_relation_size</function>(<parameter>relation</parameter> <type>regclass</type>)</literal>
|
||||
</entry>
|
||||
<entry><type>bigint</type></entry>
|
||||
<entry>
|
||||
Disk space used by the table or index with the specified name.
|
||||
The table name can be qualified with a schema name
|
||||
Shorthand for <literal>pg_relation_size(..., 'main')</literal>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -12475,21 +12478,11 @@ postgres=# select * from pg_xlogfile_name_offset(pg_stop_backup());
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal><function>pg_total_relation_size</function>(<type>oid</type>)</literal>
|
||||
<literal><function>pg_total_relation_size</function>(<type>regclass</type>)</literal>
|
||||
</entry>
|
||||
<entry><type>bigint</type></entry>
|
||||
<entry>
|
||||
Total disk space used by the table with the specified OID,
|
||||
including indexes and toasted data
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<literal><function>pg_total_relation_size</function>(<type>text</type>)</literal>
|
||||
</entry>
|
||||
<entry><type>bigint</type></entry>
|
||||
<entry>
|
||||
Total disk space used by the table with the specified name,
|
||||
Total disk space used by the table with the specified OID or name,
|
||||
including indexes and toasted data. The table name can be
|
||||
qualified with a schema name
|
||||
</entry>
|
||||
@ -12511,7 +12504,12 @@ postgres=# select * from pg_xlogfile_name_offset(pg_stop_backup());
|
||||
|
||||
<para>
|
||||
<function>pg_relation_size</> accepts the OID or name of a table, index or
|
||||
toast table, and returns the size in bytes.
|
||||
toast table, and returns the size in bytes. Specifying
|
||||
<literal>'main'</literal> or leaving out the second argument returns the
|
||||
size of the main data fork of the relation. Specifying
|
||||
<literal>'fsm'</literal> returns the size of the
|
||||
Free Space Map (see <xref linkend="storage-fsm">) associated with the
|
||||
relation.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Reference in New Issue
Block a user