mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Adjust pgstatindex() to give correct answers for indexes larger than
2^31 blocks. Also fix pg_relpages() for the same case. Tatsuhito Kasahara
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* $PostgreSQL: pgsql/contrib/pgstattuple/pgstattuple.sql.in,v 1.15 2007/11/13 04:24:28 momjian Exp $ */
|
||||
/* $PostgreSQL: pgsql/contrib/pgstattuple/pgstattuple.sql.in,v 1.16 2008/03/21 03:23:30 tgl Exp $ */
|
||||
|
||||
-- Adjust this setting to control where the objects get created.
|
||||
SET search_path = public;
|
||||
@ -7,12 +7,12 @@ CREATE OR REPLACE FUNCTION pgstattuple(IN relname text,
|
||||
OUT table_len BIGINT, -- physical table length in bytes
|
||||
OUT tuple_count BIGINT, -- number of live tuples
|
||||
OUT tuple_len BIGINT, -- total tuples length in bytes
|
||||
OUT tuple_percent FLOAT, -- live tuples in %
|
||||
OUT tuple_percent FLOAT8, -- live tuples in %
|
||||
OUT dead_tuple_count BIGINT, -- number of dead tuples
|
||||
OUT dead_tuple_len BIGINT, -- total dead tuples length in bytes
|
||||
OUT dead_tuple_percent FLOAT, -- dead tuples in %
|
||||
OUT dead_tuple_percent FLOAT8, -- dead tuples in %
|
||||
OUT free_space BIGINT, -- free space in bytes
|
||||
OUT free_percent FLOAT) -- free space in %
|
||||
OUT free_percent FLOAT8) -- free space in %
|
||||
AS 'MODULE_PATHNAME', 'pgstattuple'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
@ -20,36 +20,30 @@ CREATE OR REPLACE FUNCTION pgstattuple(IN reloid oid,
|
||||
OUT table_len BIGINT, -- physical table length in bytes
|
||||
OUT tuple_count BIGINT, -- number of live tuples
|
||||
OUT tuple_len BIGINT, -- total tuples length in bytes
|
||||
OUT tuple_percent FLOAT, -- live tuples in %
|
||||
OUT tuple_percent FLOAT8, -- live tuples in %
|
||||
OUT dead_tuple_count BIGINT, -- number of dead tuples
|
||||
OUT dead_tuple_len BIGINT, -- total dead tuples length in bytes
|
||||
OUT dead_tuple_percent FLOAT, -- dead tuples in %
|
||||
OUT dead_tuple_percent FLOAT8, -- dead tuples in %
|
||||
OUT free_space BIGINT, -- free space in bytes
|
||||
OUT free_percent FLOAT) -- free space in %
|
||||
OUT free_percent FLOAT8) -- free space in %
|
||||
AS 'MODULE_PATHNAME', 'pgstattuplebyid'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
--
|
||||
-- pgstatindex
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgstatindex(IN relname text,
|
||||
OUT version int4,
|
||||
OUT tree_level int4,
|
||||
OUT index_size int4,
|
||||
OUT root_block_no int4,
|
||||
OUT internal_pages int4,
|
||||
OUT leaf_pages int4,
|
||||
OUT empty_pages int4,
|
||||
OUT deleted_pages int4,
|
||||
OUT avg_leaf_density float8,
|
||||
OUT leaf_fragmentation float8)
|
||||
OUT version INT,
|
||||
OUT tree_level INT,
|
||||
OUT index_size BIGINT,
|
||||
OUT root_block_no BIGINT,
|
||||
OUT internal_pages BIGINT,
|
||||
OUT leaf_pages BIGINT,
|
||||
OUT empty_pages BIGINT,
|
||||
OUT deleted_pages BIGINT,
|
||||
OUT avg_leaf_density FLOAT8,
|
||||
OUT leaf_fragmentation FLOAT8)
|
||||
AS 'MODULE_PATHNAME', 'pgstatindex'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
--
|
||||
-- pg_relpages()
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pg_relpages(text)
|
||||
RETURNS int
|
||||
CREATE OR REPLACE FUNCTION pg_relpages(IN relname text)
|
||||
RETURNS BIGINT
|
||||
AS 'MODULE_PATHNAME', 'pg_relpages'
|
||||
LANGUAGE C STRICT;
|
||||
|
Reference in New Issue
Block a user