Thread
Commits
-
Refactor the checks for parameterized partial paths
- 2309eff62b46 18.0 landed
-
Trivial revise for the check of parameterized partial paths
Richard Guo <guofenglinux@gmail.com> — 2023-06-29T03:23:09Z
While working on the invalid parameterized join path issue [1], I noticed that we can simplify the codes for checking parameterized partial paths in try_partial_hashjoin/mergejoin_path, with the help of macro PATH_REQ_OUTER. - if (inner_path->param_info != NULL) - { - Relids inner_paramrels = inner_path->param_info->ppi_req_outer; - - if (!bms_is_empty(inner_paramrels)) - return; - } + if (!bms_is_empty(PATH_REQ_OUTER(inner_path))) + return; Also there is a comment there that is not correct. * If the inner path is parameterized, the parameterization must be fully * satisfied by the proposed outer path. This is true for nestloop but not for hashjoin/mergejoin. Besides, I wonder if it'd be better that we verify that the outer input path for a partial join path should not have any parameterization dependency. Attached is a patch for all these changes. [1] https://www.postgresql.org/message-id/flat/CAJKUy5g2uZRrUDZJ8p-%3DgiwcSHVUn0c9nmdxPSY0jF0Ov8VoEA%40mail.gmail.com Thanks Richard -
Re: Trivial revise for the check of parameterized partial paths
vignesh C <vignesh21@gmail.com> — 2024-01-21T12:36:03Z
On Thu, 29 Jun 2023 at 08:53, Richard Guo <guofenglinux@gmail.com> wrote: > > While working on the invalid parameterized join path issue [1], I > noticed that we can simplify the codes for checking parameterized > partial paths in try_partial_hashjoin/mergejoin_path, with the help of > macro PATH_REQ_OUTER. > > - if (inner_path->param_info != NULL) > - { > - Relids inner_paramrels = inner_path->param_info->ppi_req_outer; > - > - if (!bms_is_empty(inner_paramrels)) > - return; > - } > + if (!bms_is_empty(PATH_REQ_OUTER(inner_path))) > + return; > > Also there is a comment there that is not correct. > > * If the inner path is parameterized, the parameterization must be fully > * satisfied by the proposed outer path. > > This is true for nestloop but not for hashjoin/mergejoin. > > Besides, I wonder if it'd be better that we verify that the outer input > path for a partial join path should not have any parameterization > dependency. > > Attached is a patch for all these changes. I'm seeing that there has been no activity in this thread for nearly 7 months, I'm planning to close this in the current commitfest unless someone is planning to take it forward. Regards, Vignesh -
Re: Trivial revise for the check of parameterized partial paths
Richard Guo <guofenglinux@gmail.com> — 2024-01-25T07:21:26Z
On Sun, Jan 21, 2024 at 8:36 PM vignesh C <vignesh21@gmail.com> wrote: > I'm seeing that there has been no activity in this thread for nearly 7 > months, I'm planning to close this in the current commitfest unless > someone is planning to take it forward. This patch fixes the wrong comments in try_partial_hashjoin_path, and also simplifies and enhances the checks for parameterized partial paths. I think it's worth to be moved forward. I've rebased the patch over current master, added a commit message describing what it does, and updated the comment a little bit in the v2 patch. Thanks Richard
-
Re: Trivial revise for the check of parameterized partial paths
Richard Guo <guofenglinux@gmail.com> — 2024-07-30T07:42:30Z
On Thu, Jan 25, 2024 at 3:21 PM Richard Guo <guofenglinux@gmail.com> wrote: > On Sun, Jan 21, 2024 at 8:36 PM vignesh C <vignesh21@gmail.com> wrote: >> I'm seeing that there has been no activity in this thread for nearly 7 >> months, I'm planning to close this in the current commitfest unless >> someone is planning to take it forward. > > > This patch fixes the wrong comments in try_partial_hashjoin_path, and > also simplifies and enhances the checks for parameterized partial paths. > I think it's worth to be moved forward. > > I've rebased the patch over current master, added a commit message > describing what it does, and updated the comment a little bit in the v2 > patch. I've pushed this patch. Thanks Richard