%%{init: {'themeVariables': { 'fontSize': '12px'}}}%%
graph TD
    classDef path fill:#eee,stroke:#000,color:#000
    classDef plan fill:#fff,stroke-width:1px,color:#000
    classDef itemplan fill:#fff,stroke-width:2px,color:#000
    classDef unbatchedplan fill:#dff,stroke-width:1px,color:#000
    classDef sideeffectplan fill:#fcc,stroke-width:2px,color:#000
    classDef bucket fill:#f6f6f6,color:#000,stroke-width:2px,text-align:left


    %% plan dependencies
    __InputObject9{{"__InputObject[9∈0] ➊"}}:::plan
    Constant76{{"Constant[76∈0] ➊<br />ᐸ'postgraphile_test_authenticator'ᐳ"}}:::plan
    Constant77{{"Constant[77∈0] ➊<br />ᐸ'pg11'ᐳ"}}:::plan
    Constant12{{"Constant[12∈0] ➊<br />ᐸ[ '2098288669218571759', '2098288669218571760', '20982886692ᐳ"}}:::plan
    __InputObject13{{"__InputObject[13∈0] ➊"}}:::plan
    Constant76 & Constant77 & Constant12 & __InputObject13 --> __InputObject9
    __InputObject43{{"__InputObject[43∈0] ➊"}}:::plan
    Constant79{{"Constant[79∈0] ➊<br />ᐸ'postgraphile_test_visitor'ᐳ"}}:::plan
    Constant80{{"Constant[80∈0] ➊<br />ᐸ'c'ᐳ"}}:::plan
    Constant46{{"Constant[46∈0] ➊<br />ᐸ[ '2098288669218571759', '2098288669218571760', '20982886692ᐳ"}}:::plan
    __InputObject47{{"__InputObject[47∈0] ➊"}}:::plan
    Constant79 & Constant80 & Constant46 & __InputObject47 --> __InputObject43
    __InputObject6{{"__InputObject[6∈0] ➊"}}:::plan
    Constant75{{"Constant[75∈0] ➊<br />ᐸ12ᐳ"}}:::plan
    Constant75 & __InputObject9 --> __InputObject6
    Constant78{{"Constant[78∈0] ➊<br />ᐸ1ᐳ"}}:::plan
    Constant78 --> __InputObject13
    Object18{{"Object[18∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access16{{"Access[16∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access17{{"Access[17∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access16 & Access17 --> Object18
    __InputObject41{{"__InputObject[41∈0] ➊"}}:::plan
    __InputObject43 --> __InputObject41
    Constant78 --> __InputObject47
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access16
    __Value2 --> Access17
    ApplyInput19{{"ApplyInput[19∈0] ➊"}}:::plan
    __InputObject6 --> ApplyInput19
    ApplyInput53{{"ApplyInput[53∈0] ➊"}}:::plan
    __InputObject41 --> ApplyInput53
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    PgUpdateSingle15[["PgUpdateSingle[15∈1] ➊<br />ᐸtypes(id;)ᐳ"]]:::sideeffectplan
    Object18 & Constant75 & ApplyInput19 --> PgUpdateSingle15
    PgSelect28[["PgSelect[28∈1] ➊<br />ᐸfrmcdc_domainConstrainedCompoundTypeᐳ"]]:::plan
    PgFromExpression30{{"PgFromExpression[30∈1] ➊"}}:::plan
    Object18 & PgFromExpression30 --> PgSelect28
    Object20{{"Object[20∈1] ➊<br />ᐸ{result}ᐳ"}}:::plan
    PgUpdateSingle15 --> Object20
    PgClassExpression21{{"PgClassExpression[21∈1] ➊<br />ᐸ__types__.”id”ᐳ"}}:::plan
    Access22{{"Access[22∈1] ➊<br />ᐸ15.tᐳ"}}:::plan
    Access22 --> PgClassExpression21
    PgUpdateSingle15 --> Access22
    PgClassExpression23{{"PgClassExpression[23∈1] ➊<br />ᐸ__types__.”regrole”ᐳ"}}:::plan
    Access22 --> PgClassExpression23
    PgClassExpression24{{"PgClassExpression[24∈1] ➊<br />ᐸ__types__....namespace”ᐳ"}}:::plan
    Access22 --> PgClassExpression24
    PgClassExpression25{{"PgClassExpression[25∈1] ➊<br />ᐸ__types__....ay_domain”ᐳ"}}:::plan
    Access22 --> PgClassExpression25
    PgClassExpression27{{"PgClassExpression[27∈1] ➊<br />ᐸ__types__....ound_type”ᐳ"}}:::plan
    Access22 --> PgClassExpression27
    PgClassExpression27 --> PgFromExpression30
    First31{{"First[31∈1] ➊"}}:::plan
    PgSelectRows32[["PgSelectRows[32∈1] ➊"]]:::plan
    PgSelectRows32 --> First31
    PgSelect28 --> PgSelectRows32
    PgSelectSingle33{{"PgSelectSingle[33∈1] ➊<br />ᐸfrmcdc_domainConstrainedCompoundTypeᐳ"}}:::plan
    First31 --> PgSelectSingle33
    PgClassExpression34{{"PgClassExpression[34∈1] ➊<br />ᐸ__frmcdc_d...type__.”a”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression34
    PgClassExpression35{{"PgClassExpression[35∈1] ➊<br />ᐸ__frmcdc_d...type__.”b”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression35
    PgClassExpression36{{"PgClassExpression[36∈1] ➊<br />ᐸ__frmcdc_d...type__.”c”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression36
    PgClassExpression37{{"PgClassExpression[37∈1] ➊<br />ᐸ__frmcdc_d...type__.”d”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression37
    PgClassExpression38{{"PgClassExpression[38∈1] ➊<br />ᐸ__frmcdc_d...type__.”e”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression38
    PgClassExpression39{{"PgClassExpression[39∈1] ➊<br />ᐸ__frmcdc_d...type__.”f”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression39
    PgClassExpression40{{"PgClassExpression[40∈1] ➊<br />ᐸ__frmcdc_d....”foo_bar”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression40
    __Item26[/"__Item[26∈2]<br />ᐸ25ᐳ"\]:::itemplan
    PgClassExpression25 ==> __Item26
    PgInsertSingle49[["PgInsertSingle[49∈3] ➊<br />ᐸtypes()ᐳ"]]:::sideeffectplan
    Object52{{"Object[52∈3] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Object52 & ApplyInput53 --> PgInsertSingle49
    Access50{{"Access[50∈3] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access51{{"Access[51∈3] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access50 & Access51 --> Object52
    PgSelect62[["PgSelect[62∈3] ➊<br />ᐸfrmcdc_domainConstrainedCompoundTypeᐳ"]]:::plan
    PgFromExpression64{{"PgFromExpression[64∈3] ➊"}}:::plan
    Object52 & PgFromExpression64 --> PgSelect62
    __Value2 --> Access50
    __Value2 --> Access51
    Object54{{"Object[54∈3] ➊<br />ᐸ{result}ᐳ"}}:::plan
    PgInsertSingle49 --> Object54
    PgClassExpression55{{"PgClassExpression[55∈3] ➊<br />ᐸ__types__.”id”ᐳ"}}:::plan
    Access56{{"Access[56∈3] ➊<br />ᐸ49.tᐳ"}}:::plan
    Access56 --> PgClassExpression55
    PgInsertSingle49 --> Access56
    PgClassExpression57{{"PgClassExpression[57∈3] ➊<br />ᐸ__types__.”regrole”ᐳ"}}:::plan
    Access56 --> PgClassExpression57
    PgClassExpression58{{"PgClassExpression[58∈3] ➊<br />ᐸ__types__....namespace”ᐳ"}}:::plan
    Access56 --> PgClassExpression58
    PgClassExpression59{{"PgClassExpression[59∈3] ➊<br />ᐸ__types__....ay_domain”ᐳ"}}:::plan
    Access56 --> PgClassExpression59
    PgClassExpression61{{"PgClassExpression[61∈3] ➊<br />ᐸ__types__....ound_type”ᐳ"}}:::plan
    Access56 --> PgClassExpression61
    PgClassExpression61 --> PgFromExpression64
    First65{{"First[65∈3] ➊"}}:::plan
    PgSelectRows66[["PgSelectRows[66∈3] ➊"]]:::plan
    PgSelectRows66 --> First65
    PgSelect62 --> PgSelectRows66
    PgSelectSingle67{{"PgSelectSingle[67∈3] ➊<br />ᐸfrmcdc_domainConstrainedCompoundTypeᐳ"}}:::plan
    First65 --> PgSelectSingle67
    PgClassExpression68{{"PgClassExpression[68∈3] ➊<br />ᐸ__frmcdc_d...type__.”a”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression68
    PgClassExpression69{{"PgClassExpression[69∈3] ➊<br />ᐸ__frmcdc_d...type__.”b”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression69
    PgClassExpression70{{"PgClassExpression[70∈3] ➊<br />ᐸ__frmcdc_d...type__.”c”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression70
    PgClassExpression71{{"PgClassExpression[71∈3] ➊<br />ᐸ__frmcdc_d...type__.”d”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression71
    PgClassExpression72{{"PgClassExpression[72∈3] ➊<br />ᐸ__frmcdc_d...type__.”e”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression72
    PgClassExpression73{{"PgClassExpression[73∈3] ➊<br />ᐸ__frmcdc_d...type__.”f”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression73
    PgClassExpression74{{"PgClassExpression[74∈3] ➊<br />ᐸ__frmcdc_d....”foo_bar”ᐳ"}}:::plan
    PgSelectSingle67 --> PgClassExpression74
    __Item60[/"__Item[60∈4]<br />ᐸ59ᐳ"\]:::itemplan
    PgClassExpression59 ==> __Item60

    %% define steps

    subgraph "Buckets for mutations/v4/pg11.types"
    Bucket0("Bucket 0 (root)"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,__InputObject6,__InputObject9,Constant12,__InputObject13,Access16,Access17,Object18,ApplyInput19,__InputObject41,__InputObject43,Constant46,__InputObject47,ApplyInput53,Constant75,Constant76,Constant77,Constant78,Constant79,Constant80 bucket0
    Bucket1("Bucket 1 (mutationField)<br />Deps: 18, 75, 19<br /><br />1: PgUpdateSingle[15]<br />2: <br />ᐳ: 20, 22, 21, 23, 24, 25, 27, 30<br />3: PgSelect[28]<br />4: PgSelectRows[32]<br />ᐳ: 31, 33, 34, 35, 36, 37, 38, 39, 40"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgUpdateSingle15,Object20,PgClassExpression21,Access22,PgClassExpression23,PgClassExpression24,PgClassExpression25,PgClassExpression27,PgSelect28,PgFromExpression30,First31,PgSelectRows32,PgSelectSingle33,PgClassExpression34,PgClassExpression35,PgClassExpression36,PgClassExpression37,PgClassExpression38,PgClassExpression39,PgClassExpression40 bucket1
    Bucket2("Bucket 2 (listItem)<br /><br />ROOT __Item{2}ᐸ25ᐳ[26]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item26 bucket2
    Bucket3("Bucket 3 (mutationField)<br />Deps: 53, 2<br /><br />1: Access[50]<br />2: Access[51]<br />3: Object[52]<br />4: PgInsertSingle[49]<br />5: <br />ᐳ: 54, 56, 55, 57, 58, 59, 61, 64<br />6: PgSelect[62]<br />7: PgSelectRows[66]<br />ᐳ: 65, 67, 68, 69, 70, 71, 72, 73, 74"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgInsertSingle49,Access50,Access51,Object52,Object54,PgClassExpression55,Access56,PgClassExpression57,PgClassExpression58,PgClassExpression59,PgClassExpression61,PgSelect62,PgFromExpression64,First65,PgSelectRows66,PgSelectSingle67,PgClassExpression68,PgClassExpression69,PgClassExpression70,PgClassExpression71,PgClassExpression72,PgClassExpression73,PgClassExpression74 bucket3
    Bucket4("Bucket 4 (listItem)<br /><br />ROOT __Item{4}ᐸ59ᐳ[60]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item60 bucket4
    Bucket0 --> Bucket1 & Bucket3
    Bucket1 --> Bucket2
    Bucket3 --> Bucket4
    end
