{"kind": "hook", "major": "18", "item": {"slug": "executorrun_hook", "name": "ExecutorRun_hook", "name_zh": "ExecutorRun_hook", "category": "Query execution", "summary": "Hook for plugins to get control in ExecutorRun()", "aliases": [], "versions": {"10": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/10/executor.html", "label": "The Executor"}], "release": {"ref": "REL_10_STABLE", "label": "10", "major": "10", "channel": "historical", "revision": "f4e8f137bfb08a664c8288824c1e36b5143ac875"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/include/executor/executor.h#L73", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "4a55453e497d81e8862f118c14ea412222b64b425a6328b3557221e2506e6415"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/executor/execMain.c#L72", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "386d09f7e964ebc426a554cf51ac7cb505c67cc95b971ee7acad1a6e0a9d0c1a"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/executor/execMain.c#L305", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "386d09f7e964ebc426a554cf51ac7cb505c67cc95b971ee7acad1a6e0a9d0c1a"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:305"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:299\u2013313", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "11": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/11/executor.html", "label": "The Executor"}], "release": {"ref": "REL_11_STABLE", "label": "11", "major": "11", "channel": "historical", "revision": "170e416034ec0231d9e9238f2577eeb76ca8d181"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/include/executor/executor.h#L74", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "4ca3e44da367fa36fff5e9ebe2875857fed948af35dc3c97d5f49e0367c5c54a"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/executor/execMain.c#L72", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "c78345058528afae9549e518fc5b1a4b540d2fae4d6920e038c03b2b8e30adb3"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/executor/execMain.c#L294", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "c78345058528afae9549e518fc5b1a4b540d2fae4d6920e038c03b2b8e30adb3"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:294"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:288\u2013302", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "12": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/12/executor.html", "label": "The Executor"}], "release": {"ref": "REL_12_STABLE", "label": "12", "major": "12", "channel": "historical", "revision": "3f302f0ed06f69c5ebd33d4df95895323a3cbef6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/include/executor/executor.h#L68", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "7097ada6b8e6f070734a242da928e51d50bfceae9d1eda37b99b94bf38cd29c0"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/executor/execMain.c#L71", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "909de012ba3007d08c7a7d5b45b2d144cd46b46874b3e91c0fc099cf79a097c7"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/executor/execMain.c#L292", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "909de012ba3007d08c7a7d5b45b2d144cd46b46874b3e91c0fc099cf79a097c7"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:292"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:286\u2013300", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "13": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/13/executor.html", "label": "The Executor"}], "release": {"ref": "REL_13_STABLE", "label": "13", "major": "13", "channel": "historical", "revision": "05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/include/executor/executor.h#L69", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "7dc8f6dd29d6b4749f2b6c4bd89a037f44a192f36002018a9c44067a4e65feb8"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/executor/execMain.c#L71", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "88dc62d891dc842fc12f5bcf3c88e227b65695112bc343a5efa37dd2eba26687"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/executor/execMain.c#L292", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "88dc62d891dc842fc12f5bcf3c88e227b65695112bc343a5efa37dd2eba26687"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:292"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:286\u2013300", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "14": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/14/executor.html", "label": "The Executor"}], "release": {"ref": "REL_14_STABLE", "label": "14", "major": "14", "channel": "stable", "revision": "fba35c7c28a567839faba867db0808564c0a66db"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/include/executor/executor.h#L69", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "4b513bbfa6428b55611c3a2603d46f1f074dc37962dec8b4b36377bcb28ad577"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/executor/execMain.c#L73", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "dcee56d21f586bade493b51e702d18b405ae6576a46bb9fda21a863ac4388965"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/executor/execMain.c#L306", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "dcee56d21f586bade493b51e702d18b405ae6576a46bb9fda21a863ac4388965"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:306"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:300\u2013314", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "15": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/15/executor.html", "label": "The Executor"}], "release": {"ref": "REL_15_STABLE", "label": "15", "major": "15", "channel": "stable", "revision": "0351991b8e7c7b64382e2f30ce581a8f276590a6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/include/executor/executor.h#L69", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "846a309bea2c181be918afc888d3aad9b9227a20ed7ac402eb6336cea8fbf22b"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/executor/execMain.c#L74", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "1fc0d48c323f47499bba41d6132c991305491e1dae7b4f359f2092e7e36c8e84"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/executor/execMain.c#L308", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "1fc0d48c323f47499bba41d6132c991305491e1dae7b4f359f2092e7e36c8e84"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:308"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:302\u2013316", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "16": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/16/executor.html", "label": "The Executor"}], "release": {"ref": "REL_16_STABLE", "label": "16", "major": "16", "channel": "stable", "revision": "dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/include/executor/executor.h#L79", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "e0338e112ca4c1b9368cdf84a1613be0dc6339cd518bf28b707a175e23d6867f"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/executor/execMain.c#L74", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "14f86a289bbb3c997a0efcbb35f6dfc1678a5c28b79912cd20aa89341ac8d3c7"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/executor/execMain.c#L309", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "14f86a289bbb3c997a0efcbb35f6dfc1678a5c28b79912cd20aa89341ac8d3c7"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:309"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:303\u2013317", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "17": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/17/executor.html", "label": "The Executor"}], "release": {"ref": "REL_17_STABLE", "label": "17", "major": "17", "channel": "stable", "revision": "163288afd32a448244c8df75b3c33181aadd7f20"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/include/executor/executor.h#L79", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "b30a5ee022ac1ae8cb3cfd93a2c3152ec40a7b60dc85b46f95aef2e3f8791ebe"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/executor/execMain.c#L66", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "9fd3d47ee4216550826a0707303f3dea6a65b23f36dd18f50f1bffa51b461163"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/executor/execMain.c#L304", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "9fd3d47ee4216550826a0707303f3dea6a65b23f36dd18f50f1bffa51b461163"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:304"]}, {"code": "void\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count,\n\t\t\tbool execute_once)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count, execute_once);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count, bool execute_once)\n{", "title": "Core call context: src/backend/executor/execMain.c:298\u2013312", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "18": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/18/executor.html", "label": "The Executor"}], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/executor/executor.h#L79", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "65710b17bb91a8fe6367654bb27b67ef7a7c238f79ba46248f92a3b8302cd4bb"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L69", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L301", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:301"]}, {"code": " */\nvoid\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count)\n{", "title": "Core call context: src/backend/executor/execMain.c:295\u2013309", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "19": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/19/executor.html", "label": "The Executor"}], "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/executor/executor.h#L81", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "dc8c9089ea8b32a3991a7435f9f2b8c6a0b5d257d49e16afa88b1f2ec946b1b1"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/executor/execMain.c#L71", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "20f32fd8f9cc01346154a42773ec38523d684b836942da57fef781c86bc1232e"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/executor/execMain.c#L312", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "20f32fd8f9cc01346154a42773ec38523d684b836942da57fef781c86bc1232e"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:312"]}, {"code": " */\nvoid\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count)\n{", "title": "Core call context: src/backend/executor/execMain.c:306\u2013320", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "20": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/devel/executor.html", "label": "The Executor"}], "release": {"ref": "master", "label": "20 devel", "major": "20", "channel": "devel", "revision": "2c10c2ce4d7bcd57543a49ab402af02a39724e0a"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/include/executor/executor.h#L81", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "dc8c9089ea8b32a3991a7435f9f2b8c6a0b5d257d49e16afa88b1f2ec946b1b1"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/executor/execMain.c#L71", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "6d2659b61f497e2ca8ddbc731b1bfe39792bdde326424c77b224cf8bdea01927"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/executor/execMain.c#L312", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "6d2659b61f497e2ca8ddbc731b1bfe39792bdde326424c77b224cf8bdea01927"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:312"]}, {"code": " */\nvoid\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count)\n{", "title": "Core call context: src/backend/executor/execMain.c:306\u2013320", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}}, "content_hash": "b4cc0ee8f080247f2e84e0cc626f9384644b2bdaa51051408165ddf5d5a713c2", "imported_at": "2026-09-27T09:57:58.864"}, "snapshot": {"facts": [{"label": "Interface type", "value": "ExecutorRun_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Query execution"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/18/executor.html", "label": "The Executor"}], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/executor/executor.h#L79", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "65710b17bb91a8fe6367654bb27b67ef7a7c238f79ba46248f92a3b8302cd4bb"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L69", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L301", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:301"]}, {"code": " */\nvoid\nExecutorRun(QueryDesc *queryDesc,\n\t\t\tScanDirection direction, uint64 count)\n{\n\tif (ExecutorRun_hook)\n\t\t(*ExecutorRun_hook) (queryDesc, direction, count);\n\telse\n\t\tstandard_ExecutorRun(queryDesc, direction, count);\n}\n\nvoid\nstandard_ExecutorRun(QueryDesc *queryDesc,\n\t\t\t\t\t ScanDirection direction, uint64 count)\n{", "title": "Core call context: src/backend/executor/execMain.c:295\u2013309", "paragraphs": []}], "signature": "typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count);\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;", "description": ["Hook for plugins to get control in ExecutorRun()"]}, "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 (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count, bool execute_once);\\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;\",\n+  \"signature\": \"typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirection direction, uint64 count);\\nextern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook;\",\n   \"tables\": null\n }"}}