Re: Showing applied extended statistics in explain Part 2

Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>

From: Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>
To: Tomas Vondra <tomas@vondra.me>, Tatsuro Yamada <yamatattsu@gmail.com>, Masahiro.Ikeda@nttdata.com
Cc: tomas.vondra@enterprisedb.com, tatsuro.yamada@ntt.com, pgsql-hackers@postgresql.org, Masao.Fujii@nttdata.com
Date: 2024-12-02T17:00:23Z
Lists: pgsql-hackers
On 19.11.2024 00:38, Tomas Vondra wrote:
> On 11/18/24 22:15, Tomas Vondra wrote:
>> ...
>>
>> So I think the correct solution is to not pass any expressions with
>> RestrictInfo to deparse_expression(). Either by stripping the nodes, or
>> by not adding them at all.
>>
>> The patch tries to do the stripping by maybe_extract_actual_clauses(),
>> but that only looks at the top node, and that is not sufficient here.
>> Maybe it would be possible to walk the whole tree, and remove all the
>> RestrictInfos nodes - including intermediate ones, not just the top. But
>> I'm not quite sure it wouldn't cause issues elsewhere (assuming it
>> modifies the existing nodes). It still feels a bit like fixing a problem
>> we shouldn't really have ...
>>
> To make this idea a bit more concrete, here's a patch removing all
> RestrictInfo nodes in show_stat_qual(). But still, it feels wrong.
>
>
> regards
>

Yes, removing all 'RestrictInfos' during deparsing using 
'expression_tree_mutator()' is not optimal. However, I don't see an 
alternative. Perhaps it could be done this earlier in extended_stats.c 
to avoid the need for cleanup later ...

--
Best regards,
Ilia Evdokimov,
Tantor Labs LLC.