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 <t...@sss.pgh.pa.us> 发送时间:2014-01-13 23:21 主题:Re: [GENERAL] How to specify/mock the statistic data of tables in PostgreSQL 收件人:"Felix.徐"<ygnhz...@gmail.com> 抄送:"Amit Langote"<amitlangot...@gmail.com>,"Atri Sharma"<atri.j...@gmail.com>,"pgsql-general"<pgsql-general@postgresql.org> =?GB2312?B?RmVsaXgu0Ow=?= <ygnhz...@gmail.com> 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