mirror of https://github.com/postgres/postgres
large enough for block numbers higher than 2^31. The old pre-FSM-rewrite pg_freespacemap implementation got this right. While we're at it, remove some unnecessary #includes.REL8_5_ALPHA1_BRANCH
parent
f10a86ece7
commit
6736da5484
@ -1,26 +1,26 @@ |
|||||||
/* $PostgreSQL: pgsql/contrib/pg_freespacemap/pg_freespacemap.sql.in,v 1.10 2008/09/30 11:17:07 heikki Exp $ */ |
/* $PostgreSQL: pgsql/contrib/pg_freespacemap/pg_freespacemap.sql.in,v 1.11 2008/10/02 12:20:50 heikki Exp $ */ |
||||||
|
|
||||||
-- Adjust this setting to control where the objects get created. |
-- Adjust this setting to control where the objects get created. |
||||||
SET search_path = public; |
SET search_path = public; |
||||||
|
|
||||||
|
|
||||||
-- Register the C function. |
-- Register the C function. |
||||||
CREATE OR REPLACE FUNCTION pg_freespace(regclass, int4) |
CREATE OR REPLACE FUNCTION pg_freespace(regclass, bigint) |
||||||
RETURNS int2 |
RETURNS int2 |
||||||
AS 'MODULE_PATHNAME', 'pg_freespace' |
AS 'MODULE_PATHNAME', 'pg_freespace' |
||||||
LANGUAGE C; |
LANGUAGE C; |
||||||
|
|
||||||
-- pg_freespace shows the recorded space avail at each block in a relation |
-- pg_freespace shows the recorded space avail at each block in a relation |
||||||
CREATE OR REPLACE FUNCTION |
CREATE OR REPLACE FUNCTION |
||||||
pg_freespace(rel regclass, blkno OUT int4, avail OUT int2) |
pg_freespace(rel regclass, blkno OUT bigint, avail OUT int2) |
||||||
RETURNS SETOF RECORD |
RETURNS SETOF RECORD |
||||||
AS $$ |
AS $$ |
||||||
SELECT blkno::int4, pg_freespace($1, blkno::int4) AS avail |
SELECT blkno, pg_freespace($1, blkno) AS avail |
||||||
FROM generate_series(0, pg_relation_size($1) / current_setting('block_size')::bigint - 1) AS blkno; |
FROM generate_series(0, pg_relation_size($1) / current_setting('block_size')::bigint - 1) AS blkno; |
||||||
$$ |
$$ |
||||||
LANGUAGE SQL; |
LANGUAGE SQL; |
||||||
|
|
||||||
|
|
||||||
-- Don't want these to be available to public. |
-- Don't want these to be available to public. |
||||||
REVOKE ALL ON FUNCTION pg_freespace(regclass, int4) FROM PUBLIC; |
REVOKE ALL ON FUNCTION pg_freespace(regclass, bigint) FROM PUBLIC; |
||||||
REVOKE ALL ON FUNCTION pg_freespace(regclass) FROM PUBLIC; |
REVOKE ALL ON FUNCTION pg_freespace(regclass) FROM PUBLIC; |
||||||
|
Loading…
Reference in new issue