Thread: contrib/dbsize

contrib/dbsize

From
Joseph Shraibman
Date:
How come relation_size() doesn't work on an index?

Re: contrib/dbsize

From
Michael Fuhr
Date:
On Tue, Apr 05, 2005 at 12:24:02PM -0400, Joseph Shraibman wrote:
>
> How come relation_size() doesn't work on an index?

Could you define "doesn't work"?  An example with the expected and
actual output might show what's happening.

I just ran some simple tests and relation_size() correctly showed
the on-disk size of the file that stores the index.  Are you expecting
something different?  Or have you found a case where relation_size()
returns the wrong value?

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: contrib/dbsize

From
Joseph Shraibman
Date:
local]:o=>select version();
                                                  version
---------------------------------------------------------------------------------------------------------
  PostgreSQL 7.4.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2
20030222 (Red Hat Linux 3.2.2-5)
(1 row)

[local]:o=>select  relation_size('pg_am_oid_index');
ERROR:  "pg_am_oid_index" is an index


Michael Fuhr wrote:
> On Tue, Apr 05, 2005 at 12:24:02PM -0400, Joseph Shraibman wrote:
>
>>How come relation_size() doesn't work on an index?
>
>
> Could you define "doesn't work"?  An example with the expected and
> actual output might show what's happening.
>
> I just ran some simple tests and relation_size() correctly showed
> the on-disk size of the file that stores the index.  Are you expecting
> something different?  Or have you found a case where relation_size()
> returns the wrong value?
>

Re: contrib/dbsize

From
Michael Fuhr
Date:
On Tue, Apr 05, 2005 at 01:25:01PM -0400, Joseph Shraibman wrote:
> local]:o=>select version();
>                                                  version
> ---------------------------------------------------------------------------------------------------------
>  PostgreSQL 7.4.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2
> 20030222 (Red Hat Linux 3.2.2-5)
> (1 row)
>
> [local]:o=>select  relation_size('pg_am_oid_index');
> ERROR:  "pg_am_oid_index" is an index

Looks like this has been fixed in PostgreSQL 8.x.

http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/dbsize/dbsize.c

test=> SELECT version();
                                    version
--------------------------------------------------------------------------------
 PostgreSQL 8.0.2beta1 on sparc-sun-solaris2.9, compiled by GCC gcc (GCC) 3.4.2
(1 row)

test=> SELECT relation_size('pg_am_oid_index');
 relation_size
---------------
         16384
(1 row)

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: contrib/dbsize

From
Joseph Shraibman
Date:
Can I take the new .c file, do a make install, and have it work in 7.4.7 ?

Michael Fuhr wrote:
> On Tue, Apr 05, 2005 at 01:25:01PM -0400, Joseph Shraibman wrote:
>
>>local]:o=>select version();
>>                                                 version
>>---------------------------------------------------------------------------------------------------------
>> PostgreSQL 7.4.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2
>>20030222 (Red Hat Linux 3.2.2-5)
>>(1 row)
>>
>>[local]:o=>select  relation_size('pg_am_oid_index');
>>ERROR:  "pg_am_oid_index" is an index
>
>
> Looks like this has been fixed in PostgreSQL 8.x.
>
> http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/dbsize/dbsize.c
>
> test=> SELECT version();
>                                     version
> --------------------------------------------------------------------------------
>  PostgreSQL 8.0.2beta1 on sparc-sun-solaris2.9, compiled by GCC gcc (GCC) 3.4.2
> (1 row)
>
> test=> SELECT relation_size('pg_am_oid_index');
>  relation_size
> ---------------
>          16384
> (1 row)
>

Re: contrib/dbsize

From
Michael Fuhr
Date:
On Tue, Apr 05, 2005 at 01:43:56PM -0400, Joseph Shraibman wrote:
>
> Can I take the new .c file, do a make install, and have it work in 7.4.7 ?

Not unmodified, since it uses features new to 8.0 (e.g., tablespaces).

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/