↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Hooks / EXPLAIN

explain_validate_options_hook

explain_validate_options_hook

Hook to perform additional EXPLAIN options validation

Reading PostgreSQL 18.

Description

Hook to perform additional EXPLAIN options validation

Interface type
explain_validate_options_hook_type
Header
src/include/commands/explain_state.h
Subsystem
EXPLAIN
Initial value
NULL (no hook installed)

C interface

typedef void (*explain_validate_options_hook_type) (struct ExplainState *es, List *options, ParseState *pstate);
extern PGDLLIMPORT explain_validate_options_hook_type explain_validate_options_hook;

Core source comments

plugin specific option validation

Call sites

src/backend/commands/explain_state.c:206

Core call context: src/backend/commands/explain_state.c:200–214


	/* if the summary was not set explicitly, set default value */
	es->summary = (summary_set) ? es->summary : es->analyze;

	/* plugin specific option validation */
	if (explain_validate_options_hook)
		(*explain_validate_options_hook) (es, options, pstate);
}

/*
 * Map the name of an EXPLAIN extension to an integer ID.
 *
 * Within the lifetime of a particular backend, the same name will be mapped
 * to the same ID every time. IDs are not stable across backends. Use the ID
 * that you get from this function to call GetExplainExtensionState and

Related entries

Documentation and source

Source build
Version
18
Build
REL_18_STABLE
Source fingerprint
753057e340da8f22e57c9a409ea7a235fd6a46bd

Compare versions

PostgreSQL 17 → 18: added.

--- PostgreSQL 17
+++ PostgreSQL 18
@@ -1 +1,22 @@
-Not recorded in this version
+{
+  "facts": [
+    {
+      "label": "Interface type",
+      "value": "explain_validate_options_hook_type"
+    },
+    {
+      "label": "Header",
+      "value": "src/include/commands/explain_state.h"
+    },
+    {
+      "label": "Subsystem",
+      "value": "EXPLAIN"
+    },
+    {
+      "label": "Initial value",
+      "value": "NULL (no hook installed)"
+    }
+  ],
+  "signature": "typedef void (*explain_validate_options_hook_type) (struct ExplainState *es, List *options, ParseState *pstate);\nextern PGDLLIMPORT explain_validate_options_hook_type explain_validate_options_hook;",
+  "tables": null
+}

Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.

Related entries

Export JSON · Back to Hooks · Recorded in PostgreSQL 18 through 20; the first sample is not necessarily its introduction.