Thread

Commits

  1. Fix misleading comment in paraminfo_get_equal_hashops

  1. Fix a comment in paraminfo_get_equal_hashops

    Richard Guo <guofenglinux@gmail.com> — 2023-08-04T06:48:33Z

    As stated in [1], there is a typo in the comment in
    paraminfo_get_equal_hashops.
    
        foreach(lc, innerrel->lateral_vars)
        {
            Node       *expr = (Node *) lfirst(lc);
            TypeCacheEntry *typentry;
    
            /* Reject if there are any volatile functions in PHVs */
            if (contain_volatile_functions(expr))
            {
                list_free(*operators);
                list_free(*param_exprs);
                return false;
            }
    
    The expressions in RelOptInfo.lateral_vars are not necessarily from
    PHVs.  For instance
    
    explain (costs off)
    select * from t t1 join
        lateral (select * from t t2 where t1.a = t2.a offset 0) on true;
                QUERY PLAN
    ----------------------------------
     Nested Loop
       ->  Seq Scan on t t1
       ->  Memoize
             Cache Key: t1.a
             Cache Mode: binary
             ->  Seq Scan on t t2
                   Filter: (t1.a = a)
    (7 rows)
    
    The lateral Var 't1.a' comes from the lateral subquery.
    
    So attach a trivial patch to fix that.
    
    [1]
    https://www.postgresql.org/message-id/CAMbWs49dEHRPe8poM_K39r2uOsaOZcg+Y0B5a8tF7vW3uVR3mw@mail.gmail.com
    
    Thanks
    Richard
    
  2. Re: Fix a comment in paraminfo_get_equal_hashops

    David Rowley <dgrowleyml@gmail.com> — 2023-08-07T06:18:12Z

    On Fri, 4 Aug 2023 at 18:48, Richard Guo <guofenglinux@gmail.com> wrote:
    > As stated in [1], there is a typo in the comment in
    > paraminfo_get_equal_hashops.
    
    > [1] https://www.postgresql.org/message-id/CAMbWs49dEHRPe8poM_K39r2uOsaOZcg+Y0B5a8tF7vW3uVR3mw@mail.gmail.com
    
    Thanks. Pushed.
    
    David