Change hypopg_list_indexes() to a view.

And while at schema-qualify relation names used in that view.
This commit is contained in:
Julien Rouhaud 2021-01-22 18:54:20 +08:00
parent 5da0519a03
commit 3131560b85
3 changed files with 6 additions and 10 deletions

View file

@ -26,7 +26,7 @@ WARNING: hypopg: SQL order #3 is not a CREATE INDEX statement
1
(1 row)
SELECT nspname, relname, amname FROM public.hypopg_list_indexes();
SELECT nspname, relname, amname FROM public.hypopg_list_indexes;
nspname | relname | amname
---------+---------+--------
public | hypo | btree

View file

@ -40,17 +40,13 @@ CREATE FUNCTION hypopg(OUT indexname text, OUT indexrelid oid,
LANGUAGE c COST 100
AS '$libdir/hypopg', 'hypopg';
CREATE FUNCTION hypopg_list_indexes(OUT indexrelid oid, OUT indexname text, OUT nspname name, OUT relname name, OUT amname name)
RETURNS SETOF record
CREATE VIEW hypopg_list_indexes
AS
$_$
SELECT h.indexrelid, h.indexname, n.nspname, c.relname, am.amname
FROM hypopg() h
JOIN pg_class c ON c.oid = h.indrelid
JOIN pg_namespace n ON n.oid = c.relnamespace
JOIN pg_am am ON am.oid = h.amid
$_$
LANGUAGE sql;
JOIN pg_catalog.pg_class c ON c.oid = h.indrelid
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
JOIN pg_catalog.pg_am am ON am.oid = h.amid;
CREATE FUNCTION
hypopg_relation_size(IN indexid oid)

View file

@ -25,7 +25,7 @@ ANALYZE hypo;
SELECT COUNT(*) AS nb
FROM public.hypopg_create_index('SELECT 1;CREATE INDEX ON hypo(id); SELECT 2');
SELECT nspname, relname, amname FROM public.hypopg_list_indexes();
SELECT nspname, relname, amname FROM public.hypopg_list_indexes;
-- Should use hypothetical index
SELECT COUNT(*) FROM do_explain('SELECT * FROM hypo WHERE id = 1') e