pgsql: Avoid creating duplicate ordered append paths

Started by Richard Guo9 months ago1 messagescomitters
Jump to latest
#1Richard Guo
rguo@postgresql.org

Avoid creating duplicate ordered append paths

In generate_orderedappend_paths(), the function does not handle the
case where the paths in total_subpaths and fractional_subpaths are
identical. This situation is not uncommon, and as a result, it may
generate two exactly identical ordered append paths.

Fix by checking whether total_subpaths and fractional_subpaths contain
the same paths, and skipping creation of the ordered append path for
the fractional case when they are identical.

Given the lack of field complaints about this, I'm a bit hesitant to
back-patch, but let's clean it up in HEAD.

Author: Richard Guo <guofenglinux@gmail.com>
Reviewed-by: Andrei Lepikhov <lepihov@gmail.com>
Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
Discussion: /messages/by-id/CAMbWs4-OYsgA75tGGiBARt87G0y_z_GBTSLrzudcJxAzndYkYw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0ea5eee37606386150aa8317184617e1d5d34565

Modified Files
--------------
src/backend/optimizer/path/allpaths.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)