Why is 'use_alias' hardcoded to true in deparseFromExprForRel() for some cases - Mailing list pgsql-hackers

From Rajan Pandey
Subject Why is 'use_alias' hardcoded to true in deparseFromExprForRel() for some cases
Date
Msg-id CAPr50M=FyGU2ayWFi7103O94irT_BQYEW3=Z+6dzFjnFpzgC+Q@mail.gmail.com
Whole thread Raw
Responses Re: Why is 'use_alias' hardcoded to true in deparseFromExprForRel() for some cases
List pgsql-hackers
Hi everyone,
In the postgrs_fdw deparser code, deparseFromExprForRel() appends an alias to the remote query based on the 'use_alias' boolean flag.

For a simple query, 'use_alias' is determined by `bms_membership(scanrel->relids) == BMS_MULTIPLE` condition. Example: https://github.com/postgres/postgres/blob/master/contrib/postgres_fdw/deparse.c#L1385C2-L1388

But for JOINs, 'use_alias' is always hardcoded to true. Examples:

This seems like an extra-protection in case of joins. But it could happen that the join is across 2 different foreign postgres-servers (means each foreign server will do SCAN only, and the JOIN will happen at the upper layer). In that case, using aliases in the remote queries seem redundant to me.
Please correct me if I am missing something. Can we note pass `bms_membership(foreignrel->relids) == BMS_MULTIPLE` instead?


--
Regards
Rajan Pandey
Software Developer, AWS

pgsql-hackers by date:

Previous
From: Yasir
Date:
Subject: Re: errors building on windows using meson
Next
From: Alexander Lakhin
Date:
Subject: Re: [EXTERNAL] Re: Add non-blocking version of PQcancel