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

Mon, 10 Feb 2003 12:21:17 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Labeling join rule in EXPLAIN output