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