Thread

Commits

  1. Refactor the checks for parameterized partial paths

  1. 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
    
  2. 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
    
    
    
    
  3. 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
    
  4. 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