{"kind": "hook", "major": "18", "item": {"slug": "executorcheckperms_hook", "name": "ExecutorCheckPerms_hook", "name_zh": "ExecutorCheckPerms_hook", "category": "Permissions and object access", "summary": "Hook for plugins to get control in ExecCheckPermissions()", "aliases": [], "versions": {"10": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L88", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "4a55453e497d81e8862f118c14ea412222b64b425a6328b3557221e2506e6415"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/executor/execMain.c#L77", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "386d09f7e964ebc426a554cf51ac7cb505c67cc95b971ee7acad1a6e0a9d0c1a"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/executor/execMain.c#L592", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "386d09f7e964ebc426a554cf51ac7cb505c67cc95b971ee7acad1a6e0a9d0c1a"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckRTPerms()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:592"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(rte->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckRTEPerms\n *\t\tCheck access permissions for a single RTE.\n */", "title": "Core call context: src/backend/executor/execMain.c:586\u2013600", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *, bool);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckRTPerms()"]}, "11": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L89", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "4ca3e44da367fa36fff5e9ebe2875857fed948af35dc3c97d5f49e0367c5c54a"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/executor/execMain.c#L77", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "c78345058528afae9549e518fc5b1a4b540d2fae4d6920e038c03b2b8e30adb3"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/executor/execMain.c#L581", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "c78345058528afae9549e518fc5b1a4b540d2fae4d6920e038c03b2b8e30adb3"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckRTPerms()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:581"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(rte->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckRTEPerms\n *\t\tCheck access permissions for a single RTE.\n */", "title": "Core call context: src/backend/executor/execMain.c:575\u2013589", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *, bool);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckRTPerms()"]}, "12": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L83", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "7097ada6b8e6f070734a242da928e51d50bfceae9d1eda37b99b94bf38cd29c0"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/executor/execMain.c#L76", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "909de012ba3007d08c7a7d5b45b2d144cd46b46874b3e91c0fc099cf79a097c7"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/executor/execMain.c#L578", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "909de012ba3007d08c7a7d5b45b2d144cd46b46874b3e91c0fc099cf79a097c7"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckRTPerms()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:578"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(rte->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckRTEPerms\n *\t\tCheck access permissions for a single RTE.\n */", "title": "Core call context: src/backend/executor/execMain.c:572\u2013586", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *, bool);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckRTPerms()"]}, "13": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L84", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "7dc8f6dd29d6b4749f2b6c4bd89a037f44a192f36002018a9c44067a4e65feb8"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/executor/execMain.c#L76", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "88dc62d891dc842fc12f5bcf3c88e227b65695112bc343a5efa37dd2eba26687"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/executor/execMain.c#L569", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "88dc62d891dc842fc12f5bcf3c88e227b65695112bc343a5efa37dd2eba26687"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckRTPerms()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:569"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(rte->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckRTEPerms\n *\t\tCheck access permissions for a single RTE.\n */", "title": "Core call context: src/backend/executor/execMain.c:563\u2013577", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *, bool);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckRTPerms()"]}, "14": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L84", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "4b513bbfa6428b55611c3a2603d46f1f074dc37962dec8b4b36377bcb28ad577"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/executor/execMain.c#L78", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "dcee56d21f586bade493b51e702d18b405ae6576a46bb9fda21a863ac4388965"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/executor/execMain.c#L583", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "dcee56d21f586bade493b51e702d18b405ae6576a46bb9fda21a863ac4388965"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckRTPerms()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:583"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(rte->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckRTEPerms\n *\t\tCheck access permissions for a single RTE.\n */", "title": "Core call context: src/backend/executor/execMain.c:577\u2013591", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *, bool);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckRTPerms()"]}, "15": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L84", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "846a309bea2c181be918afc888d3aad9b9227a20ed7ac402eb6336cea8fbf22b"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/executor/execMain.c#L79", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "1fc0d48c323f47499bba41d6132c991305491e1dae7b4f359f2092e7e36c8e84"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/executor/execMain.c#L585", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "1fc0d48c323f47499bba41d6132c991305491e1dae7b4f359f2092e7e36c8e84"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckRTPerms()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:585"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(rte->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckRTEPerms\n *\t\tCheck access permissions for a single RTE.\n */", "title": "Core call context: src/backend/executor/execMain.c:579\u2013593", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *, bool);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckRTPerms()"]}, "16": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L94", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "e0338e112ca4c1b9368cdf84a1613be0dc6339cd518bf28b707a175e23d6867f"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/executor/execMain.c#L79", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "14f86a289bbb3c997a0efcbb35f6dfc1678a5c28b79912cd20aa89341ac8d3c7"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/executor/execMain.c#L628", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "14f86a289bbb3c997a0efcbb35f6dfc1678a5c28b79912cd20aa89341ac8d3c7"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckPermissions()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:628"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(perminfo->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable, rteperminfos,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckOneRelPerms\n *\t\tCheck access permissions for a single relation.\n */", "title": "Core call context: src/backend/executor/execMain.c:622\u2013636", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *rangeTable, List *rtePermInfos, bool ereport_on_violation);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckPermissions()"]}, "17": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L94", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "b30a5ee022ac1ae8cb3cfd93a2c3152ec40a7b60dc85b46f95aef2e3f8791ebe"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/executor/execMain.c#L71", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "9fd3d47ee4216550826a0707303f3dea6a65b23f36dd18f50f1bffa51b461163"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/executor/execMain.c#L626", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "9fd3d47ee4216550826a0707303f3dea6a65b23f36dd18f50f1bffa51b461163"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckPermissions()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:626"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(perminfo->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable, rteperminfos,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckOneRelPerms\n *\t\tCheck access permissions for a single relation.\n */", "title": "Core call context: src/backend/executor/execMain.c:620\u2013634", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *rangeTable, List *rtePermInfos, bool ereport_on_violation);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckPermissions()"]}, "18": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L93", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "65710b17bb91a8fe6367654bb27b67ef7a7c238f79ba46248f92a3b8302cd4bb"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L74", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L636", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckPermissions()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:636"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(perminfo->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable, rteperminfos,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckOneRelPerms\n *\t\tCheck access permissions for a single relation.\n */", "title": "Core call context: src/backend/executor/execMain.c:630\u2013644", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *rangeTable, List *rtePermInfos, bool ereport_on_violation);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckPermissions()"]}, "19": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L95", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "dc8c9089ea8b32a3991a7435f9f2b8c6a0b5d257d49e16afa88b1f2ec946b1b1"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/executor/execMain.c#L76", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "20f32fd8f9cc01346154a42773ec38523d684b836942da57fef781c86bc1232e"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/executor/execMain.c#L647", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "20f32fd8f9cc01346154a42773ec38523d684b836942da57fef781c86bc1232e"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckPermissions()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:647"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(perminfo->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable, rteperminfos,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckOneRelPerms\n *\t\tCheck access permissions for a single relation.\n */", "title": "Core call context: src/backend/executor/execMain.c:641\u2013655", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *rangeTable, List *rtePermInfos, bool ereport_on_violation);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckPermissions()"]}, "20": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L95", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "dc8c9089ea8b32a3991a7435f9f2b8c6a0b5d257d49e16afa88b1f2ec946b1b1"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/executor/execMain.c#L76", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "6d2659b61f497e2ca8ddbc731b1bfe39792bdde326424c77b224cf8bdea01927"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/executor/execMain.c#L647", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "6d2659b61f497e2ca8ddbc731b1bfe39792bdde326424c77b224cf8bdea01927"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckPermissions()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:647"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(perminfo->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable, rteperminfos,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckOneRelPerms\n *\t\tCheck access permissions for a single relation.\n */", "title": "Core call context: src/backend/executor/execMain.c:641\u2013655", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *rangeTable, List *rtePermInfos, bool ereport_on_violation);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckPermissions()"]}}, "content_hash": "0777188db0fa95d49ba8cd74a37f33b7eb8ae6c5a8c8546b4c0d6239518374d5", "imported_at": "2026-09-27T09:57:58.851"}, "snapshot": {"facts": [{"label": "Interface type", "value": "ExecutorCheckPerms_hook_type"}, {"label": "Header", "value": "src/include/executor/executor.h"}, {"label": "Subsystem", "value": "Permissions and object access"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "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#L93", "path": "src/include/executor/executor.h", "label": "Interface declaration", "sha256": "65710b17bb91a8fe6367654bb27b67ef7a7c238f79ba46248f92a3b8302cd4bb"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L74", "path": "src/backend/executor/execMain.c", "label": "Core definition", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/executor/execMain.c#L636", "path": "src/backend/executor/execMain.c", "label": "Call sites", "sha256": "a0407447270840acd8a9902c444693d97c765fd8e056dbadc66d36a3327fb0ef"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for plugin to get control in ExecCheckPermissions()"]}, {"title": "Call sites", "paragraphs": ["src/backend/executor/execMain.c:636"]}, {"code": "\t\t\t\t\t\t\t   get_rel_name(perminfo->relid));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ExecutorCheckPerms_hook)\n\t\tresult = (*ExecutorCheckPerms_hook) (rangeTable, rteperminfos,\n\t\t\t\t\t\t\t\t\t\t\t ereport_on_violation);\n\treturn result;\n}\n\n/*\n * ExecCheckOneRelPerms\n *\t\tCheck access permissions for a single relation.\n */", "title": "Core call context: src/backend/executor/execMain.c:630\u2013644", "paragraphs": []}], "signature": "typedef bool (*ExecutorCheckPerms_hook_type) (List *rangeTable, List *rtePermInfos, bool ereport_on_violation);\nextern PGDLLIMPORT ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook;", "description": ["Hook for plugins to get control in ExecCheckPermissions()"]}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}