I see, thanks, so columns of staop* are not currently used by the planner by default, right? The type of staop is oid, which table is related to it?
2014-01-13 ygnhzeus 发件人:Tom Lane <[email protected]> 发送时间:2014-01-13 23:21 主题:Re: [GENERAL] How to specify/mock the statistic data of tables in PostgreSQL 收件人:"Felix.徐"<[email protected]> 抄送:"Amit Langote"<[email protected]>,"Atri Sharma"<[email protected]>,"pgsql-general"<[email protected]> =?GB2312?B?RmVsaXgu0Ow=?= <[email protected]> writes: > //line 194 : In a "most common values" slot, staop is the OID of the "=" > operator used to decide whether values are the same or not. > //line 206 : A "histogram" slot describes the distribution of scalar data. > staop is the OID of the "<" operator that describes the sort ordering. > I don't understand the function of staop here, how is it used in optimizer, In principle a data type could have more than one sort ordering, and if we were to collect stats according to multiple orderings, staop would be needed to identify which ordering a particular set of statistics was created with. That flexibility isn't being used right now, at least not by any built-in code. There are types with more than one ordering (more than one btree opclass), but ANALYZE only collects stats for the default btree opclass. regards, tom lane
