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"] } }