Re: Defer selection of asynchronous subplans until the executor initialization stage - Mailing list pgsql-hackers

From Zhihong Yu
Subject Re: Defer selection of asynchronous subplans until the executor initialization stage
Date
Msg-id CALNJ-vTf+5pPgvz_t0cF0+KR=Ly36bGkAA4zBJsnSdrXDtE=oQ@mail.gmail.com
Whole thread Raw
In response to Defer selection of asynchronous subplans until the executor initialization stage  (Andrey Lepikhov <a.lepikhov@postgrespro.ru>)
Responses Re: Defer selection of asynchronous subplans until the executor initialization stage  (Andrey Lepikhov <a.lepikhov@postgrespro.ru>)
Re: Defer selection of asynchronous subplans until the executor initialization stage  (Andrey Lepikhov <a.lepikhov@postgrespro.ru>)
List pgsql-hackers


On Mon, May 10, 2021 at 8:45 PM Andrey Lepikhov <a.lepikhov@postgrespro.ru> wrote:
On 7/5/21 21:05, Etsuro Fujita wrote:
> I think it would be better to start a new thread for this, and add the
> patch to the next CF so that it doesn’t get lost.

Current implementation of async append choose asynchronous subplans at
the phase of an append plan creation. This is safe approach, but we
loose some optimizations, such of flattening trivial subqueries and
can't execute some simple queries asynchronously. For example:

EXPLAIN (ANALYZE, TIMING OFF, SUMMARY OFF, COSTS OFF)
(SELECT * FROM f1 WHERE a < 10) UNION ALL
(SELECT * FROM f2 WHERE a < 10);

But, as I could understand, we can choose these subplans later, at the
init append phase when all optimizations already passed.
In attachment - implementation of the proposed approach.

Initial script for the example see in the parent thread [1].


[1]
https://www.postgresql.org/message-id/a38bb206-8340-9528-5ef6-37de2d5cb1a3%40postgrespro.ru


--
regards,
Andrey Lepikhov
Postgres Professional
Hi,

+           /* Check to see if subplan can be executed asynchronously */
+           if (subplan->async_capable)
+           {
+               subplan->async_capable = false;

It seems the if statement is not needed: you can directly assign false to  subplan->async_capable.

Cheers

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: PG 14 release notes, first draft
Next
From: Amit Kapila
Date:
Subject: Re: PG 14 release notes, first draft