Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit ec8f0e8

Browse files
committed
Add code to show join rule (for outer and IN joins) in join type name.
1 parent c5ba16a commit ec8f0e8

File tree

1 file changed

+64
-4
lines changed

1 file changed

+64
-4
lines changed

src/backend/commands/explain.c

+64-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1994-5, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.102 2003/02/09 06:56:26 tgl Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.103 2003/02/10 17:06:23 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -308,13 +308,73 @@ explain_outNode(StringInfo str,
308308
pname = "Append";
309309
break;
310310
case T_NestLoop:
311-
pname = "Nested Loop";
311+
switch (((NestLoop *) plan)->join.jointype)
312+
{
313+
case JOIN_INNER:
314+
pname = "Nested Loop";
315+
break;
316+
case JOIN_LEFT:
317+
pname = "Nested Loop Left Join";
318+
break;
319+
case JOIN_FULL:
320+
pname = "Nested Loop Full Join";
321+
break;
322+
case JOIN_RIGHT:
323+
pname = "Nested Loop Right Join";
324+
break;
325+
case JOIN_IN:
326+
pname = "Nested Loop IN Join";
327+
break;
328+
default:
329+
pname = "Nested Loop ??? Join";
330+
break;
331+
}
312332
break;
313333
case T_MergeJoin:
314-
pname = "Merge Join";
334+
switch (((MergeJoin *) plan)->join.jointype)
335+
{
336+
case JOIN_INNER:
337+
pname = "Merge Join";
338+
break;
339+
case JOIN_LEFT:
340+
pname = "Merge Left Join";
341+
break;
342+
case JOIN_FULL:
343+
pname = "Merge Full Join";
344+
break;
345+
case JOIN_RIGHT:
346+
pname = "Merge Right Join";
347+
break;
348+
case JOIN_IN:
349+
pname = "Merge IN Join";
350+
break;
351+
default:
352+
pname = "Merge ??? Join";
353+
break;
354+
}
315355
break;
316356
case T_HashJoin:
317-
pname = "Hash Join";
357+
switch (((HashJoin *) plan)->join.jointype)
358+
{
359+
case JOIN_INNER:
360+
pname = "Hash Join";
361+
break;
362+
case JOIN_LEFT:
363+
pname = "Hash Left Join";
364+
break;
365+
case JOIN_FULL:
366+
pname = "Hash Full Join";
367+
break;
368+
case JOIN_RIGHT:
369+
pname = "Hash Right Join";
370+
break;
371+
case JOIN_IN:
372+
pname = "Hash IN Join";
373+
break;
374+
default:
375+
pname = "Hash ??? Join";
376+
break;
377+
}
318378
break;
319379
case T_SeqScan:
320380
pname = "Seq Scan";

0 commit comments

Comments
 (0)