在PostgreSQL 12中,一个子句如何产生多个indexqual条件?

问题描述

我正在阅读Postgresql 12的源代码,其中 server/nodes/pathnodes.h我读过

indexquals is a list of RestrictInfos for the directly-usable index
conditions associated with this IndexClause.  In the simplest case
it's a one-element list whose member is iclause->rinfo.  Otherwise,it contains one or more directly-usable indexqual conditions extracted
from the given clause.  The 'lossy' flag indicates whether the
indexquals are semantically equivalent to the original clause,or
represent a weaker condition.

在此结构中

typedef struct IndexClause
{
    NodeTag     type;
    struct RestrictInfo *rinfo; /* original restriction or join clause */
    List       *indexquals;     /* indexqual(s) derived from it */
    bool        lossy;          /* are indexquals a lossy version of clause? */
    AttrNumber  indexcol;       /* index column the clause uses (zero-based) */
    List       *indexcols;      /* multiple index columns,if RowCompare */
} IndexClause;

但是,我不确定一个子句(或一个限制Info)如何产生多个indexquals。

有人可以给我一个例子吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)