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@xxxxxxxxxxxxx>
发送时间:2014-01-13 23:21
主题:Re: [GENERAL] How to
specify/mock the statistic data of tables in PostgreSQL
收件人:"Felix.徐"<ygnhzeus@xxxxxxxxx>
抄送:"Amit
Langote"<amitlangote09@xxxxxxxxx>,"Atri
Sharma"<atri.jiit@xxxxxxxxx>,"pgsql-general"<pgsql-general@xxxxxxxxxxxxxx>
=?GB2312?B?RmVsaXgu0Ow=?= <ygnhzeus@xxxxxxxxx> 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 |