{"kind": "hook", "major": "18", "item": {"slug": "get_attavgwidth_hook", "name": "get_attavgwidth_hook", "name_zh": "get_attavgwidth_hook", "category": "Statistics and estimation", "summary": "Hook for plugins to get control in get_attavgwidth()", "aliases": [], "versions": {"10": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/10/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_10_STABLE", "label": "10", "major": "10", "channel": "historical", "revision": "f4e8f137bfb08a664c8288824c1e36b5143ac875"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/include/utils/lsyscache.h#L61", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "c945f1fd1f9bd32587a82cad122af5b12553bc2d1a66767b120c17468fed949e"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/utils/cache/lsyscache.c#L50", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "d572a1ae1cd94b54bfbbbda7adb2246471d89f275d16d3dd6fc14debd555d87f"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/utils/cache/lsyscache.c#L2859", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "d572a1ae1cd94b54bfbbbda7adb2246471d89f275d16d3dd6fc14debd555d87f"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:2859"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:2853\u20132867", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "11": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/11/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_11_STABLE", "label": "11", "major": "11", "channel": "historical", "revision": "170e416034ec0231d9e9238f2577eeb76ca8d181"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/include/utils/lsyscache.h#L61", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "71f1dc96e3d4fca3cdc0384f4b603a070943d89ef16ec37979904789a0b4581a"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/utils/cache/lsyscache.c#L50", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "3c63b43f833e40b63d7d1d15b7b321c890d2ae22ae1188b2f709eec38f139775"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/utils/cache/lsyscache.c#L2877", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "3c63b43f833e40b63d7d1d15b7b321c890d2ae22ae1188b2f709eec38f139775"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:2877"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:2871\u20132885", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "12": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/12/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_12_STABLE", "label": "12", "major": "12", "channel": "historical", "revision": "3f302f0ed06f69c5ebd33d4df95895323a3cbef6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/include/utils/lsyscache.h#L62", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "32ad4fb942b8bbc692c362426d5871083e4cee69bceda0aaee7ae11f0d91680e"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/utils/cache/lsyscache.c#L50", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "e1ba6033c579abbd16c7fd5c29aa527b009fcc06e298352e1bb5f2586fa32a83"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/utils/cache/lsyscache.c#L2904", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "e1ba6033c579abbd16c7fd5c29aa527b009fcc06e298352e1bb5f2586fa32a83"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:2904"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:2898\u20132912", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "13": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/13/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_13_STABLE", "label": "13", "major": "13", "channel": "historical", "revision": "05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/include/utils/lsyscache.h#L62", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "1356ab2c69ed832883ea0bd89a8e77f2291db56be4d1686e612540d26f0a6845"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/utils/cache/lsyscache.c#L51", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "34198e44249c1191a7a60cc2dc6fe9149e3719434c9a02266acc5123ed43c00c"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/utils/cache/lsyscache.c#L3014", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "34198e44249c1191a7a60cc2dc6fe9149e3719434c9a02266acc5123ed43c00c"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3014"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3008\u20133022", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "14": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/14/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_14_STABLE", "label": "14", "major": "14", "channel": "stable", "revision": "fba35c7c28a567839faba867db0808564c0a66db"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/include/utils/lsyscache.h#L65", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "5916e946d0a8aa5896c0aa7088f60c8089b837a63ac97ce21a601b1c0c62e387"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/utils/cache/lsyscache.c#L51", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "1b106f1558e4e9ac424623a5edd4c2aa15b564aacd45065ad3529a81243a3a17"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/utils/cache/lsyscache.c#L3235", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "1b106f1558e4e9ac424623a5edd4c2aa15b564aacd45065ad3529a81243a3a17"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3235"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3229\u20133243", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "15": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/15/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_15_STABLE", "label": "15", "major": "15", "channel": "stable", "revision": "0351991b8e7c7b64382e2f30ce581a8f276590a6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/include/utils/lsyscache.h#L65", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "3cde44e1b3e9d92818f33efc79115306a6ec55a02dcdebd5b59f91f067e48d20"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/utils/cache/lsyscache.c#L51", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "015446a5a6616d41cac8a939a6aa5771bbcd5e2220b4fffba095d2fa30e71e27"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/utils/cache/lsyscache.c#L3235", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "015446a5a6616d41cac8a939a6aa5771bbcd5e2220b4fffba095d2fa30e71e27"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3235"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3229\u20133243", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "16": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/16/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_16_STABLE", "label": "16", "major": "16", "channel": "stable", "revision": "dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/include/utils/lsyscache.h#L65", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "fb25cfb944af2754d95bfd007ddd2ee4c5aa0e2ee678086a4620fb6d1ba38ab6"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/utils/cache/lsyscache.c#L52", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "c7669b67bbe5f3aad231d5e134563dc634026c559954e2719d41dace9cade0a9"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/utils/cache/lsyscache.c#L3236", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "c7669b67bbe5f3aad231d5e134563dc634026c559954e2719d41dace9cade0a9"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3236"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3230\u20133244", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "17": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/17/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_17_STABLE", "label": "17", "major": "17", "channel": "stable", "revision": "163288afd32a448244c8df75b3c33181aadd7f20"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/include/utils/lsyscache.h#L65", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "d92246132a38a36a521a0b9b4704af9833cdfdb65cf5559582d97c4bec2a5283"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/utils/cache/lsyscache.c#L53", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "a29a7752932c692d85fed61581b28d31113c349bb9cb8950b5fa325079f69541"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/utils/cache/lsyscache.c#L3278", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "a29a7752932c692d85fed61581b28d31113c349bb9cb8950b5fa325079f69541"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3278"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3272\u20133286", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "18": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/18/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/utils/lsyscache.h#L66", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "48ab9cc15af02106e6710ea04b2738e8aea75b4956934ea8ec109c8c49daa834"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/cache/lsyscache.c#L54", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "43a22e20685c043936ddfeee032d0c06d9408d7edbadfa9417a2ede32e70b97d"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/cache/lsyscache.c#L3467", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "43a22e20685c043936ddfeee032d0c06d9408d7edbadfa9417a2ede32e70b97d"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3467"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3461\u20133475", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "19": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/19/planner-optimizer.html", "label": "The Planner/Optimizer"}], "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/utils/lsyscache.h#L66", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "1edd69681906b30b512c9085d2751efa1629ee26ca89c4154fca4b4f82793e03"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/utils/cache/lsyscache.c#L55", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "8f2026cfcdf7465afc375123e5be302e3e4bf9815e325f41eba6dc55fb79cf00"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/utils/cache/lsyscache.c#L3479", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "8f2026cfcdf7465afc375123e5be302e3e4bf9815e325f41eba6dc55fb79cf00"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3479"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3473\u20133487", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "20": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/devel/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "master", "label": "20 devel", "major": "20", "channel": "devel", "revision": "2c10c2ce4d7bcd57543a49ab402af02a39724e0a"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/include/utils/lsyscache.h#L66", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "1edd69681906b30b512c9085d2751efa1629ee26ca89c4154fca4b4f82793e03"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/utils/cache/lsyscache.c#L55", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "72b1e5cff25d0c35e454706269fe89e9c3e815e3714ebaf862230f589072b7f5"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/utils/cache/lsyscache.c#L3479", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "72b1e5cff25d0c35e454706269fe89e9c3e815e3714ebaf862230f589072b7f5"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3479"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3473\u20133487", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}}, "content_hash": "04af6adb045a56da90e5fc2cd1899ee585db95a6076187116b4157aba2448317", "imported_at": "2026-09-27T09:57:58.894"}, "snapshot": {"facts": [{"label": "Interface type", "value": "get_attavgwidth_hook_type"}, {"label": "Header", "value": "src/include/utils/lsyscache.h"}, {"label": "Subsystem", "value": "Statistics and estimation"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [{"url": "/docs/18/planner-optimizer.html", "label": "The Planner/Optimizer"}], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/utils/lsyscache.h#L66", "path": "src/include/utils/lsyscache.h", "label": "Interface declaration", "sha256": "48ab9cc15af02106e6710ea04b2738e8aea75b4956934ea8ec109c8c49daa834"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/cache/lsyscache.c#L54", "path": "src/backend/utils/cache/lsyscache.c", "label": "Core definition", "sha256": "43a22e20685c043936ddfeee032d0c06d9408d7edbadfa9417a2ede32e70b97d"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/cache/lsyscache.c#L3467", "path": "src/backend/utils/cache/lsyscache.c", "label": "Call sites", "sha256": "43a22e20685c043936ddfeee032d0c06d9408d7edbadfa9417a2ede32e70b97d"}], "sections": [{"title": "Call sites", "paragraphs": ["src/backend/utils/cache/lsyscache.c:3467"]}, {"code": "{\n\tHeapTuple\ttp;\n\tint32\t\tstawidth;\n\n\tif (get_attavgwidth_hook)\n\t{\n\t\tstawidth = (*get_attavgwidth_hook) (relid, attnum);\n\t\tif (stawidth > 0)\n\t\t\treturn stawidth;\n\t}\n\ttp = SearchSysCache3(STATRELATTINH,\n\t\t\t\t\t\t ObjectIdGetDatum(relid),\n\t\t\t\t\t\t Int16GetDatum(attnum),\n\t\t\t\t\t\t BoolGetDatum(false));\n\tif (HeapTupleIsValid(tp))", "title": "Core call context: src/backend/utils/cache/lsyscache.c:3461\u20133475", "paragraphs": []}], "signature": "typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);\nextern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;", "description": ["Hook for plugins to get control in get_attavgwidth()"]}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}