Thread: contrib/dbsize
How come relation_size() doesn't work on an index?
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/
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? >
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/
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) >
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/