Re: transformLockingClause() bug

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-07-06T14:30:38Z
Lists: pgsql-hackers
Dean Rasheed <dean.a.rasheed@gmail.com> writes:
> The problem is that the parser has generated a join rte with
> eref->aliasname = "unnamed_join", and then transformLockingClause()
> finds that before finding the relation rte for t3 whose user-supplied
> alias is also "unnamed_join".

> I think the answer is that transformLockingClause() should ignore join
> rtes that don't have a user-supplied alias, since they are not visible
> as relation names in the query (and then [1] will want to do the same
> for subquery and values rtes without aliases).

Agreed.

> Except, if the rte has a join_using_alias (and no regular alias), I
> think transformLockingClause() should actually be matching on that and
> then throwing the above error. So for the following:

Yeah, that's clearly an oversight in the join_using_alias patch.

			regards, tom lane



Commits

  1. Fix alias matching in transformLockingClause().