digraph {
graph [rankdir = "LR", label = "Plan Tree: SELECT T1.C1, T1.C2 FROM T1 JOIN T2 ON (T1.C1 = T2.C1);"]
node [shape=record,style=filled,fillcolor=gray95]
edge [arrowtail=empty]
35[label = "
Alias (35)|aliasname: t1| colnames: "]
37[label = " String (37)|c1"]
36[label = " List (36)|<1> [0]|<2> [1]"]
38[label = " String (38)|c2"]
40[label = " Alias (40)|aliasname: t2| colnames: "]
42[label = " String (42)|c1"]
41[label = " List (41)|<1> [0]|<2> [1]"]
43[label = " String (43)|c2"]
47[label = " String (47)|c1"]
48[label = " String (48)|c2"]
49[label = " String (49)|c1"]
50[label = " String (50)|c2"]
45[label = " Alias (45)|aliasname: unnamed_join| colnames: "]
46[label = " List (46)|<1> [0]|<2> [1]|<3> [2]|<4> [3]"]
14[label = " SeqScan (14)|startup_cost: 0.00|total_cost: 145.01|plan_rows: 10001|plan_width: 8| targetlist: |extParam: (b)|allParam: (b)|scanrelid: 1"]
24[label = " SeqScan (24)|startup_cost: 0.00|total_cost: 145.01|plan_rows: 10001|plan_width: 4| targetlist: |extParam: (b)|allParam: (b)|scanrelid: 2"]
8[label = " Sort (8)|startup_cost: 809.47|total_cost: 834.47|plan_rows: 10001|plan_width: 8| targetlist: | lefttree: |extParam: (b)|allParam: (b)|numCols: 1|sortColIdx: 1|sortOperators: 97|collations: 0|nullsFirst: false"]
20[label = " Sort (20)|startup_cost: 809.47|total_cost: 834.47|plan_rows: 10001|plan_width: 4| targetlist: | lefttree: |extParam: (b)|allParam: (b)|numCols: 1|sortColIdx: 1|sortOperators: 97|collations: 0|nullsFirst: false"]
2[label = " MergeJoin (2)|startup_cost: 1618.94|total_cost: 1818.96|plan_rows: 10001|plan_width: 8| targetlist: | lefttree: | righttree: |extParam: (b)|allParam: (b)|jointype: JOIN_INNER| mergeclauses: |mergeFamilies: 1976|mergeCollations: 0|mergeStrategies: 1|mergeNullsFirst: false"]
34[label = " RangeTblEntry(RTE) (34)|rtekind: RTE_RELATION|relid: 16791|relkind: 114| eref: |lateral: false|inh: false|inFromCl: true|requiredPerms: 2|selectedCols: (b 9 10)|insertedCols: (b)|updatedCols: (b)"]
33[label = " List (33)|<1> [0]|<2> [1]|<3> [2]"]
51[label = " OidList (51)|16791 16794 "]
39[label = " RangeTblEntry(RTE) (39)|rtekind: RTE_RELATION|relid: 16794|relkind: 114| eref: |lateral: false|inh: false|inFromCl: true|requiredPerms: 2|selectedCols: (b 9)|insertedCols: (b)|updatedCols: (b)"]
44[label = " RangeTblEntry(RTE) (44)|rtekind: RTE_JOIN|jointype: JOIN_INNER| eref: |lateral: false|inh: false|inFromCl: true|requiredPerms: 0|selectedCols: (b)|insertedCols: (b)|updatedCols: (b)"]
1[label = " PlannedStmt (1)|commandType: CMD_SELECT|queryId: 0|hasReturning: false|hasModifyingCTE: false|canSetTag: true|transientPlan: false| planTree: | rtable: |rewindPlanIDs: (b)| relationOids: |nParamExec: 0|hasRowSecurity: false"]
35:colnames -> 36:head [headlabel = "35", taillabel = "36"]
36:1 -> 37:head [headlabel = "36", taillabel = "37"]
36:2 -> 38:head [headlabel = "36", taillabel = "38"]
40:colnames -> 41:head [headlabel = "40", taillabel = "41"]
41:1 -> 42:head [headlabel = "41", taillabel = "42"]
41:2 -> 43:head [headlabel = "41", taillabel = "43"]
45:colnames -> 46:head [headlabel = "45", taillabel = "46"]
46:1 -> 47:head [headlabel = "46", taillabel = "47"]
46:2 -> 48:head [headlabel = "46", taillabel = "48"]
46:3 -> 49:head [headlabel = "46", taillabel = "49"]
46:4 -> 50:head [headlabel = "46", taillabel = "50"]
14:targetlist -> 15:head [headlabel = "14", taillabel = "15"]
24:targetlist -> 25:head [headlabel = "24", taillabel = "25"]
8:lefttree -> 14:head [headlabel = "8", taillabel = "14"]
8:targetlist -> 9:head [headlabel = "8", taillabel = "9"]
20:lefttree -> 24:head [headlabel = "20", taillabel = "24"]
20:targetlist -> 21:head [headlabel = "20", taillabel = "21"]
2:lefttree -> 8:head [headlabel = "2", taillabel = "8"]
2:righttree -> 20:head [headlabel = "2", taillabel = "20"]
2:mergeclauses -> 28:head [headlabel = "2", taillabel = "28"]
2:targetlist -> 3:head [headlabel = "2", taillabel = "3"]
34:eref -> 35:head [headlabel = "34", taillabel = "35"]
33:1 -> 34:head [headlabel = "33", taillabel = "34"]
33:2 -> 39:head [headlabel = "33", taillabel = "39"]
33:3 -> 44:head [headlabel = "33", taillabel = "44"]
39:eref -> 40:head [headlabel = "39", taillabel = "40"]
44:eref -> 45:head [headlabel = "44", taillabel = "45"]
1:planTree -> 2:head [headlabel = "1", taillabel = "2"]
1:rtable -> 33:head [headlabel = "1", taillabel = "33"]
1:relationOids -> 51:head [headlabel = "1", taillabel = "51"]
subgraph cluster_0 {
label = "Target List";
17[label = " Var (17)|varno: 1|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 1|location: 7"]
16[label = " TargetEntry (16)| expr: |resno: 1|resjunk: false"]
15[label = " List (15)|<1> [0]|<2> [1]"]
19[label = " Var (19)|varno: 1|varattno: 2|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 2|location: 14"]
18[label = " TargetEntry (18)| expr: |resno: 2|resjunk: false"]
16:expr -> 17:head [headlabel = "16", taillabel = "17"]
15:1 -> 16:head [headlabel = "15", taillabel = "16"]
15:2 -> 18:head [headlabel = "15", taillabel = "18"]
18:expr -> 19:head [headlabel = "18", taillabel = "19"]
}
subgraph cluster_1 {
label = "Target List";
27[label = " Var (27)|varno: 2|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 2|varoattno: 1|location: 48"]
26[label = " TargetEntry (26)| expr: |resno: 1|resjunk: false"]
25[label = " List (25)|<1> [0]"]
26:expr -> 27:head [headlabel = "26", taillabel = "27"]
25:1 -> 26:head [headlabel = "25", taillabel = "26"]
}
subgraph cluster_2 {
label = "Target List";
21[label = " List (21)|<1> [0]"]
23[label = " Var (23)|varno: OUTER_VAR|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 2|varoattno: 1"]
22[label = " TargetEntry (22)| expr: |resno: 1|resjunk: false"]
21:1 -> 22:head [headlabel = "21", taillabel = "22"]
22:expr -> 23:head [headlabel = "22", taillabel = "23"]
}
subgraph cluster_3 {
label = "Target List";
9[label = " List (9)|<1> [0]|<2> [1]"]
11[label = " Var (11)|varno: OUTER_VAR|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 1"]
10[label = " TargetEntry (10)| expr: |resno: 1|resjunk: false"]
13[label = " Var (13)|varno: OUTER_VAR|varattno: 2|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 2"]
12[label = " TargetEntry (12)| expr: |resno: 2|resjunk: false"]
9:1 -> 10:head [headlabel = "9", taillabel = "10"]
9:2 -> 12:head [headlabel = "9", taillabel = "12"]
10:expr -> 11:head [headlabel = "10", taillabel = "11"]
12:expr -> 13:head [headlabel = "12", taillabel = "13"]
}
subgraph cluster_4 {
label = "Express Tree";
29[label = " OpExpr (29)|opno: 96|opfuncid: 65|opresulttype: 16|opretset: false| args: "]
31[label = " Var (31)|varno: OUTER_VAR|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 1|location: 40"]
30[label = " List (30)|<1> [0]|<2> [1]"]
32[label = " Var (32)|varno: INNER_VAR|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 2|varoattno: 1|location: 48"]
28[label = " List (28)|<1> [0]"]
29:args -> 30:head [headlabel = "29", taillabel = "30"]
30:1 -> 31:head [headlabel = "30", taillabel = "31"]
30:2 -> 32:head [headlabel = "30", taillabel = "32"]
28:1 -> 29:head [headlabel = "28", taillabel = "29"]
}
subgraph cluster_5 {
label = "Target List";
4[label = " TargetEntry (4)| expr: |resno: 1|resname: c1|resorigtbl: 16791|resorigcol: 1|resjunk: false"]
5[label = " Var (5)|varno: OUTER_VAR|varattno: 1|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 1|location: 7"]
3[label = " List (3)|<1> [0]|<2> [1]"]
6[label = " TargetEntry (6)| expr: |resno: 2|resname: c2|resorigtbl: 16791|resorigcol: 2|resjunk: false"]
7[label = " Var (7)|varno: OUTER_VAR|varattno: 2|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 2|location: 14"]
4:expr -> 5:head [headlabel = "4", taillabel = "5"]
3:1 -> 4:head [headlabel = "3", taillabel = "4"]
3:2 -> 6:head [headlabel = "3", taillabel = "6"]
6:expr -> 7:head [headlabel = "6", taillabel = "7"]
}
}