a43974c6ba
pg_freespacemap_relations --- while one could theoretically get that number by counting rows in pg_freespacemap_pages, it's surely the hard way to do it. Avoid expensive and inconvenient conversion to and from text format. Minor code and docs cleanup.
46 lines
1.1 KiB
MySQL
46 lines
1.1 KiB
MySQL
-- Adjust this setting to control where the objects get created.
|
|
BEGIN;
|
|
SET search_path = public;
|
|
|
|
|
|
-- Register the functions.
|
|
CREATE OR REPLACE FUNCTION pg_freespacemap_pages()
|
|
RETURNS SETOF RECORD
|
|
AS 'MODULE_PATHNAME', 'pg_freespacemap_pages'
|
|
LANGUAGE C;
|
|
|
|
CREATE OR REPLACE FUNCTION pg_freespacemap_relations()
|
|
RETURNS SETOF RECORD
|
|
AS 'MODULE_PATHNAME', 'pg_freespacemap_relations'
|
|
LANGUAGE C;
|
|
|
|
|
|
-- Create views for convenient access.
|
|
CREATE VIEW pg_freespacemap_pages AS
|
|
SELECT P.* FROM pg_freespacemap_pages() AS P
|
|
(reltablespace oid,
|
|
reldatabase oid,
|
|
relfilenode oid,
|
|
relblocknumber bigint,
|
|
bytes integer);
|
|
|
|
CREATE VIEW pg_freespacemap_relations AS
|
|
SELECT P.* FROM pg_freespacemap_relations() AS P
|
|
(reltablespace oid,
|
|
reldatabase oid,
|
|
relfilenode oid,
|
|
avgrequest integer,
|
|
lastpagecount integer,
|
|
storedpages integer,
|
|
nextpage integer);
|
|
|
|
|
|
-- Don't want these to be available to public.
|
|
REVOKE ALL ON FUNCTION pg_freespacemap_pages() FROM PUBLIC;
|
|
REVOKE ALL ON pg_freespacemap_pages FROM PUBLIC;
|
|
|
|
REVOKE ALL ON FUNCTION pg_freespacemap_relations() FROM PUBLIC;
|
|
REVOKE ALL ON pg_freespacemap_relations FROM PUBLIC;
|
|
|
|
COMMIT;
|