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 

Reply via email to