Re: Making the subquery alias optional in the FROM clause - Mailing list pgsql-hackers

From Zhihong Yu
Subject Re: Making the subquery alias optional in the FROM clause
Date
Msg-id CALNJ-vTtWek+n_K0ii2JxOJEMvo0ttDXrT5E798-uf9Dznv1vQ@mail.gmail.com
Whole thread Raw
In response to Re: Making the subquery alias optional in the FROM clause  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Responses Re: Making the subquery alias optional in the FROM clause
List pgsql-hackers


On Sat, Jul 9, 2022 at 3:28 AM Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
On Wed, 6 Jul 2022 at 15:09, Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
>
> I'll post an update in a little while, but first, I found a bug, which
> revealed a pre-existing bug in transformLockingClause(). I'll start a
> new thread for that, since it'd be good to get that resolved
> independently of this patch.
>

Attached is an update with the following changes:

* Docs updated as suggested.
* transformLockingClause() updated to skip subquery and values rtes
without aliases.
* eref->aliasname changed to "unnamed_subquery" for subqueries without aliases.

Regards,
Dean
Hi,
rtename is assigned at the beginning of the loop:

+               char       *rtename = rte->eref->aliasname;

 It seems the code would be more readable if you keep the assignment in else block below:

+                   else if (rte->rtekind == RTE_SUBQUERY ||
+                            rte->rtekind == RTE_VALUES)
                        continue;
-                   rtename = rte->join_using_alias->aliasname;
                }
-               else
-                   rtename = rte->eref->aliasname;

because rtename would be assigned in the `rte->rtekind == RTE_JOIN` case.

Cheers

pgsql-hackers by date:

Previous
From: Dean Rasheed
Date:
Subject: Re: Making the subquery alias optional in the FROM clause
Next
From: Dean Rasheed
Date:
Subject: Re: Use extended statistics to estimate (Var op Var) clauses