%%{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
    PgSelect10[["PgSelect[10∈0]<br />ᐸforumsᐳ"]]:::plan
    Object13{{"Object[13∈0]<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Constant86{{"Constant[86∈0]<br />ᐸtrueᐳ"}}:::plan
    Object13 & Constant86 --> PgSelect10
    Access11{{"Access[11∈0]<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access12{{"Access[12∈0]<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access11 & Access12 --> Object13
    __Value2["__Value[2∈0]<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access11
    __Value2 --> Access12
    Connection28{{"Connection[28∈0]<br />ᐸ24ᐳ"}}:::plan
    Constant85{{"Constant[85∈0]<br />ᐸ5ᐳ"}}:::plan
    Constant85 --> Connection28
    __Value4["__Value[4∈0]<br />ᐸrootValueᐳ"]:::plan
    __Item14[/"__Item[14∈1]<br />ᐸ10ᐳ"\]:::itemplan
    PgSelect10 ==> __Item14
    PgSelectSingle15{{"PgSelectSingle[15∈1]<br />ᐸforumsᐳ"}}:::plan
    __Item14 --> PgSelectSingle15
    Constant61{{"Constant[61∈1]<br />ᐸfalseᐳ"}}:::plan
    PgClassExpression16{{"PgClassExpression[16∈2]<br />ᐸ__forums__.”name”ᐳ"}}:::plan
    PgSelectSingle15 --> PgClassExpression16
    PgPageInfo58{{"PgPageInfo[58∈3]"}}:::plan
    Connection28 --> PgPageInfo58
    Access60{{"Access[60∈3]<br />ᐸ83.hasMoreᐳ"}}:::plan
    Lambda83{{"Lambda[83∈3]"}}:::plan
    Lambda83 --> Access60
    First63{{"First[63∈3]"}}:::plan
    Lambda83 --> First63
    PgSelectSingle64{{"PgSelectSingle[64∈3]<br />ᐸmessagesᐳ"}}:::plan
    First63 --> PgSelectSingle64
    PgCursor65{{"PgCursor[65∈3]"}}:::plan
    List67{{"List[67∈3]<br />ᐸ66ᐳ"}}:::plan
    List67 --> PgCursor65
    PgClassExpression66{{"PgClassExpression[66∈3]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    PgSelectSingle64 --> PgClassExpression66
    PgClassExpression66 --> List67
    Last69{{"Last[69∈3]"}}:::plan
    Lambda83 --> Last69
    PgSelectSingle70{{"PgSelectSingle[70∈3]<br />ᐸmessagesᐳ"}}:::plan
    Last69 --> PgSelectSingle70
    PgCursor71{{"PgCursor[71∈3]"}}:::plan
    List73{{"List[73∈3]<br />ᐸ72ᐳ"}}:::plan
    List73 --> PgCursor71
    PgClassExpression72{{"PgClassExpression[72∈3]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    PgSelectSingle70 --> PgClassExpression72
    PgClassExpression72 --> List73
    First75{{"First[75∈3]"}}:::plan
    Access84{{"Access[84∈3]<br />ᐸ14.2ᐳ"}}:::plan
    Access84 --> First75
    PgSelectSingle76{{"PgSelectSingle[76∈3]<br />ᐸmessagesᐳ"}}:::plan
    First75 --> PgSelectSingle76
    PgClassExpression77{{"PgClassExpression[77∈3]<br />ᐸcount(*)ᐳ"}}:::plan
    PgSelectSingle76 --> PgClassExpression77
    Access82{{"Access[82∈3]<br />ᐸ14.1ᐳ"}}:::plan
    __Item14 --> Access82
    Access82 --> Lambda83
    __Item14 --> Access84
    __Item31[/"__Item[31∈4]<br />ᐸ83ᐳ"\]:::itemplan
    Lambda83 ==> __Item31
    PgSelectSingle32{{"PgSelectSingle[32∈4]<br />ᐸmessagesᐳ"}}:::plan
    __Item31 --> PgSelectSingle32
    PgClassExpression33{{"PgClassExpression[33∈5]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle32 --> PgClassExpression33
    PgSelectSingle40{{"PgSelectSingle[40∈5]<br />ᐸusersᐳ"}}:::plan
    RemapKeys78{{"RemapKeys[78∈5]<br />ᐸ32:{”0”:1,”1”:2}ᐳ"}}:::plan
    RemapKeys78 --> PgSelectSingle40
    PgSelectSingle32 --> RemapKeys78
    PgClassExpression41{{"PgClassExpression[41∈6]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle40 --> PgClassExpression41
    PgClassExpression42{{"PgClassExpression[42∈6]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle40 --> PgClassExpression42
    PgCursor45{{"PgCursor[45∈7]"}}:::plan
    List47{{"List[47∈7]<br />ᐸ46ᐳ"}}:::plan
    List47 --> PgCursor45
    PgClassExpression46{{"PgClassExpression[46∈7]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    PgSelectSingle32 --> PgClassExpression46
    PgClassExpression46 --> List47
    PgClassExpression48{{"PgClassExpression[48∈7]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle32 --> PgClassExpression48
    PgSelectSingle55{{"PgSelectSingle[55∈7]<br />ᐸusersᐳ"}}:::plan
    RemapKeys80{{"RemapKeys[80∈7]<br />ᐸ32:{”0”:4,”1”:5}ᐳ"}}:::plan
    RemapKeys80 --> PgSelectSingle55
    PgSelectSingle32 --> RemapKeys80
    PgClassExpression56{{"PgClassExpression[56∈8]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle55 --> PgClassExpression56
    PgClassExpression57{{"PgClassExpression[57∈8]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle55 --> PgClassExpression57

    %% define steps

    subgraph "Buckets for queries/conditions/condition-featured-messages"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 11, 12, 85, 86, 13, 28<br />2: PgSelect[10]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,PgSelect10,Access11,Access12,Object13,Connection28,Constant85,Constant86 bucket0
    Bucket1("Bucket 1 (listItem)<br />Deps: 28<br /><br />ROOT __Item{1}ᐸ10ᐳ[14]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item14,PgSelectSingle15,Constant61 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 15, 28, 14, 61<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[15]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,PgClassExpression16 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 28, 14, 61<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgPageInfo58,Access60,First63,PgSelectSingle64,PgCursor65,PgClassExpression66,List67,Last69,PgSelectSingle70,PgCursor71,PgClassExpression72,List73,First75,PgSelectSingle76,PgClassExpression77,Access82,Lambda83,Access84 bucket3
    Bucket4("Bucket 4 (listItem)<br /><br />ROOT __Item{4}ᐸ83ᐳ[31]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item31,PgSelectSingle32 bucket4
    Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 32<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[32]"):::bucket
    classDef bucket5 stroke:#7fff00
    class Bucket5,PgClassExpression33,PgSelectSingle40,RemapKeys78 bucket5
    Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 40<br /><br />ROOT PgSelectSingle{5}ᐸusersᐳ[40]"):::bucket
    classDef bucket6 stroke:#ff1493
    class Bucket6,PgClassExpression41,PgClassExpression42 bucket6
    Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 32<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[32]"):::bucket
    classDef bucket7 stroke:#808000
    class Bucket7,PgCursor45,PgClassExpression46,List47,PgClassExpression48,PgSelectSingle55,RemapKeys80 bucket7
    Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 55<br /><br />ROOT PgSelectSingle{7}ᐸusersᐳ[55]"):::bucket
    classDef bucket8 stroke:#dda0dd
    class Bucket8,PgClassExpression56,PgClassExpression57 bucket8
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    Bucket4 --> Bucket5 & Bucket7
    Bucket5 --> Bucket6
    Bucket7 --> Bucket8
    classDef unary fill:#fafffa,borderWidth:8px
    class PgSelect10,Object13,Access11,Access12,Connection28,__Value2,__Value4,Constant85,Constant86,Constant61,PgPageInfo58 unary
    end
