Labeling join rule in EXPLAIN output

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: Labeling join rule in EXPLAIN output
Date: 2003-02-10 17:21:17
Message-ID: 15125.1044897677@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I've just added some code to explain.c to change the label of join nodes
when they are using special join rules (for outer joins or IN joins).
This wasn't all that interesting up through 7.3, because knowing the
query you could be quite sure which join rule was in effect at each
step. But now that the planner knows some things about different ways
to implement IN and the possibility of reducing outer joins to plain
joins, I'm finding that it's important to be able to see the join rule
in EXPLAIN's output.

The alternatives I put in look like so:

"Nested Loop"
"Nested Loop Left Join"
"Nested Loop Full Join"
"Nested Loop Right Join"
"Nested Loop IN Join"
"Merge Join"
"Merge Left Join"
"Merge Full Join"
"Merge Right Join"
"Merge IN Join"
"Hash Join"
"Hash Left Join"
"Hash Full Join"
"Hash Right Join"
"Hash IN Join"

Although "Merge Left Join" seems to read well, I'm less happy with
"Nested Loop Left Join". I'm tempted to relabel the nestloop cases
as

"Nestloop Join"
"Nestloop Left Join"
"Nestloop Full Join"
"Nestloop Right Join"
"Nestloop IN Join"

Is anyone particularly wedded to "Nested Loop"? Or perhaps somebody
has some other, better idea?

regards, tom lane

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2003-02-10 18:57:17 Re: Status report: regex replacement
Previous Message Frank Guan 2003-02-10 06:25:12 descriptors in buffer manager?