On Fri, May 24, 2024 at 11:14 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > jian he <jian.universality@gmail.com> writes: > > imho, the above comment is not very helpful. > > we should say more about what kind of information relid says about a base rel? > > "Relid" is defined at the very top of the file: > > /* > * Relids > * Set of relation identifiers (indexes into the rangetable). > */ > typedef Bitmapset *Relids; > > Repeating that everyplace the term "relid" appears would not be > tremendously helpful. >
`Index relid;` is a relation identifier, a base rel's rangetable index.
Does the above description make sense?
BTW, I found several occurrences of "base+OJ", but I cannot find the explanation of "OJ" or the "OJ" Acronyms.
OJ is an outer join, AFAIU. OJ's have their own relids. If you are wondering why not all joins - I think inner joins need not be tracked as separated relations in parse tree, but OJ's need to be.