Thanks to visit codestin.com
Credit goes to github.com

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

Lines changed: 64 additions & 4 deletions
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)