mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Add code to show join rule (for outer and IN joins) in join type name.
This commit is contained in:
parent
c5ba16a83c
commit
ec8f0e82ef
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1994-5, Regents of the University of California
|
* Portions Copyright (c) 1994-5, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.102 2003/02/09 06:56:26 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.103 2003/02/10 17:06:23 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -308,13 +308,73 @@ explain_outNode(StringInfo str,
|
|||||||
pname = "Append";
|
pname = "Append";
|
||||||
break;
|
break;
|
||||||
case T_NestLoop:
|
case T_NestLoop:
|
||||||
pname = "Nested Loop";
|
switch (((NestLoop *) plan)->join.jointype)
|
||||||
|
{
|
||||||
|
case JOIN_INNER:
|
||||||
|
pname = "Nested Loop";
|
||||||
|
break;
|
||||||
|
case JOIN_LEFT:
|
||||||
|
pname = "Nested Loop Left Join";
|
||||||
|
break;
|
||||||
|
case JOIN_FULL:
|
||||||
|
pname = "Nested Loop Full Join";
|
||||||
|
break;
|
||||||
|
case JOIN_RIGHT:
|
||||||
|
pname = "Nested Loop Right Join";
|
||||||
|
break;
|
||||||
|
case JOIN_IN:
|
||||||
|
pname = "Nested Loop IN Join";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
pname = "Nested Loop ??? Join";
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_MergeJoin:
|
case T_MergeJoin:
|
||||||
pname = "Merge Join";
|
switch (((MergeJoin *) plan)->join.jointype)
|
||||||
|
{
|
||||||
|
case JOIN_INNER:
|
||||||
|
pname = "Merge Join";
|
||||||
|
break;
|
||||||
|
case JOIN_LEFT:
|
||||||
|
pname = "Merge Left Join";
|
||||||
|
break;
|
||||||
|
case JOIN_FULL:
|
||||||
|
pname = "Merge Full Join";
|
||||||
|
break;
|
||||||
|
case JOIN_RIGHT:
|
||||||
|
pname = "Merge Right Join";
|
||||||
|
break;
|
||||||
|
case JOIN_IN:
|
||||||
|
pname = "Merge IN Join";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
pname = "Merge ??? Join";
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_HashJoin:
|
case T_HashJoin:
|
||||||
pname = "Hash Join";
|
switch (((HashJoin *) plan)->join.jointype)
|
||||||
|
{
|
||||||
|
case JOIN_INNER:
|
||||||
|
pname = "Hash Join";
|
||||||
|
break;
|
||||||
|
case JOIN_LEFT:
|
||||||
|
pname = "Hash Left Join";
|
||||||
|
break;
|
||||||
|
case JOIN_FULL:
|
||||||
|
pname = "Hash Full Join";
|
||||||
|
break;
|
||||||
|
case JOIN_RIGHT:
|
||||||
|
pname = "Hash Right Join";
|
||||||
|
break;
|
||||||
|
case JOIN_IN:
|
||||||
|
pname = "Hash IN Join";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
pname = "Hash ??? Join";
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_SeqScan:
|
case T_SeqScan:
|
||||||
pname = "Seq Scan";
|
pname = "Seq Scan";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user