对pg_statistic表的查询都是走syscache的,要找到所有使用列统计信息地方,遍历系统表索引即可
enum SysCacheIdentifier
{
...
STATEXTDATASTXOID,
STATEXTNAMENSP,
STATEXTOID,
STATRELATTINH,
...
}
下面是最常用的STATRELATTINH索引场景,即
SearchSysCache3(STATRELATTINH,
ObjectIdGetDatum(relid),
Int16GetDatum(colnum),
BoolGetDatum(rte->inh));
优化器访问列统计信息的接口: