1
0
mirror of https://github.com/postgres/postgres.git synced 2026-10-23 13:29:09 +03:00
Files
postgres/contrib/pg_stash_advice/pg_stash_advice--1.0.sql
Robert Haas c10edb102a pg_stash_advice: Allow stashed advice to be persisted to disk.
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
2026-04-07 10:11:36 -04:00

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;