digraph {
graph [rankdir = "LR", label = "Plan Tree: SELECT ID, name FROM employee WHERE salary < (SELECT population FROM cities WHERE employee.city = cities.city);"]
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: 6|plan_width: 4| targetlist: | qual: |extParam: (b 0)|allParam: (b 0)|scanrelid: 2"]
33[label = " List (33)|<1> [0]"]
2[label = " SeqScan (2)|startup_cost: 0.00|total_cost: 15459.60|plan_rows: 213|plan_width: 42| targetlist: | qual: |extParam: (b)|allParam: (b)|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 11 13)|modifiedCols: (b)"]
18[label = " List (18)|<1> [0]|<2> [1]"]
45[label = " OidList (45)|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"]
33:1 -> 34:head [headlabel = "33", taillabel = "34"]
2:targetlist -> 3:head [headlabel = "2", taillabel = "3"]
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 -> 45:head [headlabel = "1", taillabel = "45"]
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: 11"]
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: 1122|opfuncid: 301|opresulttype: 16|opretset: false| args: |location: 43"]
11[label = " Var (11)|varno: 1|varattno: 3|vartype: 700|vartypmod: -1|varlevelsup: 0|varnoold: 1|varoattno: 3|location: 36"]
10[label = " List (10)|<1> [0]|<2> [1]"]
12[label = " FuncExpr (12)|funcid: 316|funcresulttype: 701|funcretset: false|funcvariadic: false|funcformat: COERCE_IMPLICIT_CAST| args: "]
17[label = " Var (17)|varno: 1|varattno: 5|vartype: 1043|vartypmod: 14|varcollid: 100|varlevelsup: 0|varnoold: 1|varoattno: 5|location: 82"]
14[label = " SubPlan (14)|subLinkType: EXPR_SUBLINK|plan_id: 1|plan_name: SubPlan 1|firstColType: 23|firstColTypmod: -1|useHashTable: false|unknownEqFalse: false| parParam: | args: |startup_cost: 0.00|per_call_cost: 24.12"]
15[label = " IntList (15)|0 "]
16[label = " List (16)|<1> [0]"]
13[label = " List (13)|<1> [0]"]
8[label = " List (8)|<1> [0]"]
9:args -> 10:head [headlabel = "9", taillabel = "10"]
10:1 -> 11:head [headlabel = "10", taillabel = "11"]
10:2 -> 12:head [headlabel = "10", taillabel = "12"]
12:args -> 13:head [headlabel = "12", taillabel = "13"]
14:parParam -> 15:head [headlabel = "14", taillabel = "15"]
14:args -> 16:head [headlabel = "14", taillabel = "16"]
16:1 -> 17:head [headlabel = "16", taillabel = "17"]
13:1 -> 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: population|resorigtbl: 41021|resorigcol: 2|resjunk: false"]
37[label = " Var (37)|varno: 2|varattno: 2|vartype: 23|vartypmod: -1|varlevelsup: 0|varnoold: 2|varoattno: 2|location: 53"]
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: 98|opfuncid: 67|opresulttype: 16|opretset: false|inputcollid: 100| args: |location: 96"]
41[label = " RelabelType (41)| arg: |resulttype: 25|resulttypmod: -1|resultcollid: 100|relabelformat: COERCE_IMPLICIT_CAST"]
42[label = " Param (42)|paramkind: PARAM_EXEC|paramid: 0|paramtype: 1043|paramtypmod: 14|paramcollid: 100|location: 82"]
40[label = " List (40)|<1> [0]|<2> [1]"]
43[label = " RelabelType (43)| arg: |resulttype: 25|resulttypmod: -1|resultcollid: 100|relabelformat: COERCE_IMPLICIT_CAST"]
44[label = " Var (44)|varno: 2|varattno: 1|vartype: 1043|vartypmod: 14|varcollid: 100|varlevelsup: 0|varnoold: 2|varoattno: 1|location: 98"]
38[label = " List (38)|<1> [0]"]
39:args -> 40:head [headlabel = "39", taillabel = "40"]
41:arg -> 42:head [headlabel = "41", taillabel = "42"]
40:1 -> 41:head [headlabel = "40", taillabel = "41"]
40:2 -> 43:head [headlabel = "40", taillabel = "43"]
43:arg -> 44:head [headlabel = "43", taillabel = "44"]
38:1 -> 39:head [headlabel = "38", taillabel = "39"]
}
}