Remove self join on a unique column

Edit
ID 1712
Title Remove self join on a unique column
Topic Performance
Created 2018-07-02 16:28:46
Last modified 2023-10-25 10:02:10 (1 year, 1 month ago)
Latest email 2024-12-11 09:02:32 (20 hours, 19 minutes ago)
Status
2023-11: Committed
2023-09: Moved to next CF
2023-07: Moved to next CF
2023-03: Moved to next CF
2023-01: Moved to next CF
2022-11: Moved to next CF
2022-09: Moved to next CF
2022-07: Moved to next CF
2022-03: Moved to next CF
2022-01: Moved to next CF
2021-11: Moved to next CF
2021-09: Moved to next CF
2021-07: Moved to next CF
2021-03: Moved to next CF
2021-01: Moved to next CF
2020-11: Moved to next CF
2020-09: Moved to next CF
2020-07: Moved to next CF
2020-03: Moved to next CF
2020-01: Moved to next CF
2019-11: Moved to next CF
2019-09: Moved to next CF
2019-07: Moved to next CF
2019-03: Moved to next CF
2019-01: Moved to next CF
2018-11: Moved to next CF
2018-09: Moved to next CF
Target version
Authors Konstantin Knizhnik (knizhnik), Alexander Kuzmenkov (akuzmenkov), Andrei Lepikhov (lepikhov)
Reviewers Alena Rybakina (a.rybakina)Become reviewer
Committer Alexander Korotkov (smagen)
Links CFbot results (CirrusCI) CFbot GitHub
Checkout latest CFbot patchset Go to your local checkout of the PostgreSQL repository and run:
git remote add commitfest https://github.com/postgresql-cfbot/postgresql.git
git fetch commitfest cf/1712
git checkout commitfest/cf/1712
Emails
Removing unneeded self joins
First at 2018-05-16 15:43:33 by Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru>
Latest at 2024-12-11 09:02:32 by Andrei Lepikhov <lepihov at gmail.com>
Latest attachment (v10-0001-Remove-useless-self-joins.patch) at 2024-10-28 21:18:27 from Alexander Korotkov <aekorotkov at gmail.com>
    Attachment (v10-0001-Remove-useless-self-joins.patch) at 2024-10-28 21:18:27 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (v9-0001-Remove-useless-self-joins.patch) at 2024-10-28 09:32:50 from Andrei Lepikhov <lepihov at gmail.com> (Patch: Yes)
    Attachment (v8-0001-Remove-useless-self-joins.patch) at 2024-10-08 03:54:02 from Andrei Lepikhov <lepihov at gmail.com> (Patch: Yes)
    Attachment (v7-0001-Remove-useless-self-joins.patch) at 2024-07-20 11:38:48 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (unknown_filename) at 2024-07-16 14:26:40 from Вардан Погосян <vardan.pogosyn at yandex.ru> (Patch: No)
    Attachment (v6-0001-Remove-useless-self-joins.patch) at 2024-07-15 05:31:33 from jian he <jian.universality at gmail.com> (Patch: Yes)
    Attachment (v4-0002-Apply-SJE-to-DML-queries-2.patch) at 2024-07-12 03:05:15 from Andrei Lepikhov <lepihov at gmail.com> (Patch: Yes)
    Attachment (v5-0002-refactor-comments-in-remove_self_joins_one_group.patch) at 2024-07-11 07:43:00 from jian he <jian.universality at gmail.com> (Patch: Yes)
    Attachment (v4-0001-Remove-useless-self-joins.patch) at 2024-07-09 06:06:10 from Andrei Lepikhov <lepihov at gmail.com> (Patch: Yes)
    Attachment (v3-0002-make-SJE-to-apply-DML-MERGE-UPDATE-INSERT-DELETE.patch) at 2024-07-02 00:25:00 from jian he <jian.universality at gmail.com> (Patch: Yes)
    Attachment (v2-0002-make-SJE-to-apply-DML.patch) at 2024-06-17 00:00:00 from jian he <jian.universality at gmail.com> (Patch: Yes)
    Attachment (0001-Remove-useless-self-joins-v49.patch) at 2024-06-13 03:45:38 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v2-0002-Minor-refactoring-for-self-join-elimination-code.patch) at 2024-05-02 23:04:40 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (v1-0001-Fix-bogus-lateral-dependency-after-self-join-removal.patch) at 2024-05-02 13:14:20 from Richard Guo <guofenglinux at gmail.com> (Patch: Yes)
    Attachment (0001-Forbid-self-join-elimination-on-table-sampling-scans.patch) at 2024-05-02 09:44:54 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (sje_tablesample.patch) at 2024-05-01 11:59:58 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (sje_skip_cross_lateral_vars.patch) at 2024-04-30 10:20:54 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (v1-0001-Replace-lateral-references-to-removed-rels-in-subqueries.patch) at 2024-02-21 07:26:57 from Richard Guo <guofenglinux at gmail.com> (Patch: Yes)
    Attachment (0001-Replace-relids-in-lateral-subquery-target-list-du-v2.patch) at 2024-02-19 05:24:09 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Replace-relids-in-lateral-subquery-target-list-du-v1.patch) at 2024-02-18 16:18:21 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (quickfix.diff) at 2023-12-29 09:58:11 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-useless-self-joins-v48.patch) at 2023-10-23 11:29:15 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (0001-Remove-useless-self-joins-v47.patch) at 2023-10-23 09:47:53 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (minor_changes.diff) at 2023-10-23 03:43:13 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-useless-self-joins-v46.patch) at 2023-10-21 22:01:49 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (0001-Remove-useless-self-joins-v45.patch) at 2023-10-18 18:50:37 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (iterative_elimination.diff) at 2023-10-16 08:28:13 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (minor-changes-v44.diff) at 2023-10-13 02:55:13 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-useless-self-joins-v44.patch) at 2023-10-12 11:32:27 from Alexander Korotkov <aekorotkov at gmail.com> (Patch: Yes)
    Attachment (self-join-removal.diff) at 2023-10-10 19:29:58 from Alena Rybakina <lena.ribackina at yandex.ru> (Patch: Yes)
    Attachment (check_attnotnull.diff) at 2023-10-05 09:17:08 from Andrei Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v43-0001-Remove-self-joins.patch) at 2023-09-12 11:49:05 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v41-v42-delta.txt) at 2023-07-05 14:28:59 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v41-0001-Remove-self-joins.patch) at 2023-06-30 10:50:19 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v40-0001-Remove-self-joins.patch) at 2023-05-25 09:40:35 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v39-0001-Remove-self-joins.patch) at 2022-12-16 06:45:30 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v38-0001-Remove-self-joins.patch) at 2022-10-05 12:25:18 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v37-0001-Remove-self-joins.patch) at 2022-08-29 05:05:29 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v36-0001-Remove-self-joins.patch) at 2022-08-26 12:22:08 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v35-0001-Remove-self-joins.patch) at 2022-06-30 14:11:51 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v34-0001-Remove-self-joins.patch) at 2022-05-19 10:48:18 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v33-0001-Remove-self-joins.patch) at 2022-05-13 05:07:47 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v32-0001-Remove-self-joins.patch) at 2022-04-04 08:27:45 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v31-0001-Remove-self-joins.patch) at 2022-03-24 05:21:54 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v30-0001-Remove-self-joins.patch) at 2022-03-04 10:47:47 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (select_nonoptimize1.sql) at 2022-03-01 00:09:49 from Jaime Casanova <jcasanov at systemguards.com.ec> (Patch: No)
    Attachment (v29-0001-Remove-self-joins.patch) at 2021-07-27 05:34:30 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v28-0001-Remove-self-joins.patch) at 2021-07-15 14:49:11 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (equivclass.patch) at 2021-05-27 06:51:23 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v26-0001-Remove-self-joins.patch) at 2021-05-07 07:23:00 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v25_1-0001-Remove-self-joins.patch) at 2021-01-11 04:07:15 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v25-0001-Remove-self-joins.patch) at 2020-11-30 05:50:57 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (v24-0001-Remove-self-joins.patch) at 2020-10-31 09:26:29 from "Andrey V. Lepikhov" <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-Self-Joins-v.23.patch) at 2020-04-03 04:43:41 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: No)
    Attachment (0001-Remove-self-joins-v.22.patch) at 2020-01-28 04:10:07 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v21.patch) at 2019-11-05 18:20:28 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v20.patch) at 2019-09-30 08:29:44 from Konstantin Knizhnik <k.knizhnik at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-20.patch) at 2019-09-27 16:38:00 from Konstantin Knizhnik <k.knizhnik at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v19.patch) at 2019-08-07 16:23:34 from Konstantin Knizhnik <k.knizhnik at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v18.patch) at 2019-08-05 11:24:52 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-Self-Joins-v17.patch) at 2019-06-27 06:42:05 from Andrey Lepikhov <a.lepikhov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v16.patch) at 2019-05-13 16:21:24 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (v15-0001-Remove-self-joins.patch) at 2019-03-25 15:13:24 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (v14-remove-unique-self-joins.patch) at 2019-03-25 04:07:33 from David Rowley <david.rowley at 2ndquadrant.com> (Patch: Yes)
    Attachment (v13-0001-Remove-unique-self-joins.patch) at 2019-03-22 14:39:40 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (v12-0001-Remove-unique-self-joins.patch) at 2019-03-20 12:20:35 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (v11-0001-Remove-self-joins-on-a-unique-column.patch) at 2019-02-28 14:09:34 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v10.patch) at 2019-02-22 00:25:12 from Tom Lane <tgl at sss.pgh.pa.us> (Patch: Yes)
    Attachment (0001-Remove-self-joins-v9.patch) at 2018-12-24 16:28:01 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (remove-self-join-v7.patch) at 2018-11-21 12:54:20 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (remove-self-join-v6.patch) at 2018-10-18 12:47:09 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (remove-self-joins-v5.patch) at 2018-10-08 14:52:21 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-unique-self-joins-v4.patch) at 2018-08-03 16:49:47 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (0001-Remove-unique-self-joins-v3.patch) at 2018-07-27 12:26:03 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (0002-Remove-unique-self-joins-v2.patch) at 2018-06-25 15:26:28 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
    Attachment (remove-self-join-v1.patch) at 2018-05-16 15:43:33 from Alexander Kuzmenkov <a.kuzmenkov at postgrespro.ru> (Patch: Yes)
History
When Who What
2023-10-25 10:02:10 Alexander Korotkov (smagen) Closed in commitfest 2023-11 with status: Committed
2023-10-25 10:02:10 Alexander Korotkov (smagen) Changed committer to smagen
2023-10-19 19:13:19 Alena Rybakina (a.rybakina) Added a.rybakina as reviewer
2023-10-02 17:36:00 Peter Eisentraut (petere) Closed in commitfest 2023-09 with status: Moved to next CF
2023-10-02 17:35:51 Peter Eisentraut (petere) Changed reviewers to
2023-08-02 07:39:15 Daniel Gustafsson (d_gustafsson) Closed in commitfest 2023-07 with status: Moved to next CF
2023-07-04 07:42:16 Daniel Gustafsson (d_gustafsson) New status: Needs review
2023-04-03 20:30:32 Greg Stark (stark) Closed in commitfest 2023-03 with status: Moved to next CF
2023-02-16 22:39:17 David Rowley (davidrowley) Removed davidrowley from reviewers
2023-01-31 16:42:24 vigneshwaran C (vignesh.postgres) Closed in commitfest 2023-01 with status: Moved to next CF
2022-12-08 14:08:27 Ian Barwick (barwick) Closed in commitfest 2022-11 with status: Moved to next CF
2022-12-07 18:29:03 Andres Freund (andresfreund) New status: Waiting on Author
2022-10-12 07:02:18 Michael Paquier (michael-kun) Closed in commitfest 2022-09 with status: Moved to next CF
2022-08-01 16:49:36 Jacob Champion (jchampion) Closed in commitfest 2022-07 with status: Moved to next CF
2022-06-30 15:31:51 Ronan Dunklau (rdunklau) Added rdunklau as reviewer
2022-04-08 14:05:41 Greg Stark (stark) Closed in commitfest 2022-03 with status: Moved to next CF
2022-04-04 09:03:17 Andrei Lepikhov (lepikhov) New status: Needs review
2022-04-01 15:28:01 Greg Stark (stark) New status: Waiting on Author
2022-03-24 05:23:07 Andrei Lepikhov (lepikhov) New status: Needs review
2022-03-22 00:58:49 Andres Freund (andresfreund) New status: Waiting on Author
2022-02-02 16:29:51 Julien Rouhaud (rjuju) Closed in commitfest 2022-01 with status: Moved to next CF
2021-12-02 11:12:04 Daniel Gustafsson (d_gustafsson) Closed in commitfest 2021-11 with status: Moved to next CF
2021-10-05 16:30:59 Jaime Casanova (jcasanov) Closed in commitfest 2021-09 with status: Moved to next CF
2021-10-05 16:30:47 Jaime Casanova (jcasanov) Added jcasanov as reviewer
2021-08-03 02:26:48 Masahiko Sawada (masahikosawada) Closed in commitfest 2021-07 with status: Moved to next CF
2021-07-15 14:50:33 Andrei Lepikhov (lepikhov) New status: Needs review
2021-07-15 12:05:27 vigneshwaran C (vignesh.postgres) New status: Waiting on Author
2021-04-08 15:41:25 David Steele (dsteele) Closed in commitfest 2021-03 with status: Moved to next CF
2021-03-12 09:05:06 Hywel Carver (hywel) Posted review with messageid <161553990603.28624.7702383984090736980.pgcf@coridan.postgresql.org>
2021-02-01 12:33:02 Masahiko Sawada (masahikosawada) Closed in commitfest 2021-01 with status: Moved to next CF
2021-01-11 04:07:53 Andrei Lepikhov (lepikhov) New status: Needs review
2020-12-01 14:09:54 Anastasia Lubennikova (lubennikovaav) New status: Waiting on Author
2020-12-01 14:09:46 Anastasia Lubennikova (lubennikovaav) Closed in commitfest 2020-11 with status: Moved to next CF
2020-12-01 14:09:42 Anastasia Lubennikova (lubennikovaav) New status: Needs review
2020-11-29 17:17:44 Heikki Linnakangas (heikki) New status: Waiting on Author
2020-11-27 10:40:13 Andrei Lepikhov (lepikhov) New status: Needs review
2020-09-30 06:56:09 Michael Paquier (michael-kun) New status: Waiting on Author
2020-09-30 06:56:01 Michael Paquier (michael-kun) Closed in commitfest 2020-09 with status: Moved to next CF
2020-09-30 06:55:59 Michael Paquier (michael-kun) New status: Needs review
2020-09-23 04:23:50 David Rowley (davidrowley) New status: Waiting on Author
2020-09-21 22:16:38 David Rowley (davidrowley) Added davidrowley as reviewer
2020-08-03 08:46:10 Daniel Gustafsson (d_gustafsson) Closed in commitfest 2020-07 with status: Moved to next CF
2020-08-02 21:13:15 David Rowley (davidrowley) Removed davidrowley from reviewers
2020-04-08 15:29:51 David Steele (dsteele) Closed in commitfest 2020-03 with status: Moved to next CF
2020-04-03 04:44:12 Andrei Lepikhov (lepikhov) New status: Needs review
2020-04-01 15:35:08 David Steele (dsteele) New status: Waiting on Author
2020-02-01 12:50:07 Tomas Vondra (fuzzycz) Closed in commitfest 2020-01 with status: Moved to next CF
2019-11-30 02:18:39 Michael Paquier (michael-kun) Closed in commitfest 2019-11 with status: Moved to next CF
2019-11-05 18:21:48 Andrei Lepikhov (lepikhov) Changed authors to Konstantin Knizhnik (knizhnik), Alexander Kuzmenkov (akuzmenkov), Andrey Lepikhov (lepikhov)
2019-09-30 18:55:30 Álvaro Herrera (alvherre) Closed in commitfest 2019-09 with status: Moved to next CF
2019-08-01 23:55:00 Thomas Munro (macdice) Closed in commitfest 2019-07 with status: Moved to next CF
2019-04-03 12:27:44 Alexander Kuzmenkov (akuzmenkov) Closed in commitfest 2019-03 with status: Moved to next CF
2019-04-03 12:27:33 Alexander Kuzmenkov (akuzmenkov) New status: Needs review
2019-03-20 22:55:18 David Rowley (davidrowley) Added davidrowley as reviewer
2019-03-17 11:09:20 David Rowley (davidrowley) New status: Waiting on Author
2019-02-01 12:40:43 Alexander Kuzmenkov (akuzmenkov) Closed in commitfest 2019-01 with status: Moved to next CF
2018-11-29 12:23:49 Alexander Kuzmenkov (akuzmenkov) Closed in commitfest 2018-11 with status: Moved to next CF
2018-10-02 01:18:02 Michael Paquier (michael-kun) Closed in commitfest 2018-09 with status: Moved to next CF
2018-07-02 16:29:07 Alexander Kuzmenkov (akuzmenkov) Changed authors to Alexander Kuzmenkov (akuzmenkov)
2018-07-02 16:28:47 Alexander Kuzmenkov (akuzmenkov) Attached mail thread 64486b0b-0404-e39e-322d-0801154901f3@postgrespro.ru
2018-07-02 16:28:46 Alexander Kuzmenkov (akuzmenkov) Created patch record
Edit