{"Entry":{"collection":"hook","key":"needs_fmgr_hook","name":"needs_fmgr_hook","aliases":[],"metadata":{"aliases":[],"category":"Logging and function calls","content_hash":"fe22e614f97783a981576de3cc32d98791fbe2759a6703742574d9279c711da5","derived_content_hash":"dadfc5addab3ccbd5d4448a35271d661a37025fdb1fe28ce5ec9d6b946cd7052","imported_at":"2026-09-27T17:57:58.845001+08:00","name":"needs_fmgr_hook","name_zh":"needs_fmgr_hook","repair_provenance":{"original_source_revision":"","receipt_sha256":"ae5402f06b6ea38da1734ab997868af961122ce82b9f1c779b77b3be049b644c","repair":"wiki-repair-20261023"},"slug":"needs_fmgr_hook","source_rev":"wiki-repair-20261023:220833af6d16df0146b96bd14cc52a3d269e3d166548a9318a5f85e1a7180320","summary":"Hooks for function calls"}},"Definition":{"Collection":"hook","Key":"needs_fmgr_hook","SourceDatabase":"center","Version":"18","SourceTable":"hook","SourceKey":"needs_fmgr_hook","SourceRevision":"753057e340da8f22e57c9a409ea7a235fd6a46bd","Facts":{"description":["Hooks for function calls"],"description_zh":"用于函数调用的钩子。","description_zh_html":"\u003cp\u003e用于函数调用的钩子。\u003c/p\u003e\u003cp\u003e以下中文为本站依据所列 PostgreSQL 源码注释编译的说明。\u003c/p\u003e\u003ch3\u003e接口声明\u003c/h3\u003e\u003cpre\u003etypedef bool (*needs_fmgr_hook_type) (Oid fn_oid);\nextern PGDLLIMPORT needs_fmgr_hook_type needs_fmgr_hook;\u003c/pre\u003e\u003ch3\u003e调用位置\u003c/h3\u003e\u003cul\u003e\u003cli\u003e\u003ccode\u003esrc/include/fmgr.h:849\u003c/code\u003e\u003c/li\u003e\u003c/ul\u003e\u003ch3\u003e核心调用上下文：src/include/fmgr.h:843–851\u003c/h3\u003e\u003cpre\u003e\t\t\t\t\t\t\t\tFmgrInfo *flinfo, Datum *arg);\n\nextern PGDLLIMPORT needs_fmgr_hook_type needs_fmgr_hook;\nextern PGDLLIMPORT fmgr_hook_type fmgr_hook;\n\n#define FmgrHookIsNeeded(fn_oid)\t\t\t\t\t\t\t\\\n\t(!needs_fmgr_hook ? false : (*needs_fmgr_hook)(fn_oid))\n\n#endif\t\t\t\t\t\t\t/* FMGR_H */\u003c/pre\u003e","facts":[{"label":"Interface type","value":"needs_fmgr_hook_type"},{"label":"Header","value":"src/include/fmgr.h"},{"label":"Subsystem","value":"Logging and function calls"},{"label":"Initial value","value":"NULL (no hook installed)"}],"related":[],"release":{"channel":"stable","label":"18","major":"18","ref":"REL_18_STABLE","revision":"753057e340da8f22e57c9a409ea7a235fd6a46bd"},"sections":[{"paragraphs":["src/include/fmgr.h:849"],"title":"Call sites"},{"code":"\t\t\t\t\t\t\t\tFmgrInfo *flinfo, Datum *arg);\n\nextern PGDLLIMPORT needs_fmgr_hook_type needs_fmgr_hook;\nextern PGDLLIMPORT fmgr_hook_type fmgr_hook;\n\n#define FmgrHookIsNeeded(fn_oid)\t\t\t\t\t\t\t\\\n\t(!needs_fmgr_hook ? false : (*needs_fmgr_hook)(fn_oid))\n\n#endif\t\t\t\t\t\t\t/* FMGR_H */","paragraphs":[],"title":"Core call context: src/include/fmgr.h:843–851"}],"signature":"typedef bool (*needs_fmgr_hook_type) (Oid fn_oid);\nextern PGDLLIMPORT needs_fmgr_hook_type needs_fmgr_hook;","sources":[{"label":"Interface declaration","path":"src/include/fmgr.h","sha256":"9ae7c92915f702ee93be2b6aed3574edfeb7fb2effae8beb256665f307db961b","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/fmgr.h#L840"},{"label":"Core definition","path":"src/backend/utils/fmgr/fmgr.c","sha256":"6cec6e3c08f69e71bfaa67294ac6889c9278a7963e2c676de709782c0c594e75","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/fmgr/fmgr.c#L39"},{"label":"Call sites","path":"src/include/fmgr.h","sha256":"9ae7c92915f702ee93be2b6aed3574edfeb7fb2effae8beb256665f307db961b","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/fmgr.h#L849"}],"translation_provenance":{"inputs":[{"label":"Interface declaration","path":"src/include/fmgr.h","sha256":"9ae7c92915f702ee93be2b6aed3574edfeb7fb2effae8beb256665f307db961b","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/fmgr.h#L840"},{"label":"Core definition","path":"src/backend/utils/fmgr/fmgr.c","sha256":"6cec6e3c08f69e71bfaa67294ac6889c9278a7963e2c676de709782c0c594e75","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/fmgr/fmgr.c#L39"},{"label":"Call sites","path":"src/include/fmgr.h","sha256":"9ae7c92915f702ee93be2b6aed3574edfeb7fb2effae8beb256665f307db961b","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/fmgr.h#L849"}],"kind":"authored-source-translation","locale":"zh-Hans","source_revision":"753057e340da8f22e57c9a409ea7a235fd6a46bd","translated_source_sha256":"f6f10c143bb386fd906eb3fc523f5171e96043510c00ab5381800f6110ad4f59","version":"18"},"zh_from":"authored-source-translation"},"ManualEvidence":{"release":{"channel":"stable","label":"18","major":"18","ref":"REL_18_STABLE","revision":"753057e340da8f22e57c9a409ea7a235fd6a46bd"},"sources":[{"label":"Interface declaration","path":"src/include/fmgr.h","sha256":"9ae7c92915f702ee93be2b6aed3574edfeb7fb2effae8beb256665f307db961b","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/fmgr.h#L840"},{"label":"Core definition","path":"src/backend/utils/fmgr/fmgr.c","sha256":"6cec6e3c08f69e71bfaa67294ac6889c9278a7963e2c676de709782c0c594e75","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/fmgr/fmgr.c#L39"},{"label":"Call sites","path":"src/include/fmgr.h","sha256":"9ae7c92915f702ee93be2b6aed3574edfeb7fb2effae8beb256665f307db961b","url":"https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/fmgr.h#L849"}]},"MeasuredEvidence":{}},"Text":{"Collection":"hook","Key":"needs_fmgr_hook","SourceDatabase":"center","Version":"18","Locale":"en","Title":"needs_fmgr_hook","Summary":"Hooks for function calls","BodyHTML":"\u003cp\u003eHooks for function calls\u003c/p\u003e","SourceRevision":"753057e340da8f22e57c9a409ea7a235fd6a46bd","ContentHash":"a7f8526064ee73e3a87fd62997b01b157dbb30a2b6a63c25fcbbca7d44394e54","Payload":{"description":["Hooks for function calls"],"related":[],"sections":[{"paragraphs":["src/include/fmgr.h:849"],"title":"Call sites"},{"code":"\t\t\t\t\t\t\t\tFmgrInfo *flinfo, Datum *arg);\n\nextern PGDLLIMPORT needs_fmgr_hook_type needs_fmgr_hook;\nextern PGDLLIMPORT fmgr_hook_type fmgr_hook;\n\n#define FmgrHookIsNeeded(fn_oid)\t\t\t\t\t\t\t\\\n\t(!needs_fmgr_hook ? false : (*needs_fmgr_hook)(fn_oid))\n\n#endif\t\t\t\t\t\t\t/* FMGR_H */","paragraphs":[],"title":"Core call context: src/include/fmgr.h:843–851"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
