Can this information be part of PathTarget structure and hence part of RelOptInfo::reltarget, so that it can be extended to join, group and other kinds of RelOptInfo in future?
I think you want to expand this field in a more generic way. For example:
SELECT udf(a) FROM t WHERE a is not null; In current implementation, I only
knows a is not null, nothing about if udf(a) is null or not. And we can't present anything
for joinrel as well since it is just attno.
At the same time, looks we can't tell if UDF(A) is null even if the UDF is strict and
A is not null?
In fact, it might be easy to do that in this patch itself.
Actually I can't think out the method:)
On Wed, Feb 10, 2021 at 8:57 AM Andy Fan <zhihui.fan1213@gmail.com> wrote: > > > On Wed, Feb 10, 2021 at 11:18 AM Andy Fan <zhihui.fan1213@gmail.com> wrote: >> >> Hi: >> >> This patch is the first patch in UniqueKey patch series[1], since I need to revise >> that series many times but the first one would be not that often, so I'd like to >> submit this one for review first so that I don't need to maintain it again and again. >> >> v1-0001-Introduce-notnullattrs-field-in-RelOptInfo-to-ind.patch >> >> Introduce notnullattrs field in RelOptInfo to indicate which attr are not null >> in current query. The not null is judged by checking pg_attribute and query's >> restrictinfo. The info is only maintained at Base RelOptInfo and Partition's >> RelOptInfo level so far. >> >> >> Any thoughts? >> >> [1] https://www.postgresql.org/message-id/CAKU4AWr1BmbQB4F7j22G%2BNS4dNuem6dKaUf%2B1BK8me61uBgqqg%40mail.gmail.com >> -- >> Best Regards >> Andy Fan (https://www.aliyun.com/) > > > Add the missed patch.. > > -- > Best Regards > Andy Fan (https://www.aliyun.com/)