mirror of
https://github.com/postgres/postgres.git
synced 2026-10-23 13:29:09 +03:00
If pg_stash_advice.persist = true, stashed advice will be written to pg_stash_advice.tsv in the data directory, periodically and at shutdown. On restart, stash modifications are locked out until this file has been reloaded, but queries will not be, so there may be a short window after startup during which previously-stashed advice is not automatically applied. Author: Robert Haas <rhaas@postgresql.org> Co-authored-by: Lukas Fittl <lukas@fittl.com> Discussion: https://postgr.es/m/CA+Tgmob87qsWa-VugofU6epuV0H5XjWZGMbQas4Q-ADKmvSyBg@mail.gmail.com
50 lines
1.5 KiB
SQL
50 lines
1.5 KiB
SQL
/* contrib/pg_stash_advice/pg_stash_advice--1.0.sql */
|
|
|
|
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
|
\echo Use "CREATE EXTENSION pg_stash_advice" to load this file. \quit
|
|
|
|
CREATE FUNCTION pg_create_advice_stash(stash_name text)
|
|
RETURNS void
|
|
AS 'MODULE_PATHNAME', 'pg_create_advice_stash'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE FUNCTION pg_drop_advice_stash(stash_name text)
|
|
RETURNS void
|
|
AS 'MODULE_PATHNAME', 'pg_drop_advice_stash'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE FUNCTION pg_set_stashed_advice(stash_name text, query_id bigint,
|
|
advice_string text)
|
|
RETURNS void
|
|
AS 'MODULE_PATHNAME', 'pg_set_stashed_advice'
|
|
LANGUAGE C;
|
|
|
|
CREATE FUNCTION pg_get_advice_stashes(
|
|
OUT stash_name text,
|
|
OUT num_entries bigint
|
|
)
|
|
RETURNS SETOF record
|
|
AS 'MODULE_PATHNAME', 'pg_get_advice_stashes'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE FUNCTION pg_get_advice_stash_contents(
|
|
INOUT stash_name text,
|
|
OUT query_id bigint,
|
|
OUT advice_string text
|
|
)
|
|
RETURNS SETOF record
|
|
AS 'MODULE_PATHNAME', 'pg_get_advice_stash_contents'
|
|
LANGUAGE C;
|
|
|
|
CREATE FUNCTION pg_start_stash_advice_worker()
|
|
RETURNS void
|
|
AS 'MODULE_PATHNAME', 'pg_start_stash_advice_worker'
|
|
LANGUAGE C STRICT;
|
|
|
|
REVOKE ALL ON FUNCTION pg_create_advice_stash(text) FROM PUBLIC;
|
|
REVOKE ALL ON FUNCTION pg_drop_advice_stash(text) FROM PUBLIC;
|
|
REVOKE ALL ON FUNCTION pg_get_advice_stash_contents(text) FROM PUBLIC;
|
|
REVOKE ALL ON FUNCTION pg_get_advice_stashes() FROM PUBLIC;
|
|
REVOKE ALL ON FUNCTION pg_set_stashed_advice(text, bigint, text) FROM PUBLIC;
|
|
REVOKE ALL ON FUNCTION pg_start_stash_advice_worker() FROM PUBLIC;
|