Re: make add_paths_to_append_rel aware of startup cost

Andy Fan <zhihuifan1213@163.com>

From: Andy Fan <zhihuifan1213@163.com>
To: Andy Fan <zhihuifan1213@163.com>
Cc: Thomas Munro <thomas.munro@gmail.com>, David Rowley <dgrowleyml@gmail.com>, Andy Fan <zhihui.fan1213@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Zhang Mingli <zmlpostgres@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2024-02-15T08:38:03Z
Lists: pgsql-hackers

Attachments

Andy Fan <zhihuifan1213@163.com> writes:

> Thomas Munro <thomas.munro@gmail.com> writes:
>
>> On Thu, Oct 5, 2023 at 9:07 PM David Rowley <dgrowleyml@gmail.com> wrote:
>>> Thanks. Pushed.
>>
>> FYI somehow this plan from a8a968a8212e flipped in this run:
>>
>> === dumping /home/bf/bf-build/mylodon/HEAD/pgsql.build/testrun/recovery/027_stream_regress/data/regression.diffs
>> ===
>> diff -U3 /home/bf/bf-build/mylodon/HEAD/pgsql/src/test/regress/expected/union.out
>> /home/bf/bf-build/mylodon/HEAD/pgsql.build/testrun/recovery/027_stream_regress/data/results/union.out
>> --- /home/bf/bf-build/mylodon/HEAD/pgsql/src/test/regress/expected/union.out
>> 2024-01-15 00:31:13.947555940 +0000
>> +++ /home/bf/bf-build/mylodon/HEAD/pgsql.build/testrun/recovery/027_stream_regress/data/results/union.out
>> 2024-02-14 00:06:17.075584839 +0000
>> @@ -1447,9 +1447,9 @@
>>     ->  Append
>>           ->  Nested Loop
>>                 Join Filter: (t1.tenthous = t2.tenthous)
>> -               ->  Seq Scan on tenk1 t1
>> +               ->  Seq Scan on tenk2 t2
>>                 ->  Materialize
>> -                     ->  Seq Scan on tenk2 t2
>> +                     ->  Seq Scan on tenk1 t1
>>           ->  Result
>>  (8 rows)
>>
>> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=mylodon&dt=2024-02-14%2000%3A01%3A03
>
> Thanks for this information! I will take a look at this.

I found the both plans have the same cost, I can't get the accurate
cause of this after some hours research, but it is pretty similar with
7516056c584e3, so I uses a similar strategy to stable it. is it
acceptable? 

-- 
Best Regards
Andy Fan

Commits

  1. Attempt to stabilize flapping regression test

  2. Consider cheap startup paths in add_paths_to_append_rel