When I am working on "Pushing limit into subqueries of a union" [1], I found we already have a great infrastructure to support this. For a query like
subquery-1 UNION ALL subquery-2 LIMIT 3; We have considered the root->tuple_fraction when planning the subqueries without an extra Limit node as an overhead. But the reason it doesn't work in my real case is flatten_simple_union_all flat the union all subqueries into append relation and we didn't handle the root->tuple_fraction during add_paths_to_append_rel. Given the below query for example: explain analyze (select * from tenk1 order by hundred) union all (select * from tenk2 order by hundred) limit 3; Without the patch: Execution Time: 7.856 ms with the patch: Execution Time: 0.224 ms Any suggestion is welcome. [1] https://www.postgresql.org/message-id/11228.1118365833%40sss.pgh.pa.us -- Best Regards Andy Fan
v1-0001-Considering-root-tuple_fraction-during-create_app.patch
Description: Binary data