digraph {
graph [rankdir = "LR", label = "Plan Tree: SELECT employee.ID, employee.name FROM employee WHERE employee.city = (SELECT city FROM cities WHERE population > 100);"]
node [shape=record,style=filled,fillcolor=gray95]
edge [arrowtail=empty]
20[label = "
Alias (20)|aliasname: employee| colnames: "]
22[label = " String (22)|id"]
21[label = " List (21)|<1> [0]|<2> [1]|<3> [2]|<4> [3]|<5> [4]|<6> [5]"]
23[label = " String (23)|name"]
24[label = " String (24)|salary"]
25[label = " String (25)|start_date"]
26[label = " String (26)|city"]
27[label = " String (27)|region"]
29[label = " Alias (29)|aliasname: cities| colnames: "]
30[label = " List (30)|<1> [0]|<2> [1]"]
31[label = " String (31)|city"]
32[label = " String (32)|population"]
34[label = " SeqScan (34)|startup_cost: 0.00|total_cost: 24.12|plan_rows: 377|plan_width: 38| targetlist: | qual: |extParam: (b)|allParam: (b)|scanrelid: 2"]
16[label = " SubPlan (16)|subLinkType: EXPR_SUBLINK|plan_id: 1|plan_name: InitPlan 1 (returns $0)|firstColType: 1043|firstColTypmod: 14|firstColCollation: 100|useHashTable: false|unknownEqFalse: false| setParam: |startup_cost: 0.00|per_call_cost: 24.12"]
17[label = " IntList (17)|0 "]
33[label = " List (33)|<1> [0]"]
15[label = " List (15)|<1> [0]"]
2[label = " SeqScan (2)|startup_cost: 24.12|total_cost: 42.12|plan_rows: 3|plan_width: 42| targetlist: | qual: | initPlan: |extParam: (b)|allParam: (b 0)|scanrelid: 1"]
19[label = " RangeTblEntry(RTE) (19)| eref: |rtekind: RTE_RELATION|relid: 41018|relkind: 114|inh: false|inFromCl: true|requiredPerms: 2|selectedCols: (b 9 10 13)|modifiedCols: (b)"]
18[label = " List (18)|<1> [0]|<2> [1]"]
43[label = " OidList (43)|41018 41021 "]
28[label = " RangeTblEntry(RTE) (28)| eref: |rtekind: RTE_RELATION|relid: 41021|relkind: 114|inh: false|inFromCl: true|requiredPerms: 2|selectedCols: (b 9 10)|modifiedCols: (b)"]
1[label = " PlannedStmt (1)|commandType: CMD_SELECT|queryId: 0|hasReturning: false|hasModifyingCTE: false|canSetTag: true|transientPlan: false| planTree: | rtable: | subplans: |rewindPlanIDs: (b)| relationOids: |nParamExec: 1"]
20:colnames -> 21:head [headlabel = "20", taillabel = "21"]
21:1 -> 22:head [headlabel = "21", taillabel = "22"]
21:2 -> 23:head [headlabel = "21", taillabel = "23"]
21:3 -> 24:head [headlabel = "21", taillabel = "24"]
21:4 -> 25:head [headlabel = "21", taillabel = "25"]
21:5 -> 26:head [headlabel = "21", taillabel = "26"]
21:6 -> 27:head [headlabel = "21", taillabel = "27"]
29:colnames -> 30:head [headlabel = "29", taillabel = "30"]
30:1 -> 31:head [headlabel = "30", taillabel = "31"]
30:2 -> 32:head [headlabel = "30", taillabel = "32"]
34:targetlist -> 35:head [headlabel = "34", taillabel = "35"]
34:qual -> 38:head [headlabel = "34", taillabel = "38"]
16:setParam -> 17:head [headlabel = "16", taillabel = "17"]
33:1 -> 34:head [headlabel = "33", taillabel = "34"]
15:1 -> 16:head [headlabel = "15", taillabel = "16"]
2:targetlist -> 3:head [headlabel = "2", taillabel = "3"]
2:initPlan -> 15:head [headlabel = "2", taillabel = "15"]
2:qual -> 8:head [headlabel = "2", taillabel = "8"]
19:eref -> 20:head [headlabel = "19", taillabel = "20"]
18:1 -> 19:head [headlabel = "18", taillabel = "19"]
18:2 -> 28:head [headlabel = "18", taillabel = "28"]
28:eref -> 29:head [headlabel = "28", taillabel = "29"]
1:subplans -> 33:head [headlabel = "1", taillabel = "33"]
1:planTree -> 2:head [headlabel = "1", taillabel = "2"]
1:rtable -> 18:head [headlabel = "1", taillabel = "18"]
1:relationOids -> 43:head [headlabel = "1", taillabel = "43"]
subgraph cluster_0 {
label = "Target List";
4[label = " TargetEntry (4)| expr: |resno: 1|resname: id|resorigtbl: 41018|resorigcol: 1|resjunk: false"]
5[label = " Var (5)|varno: 1|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: name|resorigtbl: 41018|resorigcol: 2|resjunk: false"]
7[label = " Var (7)|varno: 1|varattno: 2|vartype: 1043|vartypmod: 14|varcollid: 100|varlevelsup: 0|varnoold: 1|varoattno: 2|location: 20"]
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"]
}
subgraph cluster_1 {
label = "Express Tree";
9[label = " OpExpr (9)|opno: 98|opfuncid: 67|opresulttype: 16|opretset: false|inputcollid: 100| args: |location: 68"]
11[label = " RelabelType (11)| arg: |resulttype: 25|resulttypmod: -1|resultcollid: 100|relabelformat: COERCE_IMPLICIT_CAST"]
12[label = " Var (12)|varno: 1|varattno: 5|vartype: 1043|vartypmod: 14|varcollid: 100|varlevelsup: 0|varnoold: 1|varoattno: 5|location: 54"]
10[label = " List (10)|<1> [0]|<2> [1]"]
13[label = " RelabelType (13)| arg: |resulttype: 25|resulttypmod: -1|resultcollid: 100|relabelformat: COERCE_IMPLICIT_CAST"]
14[label = " Param (14)|paramkind: PARAM_EXEC|paramid: 0|paramtype: 1043|paramtypmod: 14|paramcollid: 100"]
8[label = " List (8)|<1> [0]"]
9:args -> 10:head [headlabel = "9", taillabel = "10"]
11:arg -> 12:head [headlabel = "11", taillabel = "12"]
10:1 -> 11:head [headlabel = "10", taillabel = "11"]
10:2 -> 13:head [headlabel = "10", taillabel = "13"]
13:arg -> 14:head [headlabel = "13", taillabel = "14"]
8:1 -> 9:head [headlabel = "8", taillabel = "9"]
}
subgraph cluster_2 {
label = "Target List";
36[label = " TargetEntry (36)| expr: |resno: 1|resname: city|resorigtbl: 41021|resorigcol: 1|resjunk: false"]
37[label = " Var (37)|varno: 2|varattno: 1|vartype: 1043|vartypmod: 14|varcollid: 100|varlevelsup: 0|varnoold: 2|varoattno: 1|location: 78"]
35[label = " List (35)|<1> [0]"]
36:expr -> 37:head [headlabel = "36", taillabel = "37"]
35:1 -> 36:head [headlabel = "35", taillabel = "36"]
}
subgraph cluster_3 {
label = "Express Tree";
39[label = " OpExpr (39)|opno: 521|opfuncid: 147|opresulttype: 16|opretset: false| args: |location: 112"]
41[label = " Var (41)|varno: 2|varattno: 2|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 2|varoattno: 2|location: 101"]
40[label = " List (40)|<1> [0]|<2> [1]"]
42[label = " Const (42)|consttype: 23|consttypmod: -1|constlen: 4|constbyval: true|constisnull: false|location: 114"]
38[label = " List (38)|<1> [0]"]
39:args -> 40:head [headlabel = "39", taillabel = "40"]
40:1 -> 41:head [headlabel = "40", taillabel = "41"]
40:2 -> 42:head [headlabel = "40", taillabel = "42"]
38:1 -> 39:head [headlabel = "38", taillabel = "39"]
}
}