{"kind": "hook", "major": "18", "item": {"slug": "explainonequery_hook", "name": "ExplainOneQuery_hook", "name_zh": "ExplainOneQuery_hook", "category": "EXPLAIN", "summary": "Hook for plugins to get control in ExplainOneQuery()", "aliases": [], "versions": {"10": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=10", "label": "EXPLAIN"}], "release": {"ref": "REL_10_STABLE", "label": "10", "major": "10", "channel": "historical", "revision": "f4e8f137bfb08a664c8288824c1e36b5143ac875"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/include/commands/explain.h#L51", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "83095ec641f8dd8a8aff61104f476a5c7879fac321ecb46bcf2d230a26e8ae14"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/commands/explain.c#L44", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "a785298532047cfeda969e78c3597a343dc1c56d61ba85830b0f16a02a14b5a1"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/commands/explain.c#L356", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "a785298532047cfeda969e78c3597a343dc1c56d61ba85830b0f16a02a14b5a1"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:356"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\n\t\tINSTR_TIME_SET_CURRENT(planstart);", "title": "Core call context: src/backend/commands/explain.c:350\u2013364", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "11": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=11", "label": "EXPLAIN"}], "release": {"ref": "REL_11_STABLE", "label": "11", "major": "11", "channel": "historical", "revision": "170e416034ec0231d9e9238f2577eeb76ca8d181"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/include/commands/explain.h#L51", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "0db925e1fcbada78bb7ef4fb90e3e33caf64ab9640c93bbe2920dfabf222e721"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/commands/explain.c#L45", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "9df8400c1a4377179572ceb916d6020fca4e2760f74bf416d77ed97476523bbd"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/commands/explain.c#L355", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "9df8400c1a4377179572ceb916d6020fca4e2760f74bf416d77ed97476523bbd"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:355"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\n\t\tINSTR_TIME_SET_CURRENT(planstart);", "title": "Core call context: src/backend/commands/explain.c:349\u2013363", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "12": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=12", "label": "EXPLAIN"}], "release": {"ref": "REL_12_STABLE", "label": "12", "major": "12", "channel": "historical", "revision": "3f302f0ed06f69c5ebd33d4df95895323a3cbef6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/include/commands/explain.h#L52", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "ffc72104e557e06d69bd79eaed2ebb0268f584d1ce6348cbc3b838548cffc1f9"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/commands/explain.c#L44", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "d02ea84fdaa201de5d9360645a9f24bfbd2c31f7d45a639e09560ac0e6b6471d"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/commands/explain.c#L357", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "d02ea84fdaa201de5d9360645a9f24bfbd2c31f7d45a639e09560ac0e6b6471d"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:357"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\n\t\tINSTR_TIME_SET_CURRENT(planstart);", "title": "Core call context: src/backend/commands/explain.c:351\u2013365", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "13": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=13", "label": "EXPLAIN"}], "release": {"ref": "REL_13_STABLE", "label": "13", "major": "13", "channel": "historical", "revision": "05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/include/commands/explain.h#L65", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "d63f9c12b4732512f365a634b4effbc15f4192eef9bd4c573b313aff09c9887d"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/commands/explain.c#L44", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "541713e0e7f1c9cc352c2b6028964d440c19d2678a4463000094c24a88c1e730"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/commands/explain.c#L376", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "541713e0e7f1c9cc352c2b6028964d440c19d2678a4463000094c24a88c1e730"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:376"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\t\tBufferUsage bufusage_start,\n\t\t\t\t\tbufusage;", "title": "Core call context: src/backend/commands/explain.c:370\u2013384", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "14": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=14", "label": "EXPLAIN"}], "release": {"ref": "REL_14_STABLE", "label": "14", "major": "14", "channel": "stable", "revision": "fba35c7c28a567839faba867db0808564c0a66db"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/include/commands/explain.h#L65", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "3981f2b6dc0e07b4a9895a90760f3d6b3c9b2e652520cded32a55cbad2bf7f12"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/commands/explain.c#L45", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "e091be4e2a083b8dea39ccd09beedede22c1716ef974da66c214a44f48be8c41"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/commands/explain.c#L382", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "e091be4e2a083b8dea39ccd09beedede22c1716ef974da66c214a44f48be8c41"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:382"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\t\tBufferUsage bufusage_start,\n\t\t\t\t\tbufusage;", "title": "Core call context: src/backend/commands/explain.c:376\u2013390", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "15": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=15", "label": "EXPLAIN"}], "release": {"ref": "REL_15_STABLE", "label": "15", "major": "15", "channel": "stable", "revision": "0351991b8e7c7b64382e2f30ce581a8f276590a6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/include/commands/explain.h#L65", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "463daa126ef5dac0fb4aaff0a8c34f717536f815c117908be1c35c7e8997ed85"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/commands/explain.c#L45", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "bb3b442d0f1b098aa8707335250102f027a596cd94117308bd16d1d36b258f5c"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/commands/explain.c#L382", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "bb3b442d0f1b098aa8707335250102f027a596cd94117308bd16d1d36b258f5c"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:382"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\t\tBufferUsage bufusage_start,\n\t\t\t\t\tbufusage;", "title": "Core call context: src/backend/commands/explain.c:376\u2013390", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "16": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=16", "label": "EXPLAIN"}], "release": {"ref": "REL_16_STABLE", "label": "16", "major": "16", "channel": "stable", "revision": "dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/include/commands/explain.h#L66", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "eecdb37c84d097a4b6d5d4fa915c141aec640c01110ca0eedd60cf0dea9aaacf"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/commands/explain.c#L45", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "8e017f0116dbea471339b40c37a667cc9f95039e7e0329c783e5e8ce194de7e1"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/commands/explain.c#L391", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "8e017f0116dbea471339b40c37a667cc9f95039e7e0329c783e5e8ce194de7e1"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:391"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t{\n\t\tPlannedStmt *plan;\n\t\tinstr_time\tplanstart,\n\t\t\t\t\tplanduration;\n\t\tBufferUsage bufusage_start,\n\t\t\t\t\tbufusage;", "title": "Core call context: src/backend/commands/explain.c:385\u2013399", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "17": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=17", "label": "EXPLAIN"}], "release": {"ref": "REL_17_STABLE", "label": "17", "major": "17", "channel": "stable", "revision": "163288afd32a448244c8df75b3c33181aadd7f20"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/include/commands/explain.h#L75", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "ac0a90763187efbe0eba8f228724994d58ac02fa0e2a81613a73236c8104c728"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/commands/explain.c#L46", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "741251b1a3b6d269a52a673d42eb63b02e13a5872db7b359b137086ab21b63c8"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/commands/explain.c#L443", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "741251b1a3b6d269a52a673d42eb63b02e13a5872db7b359b137086ab21b63c8"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:443"]}, {"code": "\t\t\t\t\t\t  queryEnv);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n\telse\n\t\tstandard_ExplainOneQuery(query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t queryString, params, queryEnv);\n}\n\n/*\n * standard_ExplainOneQuery -", "title": "Core call context: src/backend/commands/explain.c:437\u2013451", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "18": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=18", "label": "EXPLAIN"}], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/commands/explain.h#L22", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "a8ef9548bccebb3c8f5255e8295d1d53dd0e4ea54b6be8b17dfe163ef2918b7f"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/commands/explain.c#L50", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "34c86d6070224a0e981efef51f79101d6d505e5874f1684ace183034bab14bb4"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/commands/explain.c#L306", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "34c86d6070224a0e981efef51f79101d6d505e5874f1684ace183034bab14bb4"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:306"]}, {"code": "\t\tExplainOneUtility(query->utilityStmt, into, es, pstate, params);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n\telse\n\t\tstandard_ExplainOneQuery(query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n}\n\n/*\n * standard_ExplainOneQuery -", "title": "Core call context: src/backend/commands/explain.c:300\u2013314", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, struct ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "19": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=19", "label": "EXPLAIN"}], "release": {"ref": "REL_19_BETA4", "label": "19 Beta 4", "major": "19", "channel": "preview", "revision": "b73d13c32c834a2c8e1c60cb92f79530376cedf1"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/include/commands/explain.h#L23", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "469d0dad433271caace897340b6bd44dd89b27c255687cfbf89e5050926f9c82"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/commands/explain.c#L52", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "8b115b1c194a4b54ae630209a741e293b1df49a9052f10b2de9ca092a48998e3"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/commands/explain.c#L312", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "8b115b1c194a4b54ae630209a741e293b1df49a9052f10b2de9ca092a48998e3"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:312"]}, {"code": "\t\tExplainOneUtility(query->utilityStmt, into, es, pstate, params);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n\telse\n\t\tstandard_ExplainOneQuery(query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n}\n\n/*\n * standard_ExplainOneQuery -", "title": "Core call context: src/backend/commands/explain.c:306\u2013320", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "20": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=20", "label": "EXPLAIN"}], "release": {"ref": "master", "label": "20 devel", "major": "20", "channel": "devel", "revision": "2c10c2ce4d7bcd57543a49ab402af02a39724e0a"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/include/commands/explain.h#L23", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "469d0dad433271caace897340b6bd44dd89b27c255687cfbf89e5050926f9c82"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/commands/explain.c#L52", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "13402758013520451539427b5993db06d463ca11c4e2d4cc5444e82367688077"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/commands/explain.c#L312", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "13402758013520451539427b5993db06d463ca11c4e2d4cc5444e82367688077"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:312"]}, {"code": "\t\tExplainOneUtility(query->utilityStmt, into, es, pstate, params);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n\telse\n\t\tstandard_ExplainOneQuery(query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n}\n\n/*\n * standard_ExplainOneQuery -", "title": "Core call context: src/backend/commands/explain.c:306\u2013320", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}}, "content_hash": "654a7e541abf8e769308e19f25cffe0b3c766181147e927a018686c4bd62a4f9", "imported_at": "2026-09-27T09:57:58.839"}, "snapshot": {"facts": [{"label": "Interface type", "value": "ExplainOneQuery_hook_type"}, {"label": "Header", "value": "src/include/commands/explain.h"}, {"label": "Subsystem", "value": "EXPLAIN"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/sql/explain/?v=18", "label": "EXPLAIN"}], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/commands/explain.h#L22", "path": "src/include/commands/explain.h", "label": "Interface declaration", "sha256": "a8ef9548bccebb3c8f5255e8295d1d53dd0e4ea54b6be8b17dfe163ef2918b7f"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/commands/explain.c#L50", "path": "src/backend/commands/explain.c", "label": "Core definition", "sha256": "34c86d6070224a0e981efef51f79101d6d505e5874f1684ace183034bab14bb4"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/commands/explain.c#L306", "path": "src/backend/commands/explain.c", "label": "Call sites", "sha256": "34c86d6070224a0e981efef51f79101d6d505e5874f1684ace183034bab14bb4"}], "sections": [{"title": "Core source comments", "paragraphs": ["if an advisor plugin is present, let it manage things"]}, {"title": "Call sites", "paragraphs": ["src/backend/commands/explain.c:306"]}, {"code": "\t\tExplainOneUtility(query->utilityStmt, into, es, pstate, params);\n\t\treturn;\n\t}\n\n\t/* if an advisor plugin is present, let it manage things */\n\tif (ExplainOneQuery_hook)\n\t\t(*ExplainOneQuery_hook) (query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n\telse\n\t\tstandard_ExplainOneQuery(query, cursorOptions, into, es,\n\t\t\t\t\t\t\t\t pstate->p_sourcetext, params, pstate->p_queryEnv);\n}\n\n/*\n * standard_ExplainOneQuery -", "title": "Core call context: src/backend/commands/explain.c:300\u2013314", "paragraphs": []}], "signature": "typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, struct ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;", "description": ["Hook for plugins to get control in ExplainOneQuery()"]}, "comparison": {"left": "17", "right": "18", "status": "changed", "diff": "--- PostgreSQL 17\n+++ PostgreSQL 18\n@@ -17,6 +17,6 @@\n       \"value\": \"NULL (no hook installed)\"\n     }\n   ],\n-  \"signature\": \"typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;\",\n+  \"signature\": \"typedef void (*ExplainOneQuery_hook_type) (Query *query, int cursorOptions, IntoClause *into, struct ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv);\\nextern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;\",\n   \"tables\": null\n }"}}