Re: BUG #13830: pg_table_size and pg_indexes_size - Mailing list pgsql-bugs

From David G. Johnston
Subject Re: BUG #13830: pg_table_size and pg_indexes_size
Date
Msg-id CAKFQuwYkwyTh1MtTs5rCQteGAMqQco2EU_GaCZTkSHo2cNv=hg@mail.gmail.com
Whole thread Raw
In response to BUG #13830: pg_table_size and pg_indexes_size  (foggyglass@163.com)
Responses Re: BUG #13830: pg_table_size and pg_indexes_size
List pgsql-bugs
On Wed, Dec 23, 2015 at 7:55 AM, <foggyglass@163.com> wrote:

> The following bug has been logged on the website:
>
> Bug reference:      13830
> Logged by:          T_T
> Email address:      foggyglass@163.com
> PostgreSQL version: 9.5rc1
> Operating system:   centos7
> Description:
>
> Hi friend,
>                 I think there is  a error about pg_table_size and
> pg_indexes_size in
> PostgreSQL .
> This is my operation log
>
> [postgres@c7 bin]$./psql
> psql (9.5beta2)
> Type "help" for help.
>
> postgres=3D# create table b(id int);
> CREATE TABLE
> postgres=3D# create index b_idx on b(id);
> CREATE INDEX
> postgres=3D# select relname , pg_table_size(oid),pg_indexes_size(oid)
> postgres-# from pg_class where relname in ('b','b_idx');
>  relname | pg_table_size | pg_indexes_size
> ---------+---------------+-----------------
>  b       |             0 |            8192
>  b_idx   |          8192 |               0
> (2 rows)
>
> postgres=3D#
>
> The b_idex is a index , but pg_indexes_size does not show its size . The =
b
> is a table , but pg_table_size does not show  its size .I think the
> pg_table_size show the b size , but not pg_indexes_size .


=E2=80=8BWorking as documented.=E2=80=8B

Table "b" has no size of its own - however its one index has a size of 8192=
.

An index is sometimes considered a "table", in this case when using
pg_table_size=E2=80=8B, and so

=E2=80=8Byou get 8192 as the size of the index table (i.e., relation).  Sin=
ce an
index doesn't have an index of its own pg_indexes_size returns 0.

pg_table_size on "b" returns zero since its size is zero and the
calculation excludes indexes.  pg_indexes_size on "b" returns the size of
"b_idx" which is 8192.

http://www.postgresql.org/docs/9.5/interactive/functions-admin.html

=E2=80=8BDavid J.=E2=80=8B
=E2=80=8B

pgsql-bugs by date:

Previous
From: foggyglass@163.com
Date:
Subject: BUG #13830: pg_table_size and pg_indexes_size
Next
From: Tom Lane
Date:
Subject: Re: BUG #13830: pg_table_size and pg_indexes_size