Re: Columns correlation and adaptive query optimization - Mailing list pgsql-hackers

From Zhihong Yu
Subject Re: Columns correlation and adaptive query optimization
Date
Msg-id CALNJ-vRh-53giL4cfz4cCEHnqMKdevOws7trdwHJigS1918q-A@mail.gmail.com
Whole thread Raw
In response to Re: Columns correlation and adaptive query optimization  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
Responses Re: Columns correlation and adaptive query optimization  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
List pgsql-hackers
Hi,
In AddMultiColumnStatisticsForQual(), 

+   /* Loop until we considered all vars */
+   while (vars != NULL)
...
+       /* Contruct list of unique vars */
+       foreach (cell, vars)

What if some cell / node, gets into the else block:

+               else
+               {
+                   continue;

and being left in vars. Is there a chance for infinite loop ?
It seems there should be a bool variable indicating whether any cell gets to the following:

+           vars = foreach_delete_current(vars, cell);

If no cell gets removed in the current iteration, the outer while loop should exit.

Cheers

On Fri, Mar 19, 2021 at 9:58 AM Konstantin Knizhnik <k.knizhnik@postgrespro.ru> wrote:


On 19.03.2021 12:17, Yugo NAGATA wrote:
> On Wed, 10 Mar 2021 03:00:25 +0100
> Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:
>
>> What is being proposed here - an extension suggesting which statistics
>> to create (and possibly creating them automatically) is certainly
>> useful, but I'm not sure I'd call it "adaptive query optimization". I
>> think "adaptive" means the extension directly modifies the estimates
>> based on past executions. So I propose calling it maybe "statistics
>> advisor" or something like that.
> I am also agree with the idea to implement this feature as a new
> extension for statistics advisor.
>
>> BTW Why is "qual" in
>>
>>    static void
>>    AddMultiColumnStatisticsForQual(void* qual, ExplainState *es)
>>
>> declared as "void *"? Shouldn't that be "List *"?
> When I tested this extension using TPC-H queries, it raised segmentation
> fault in this function. I think the cause would be around this argument.
>
> Regards,
> Yugo Nagata
>
Attached please find new version of the patch with
AddMultiColumnStatisticsForQual parameter type fix and one more fix
related with handling synthetic attributes.
I can not reproduce the crash on TPC-H queries, so if the problem
persists, can you please send me stack trace and may be some other
information helping to understand the reason of SIGSEGV?

Thanks in advance,
Konstantin

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Bringing some sanity to RestoreGUCState()
Next
From: "Euler Taveira"
Date:
Subject: Re: cleanup temporary files after crash