Hello. This is the final report in this CF period. At Fri, 17 Mar 2017 17:35:05 +0900 (Tokyo Standard Time), Kyotaro HORIGUCHI <horiguchi.kyot...@lab.ntt.co.jp> wrote in <20170317.173505.152063931.horiguchi.kyot...@lab.ntt.co.jp> > Async-capable plan is generated in planner. An Append contains at > least one async-capable child becomes async-aware Append. So the > async feature should be effective also for the UNION ALL case. > > The following will work faster than unpatched version.I > > SELECT sum(a) FROM (SELECT a FROM ft10 UNION ALL SELECT a FROM ft20 UNION ALL > SELECT a FROM ft30 UNION ALL SELECT a FROM ft40) as ft; > > I'll measure the performance for the case next week.
I found that the following query works as the same as partitioned table. SELECT sum(a) FROM (SELECT a FROM ft10 UNION ALL SELECT a FROM ft20 UNION ALL SELECT a FROM ft30 UNION ALL SELECT a FROM ft40 UNION ALL *SELECT a FROM ONLY pf0*) as ft; So, the difference comes from the additional async-uncapable child (faster if contains any). In both cases, Append node runs children asynchronously but slightly differently when all async-capable children are busy. I'll continue working on this from this point aiming to the next commit fest. Thank you for valuable feedback. regards, -- Kyotaro Horiguchi NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers