%%{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
    Lambda84{{"Lambda[84∈0] ➊<br />ᐸcalculateLimitAndOffsetSQLᐳ"}}:::plan
    Object13 & Lambda84 --> 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
    Constant117{{"Constant[117∈0] ➊<br />ᐸ[Object: null prototype] {   cursorLower: null,   cursorUppeᐳ"}}:::plan
    Constant117 --> Lambda84
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    Connection27{{"Connection[27∈0] ➊<br />ᐸ23ᐳ"}}:::plan
    __Item14[/"__Item[14∈1]<br />ᐸ10ᐳ"\]:::itemplan
    PgSelect10 ==> __Item14
    PgSelectSingle15{{"PgSelectSingle[15∈1]<br />ᐸforumsᐳ"}}:::plan
    __Item14 --> PgSelectSingle15
    Constant59{{"Constant[59∈1] ➊<br />ᐸfalseᐳ"}}:::plan
    PgClassExpression16{{"PgClassExpression[16∈2]<br />ᐸ__forums__.”name”ᐳ"}}:::plan
    PgSelectSingle15 --> PgClassExpression16
    PgSelect29[["PgSelect[29∈3]<br />ᐸmessagesᐳ"]]:::plan
    PgClassExpression22{{"PgClassExpression[22∈3]<br />ᐸ__forums__.”id”ᐳ"}}:::plan
    PgClassExpression28{{"PgClassExpression[28∈3]<br />ᐸ__forums__...chived_at”ᐳ"}}:::plan
    Object13 & PgClassExpression22 & PgClassExpression28 & Connection27 & Lambda84 --> PgSelect29
    PgSelect73[["PgSelect[73∈3]<br />ᐸmessages(aggregate)ᐳ"]]:::plan
    Object13 & PgClassExpression22 & PgClassExpression28 & Connection27 & Lambda84 --> PgSelect73
    PgSelectSingle15 --> PgClassExpression22
    PgSelectSingle15 --> PgClassExpression28
    PgPageInfo58{{"PgPageInfo[58∈3] ➊"}}:::plan
    Connection27 --> PgPageInfo58
    First62{{"First[62∈3]"}}:::plan
    PgSelect29 --> First62
    PgSelectSingle63{{"PgSelectSingle[63∈3]<br />ᐸmessagesᐳ"}}:::plan
    First62 --> PgSelectSingle63
    PgCursor64{{"PgCursor[64∈3]"}}:::plan
    List66{{"List[66∈3]<br />ᐸ65ᐳ"}}:::plan
    List66 --> PgCursor64
    PgClassExpression65{{"PgClassExpression[65∈3]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    PgSelectSingle63 --> PgClassExpression65
    PgClassExpression65 --> List66
    Last68{{"Last[68∈3]"}}:::plan
    PgSelect29 --> Last68
    PgSelectSingle69{{"PgSelectSingle[69∈3]<br />ᐸmessagesᐳ"}}:::plan
    Last68 --> PgSelectSingle69
    PgCursor70{{"PgCursor[70∈3]"}}:::plan
    List72{{"List[72∈3]<br />ᐸ71ᐳ"}}:::plan
    List72 --> PgCursor70
    PgClassExpression71{{"PgClassExpression[71∈3]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    PgSelectSingle69 --> PgClassExpression71
    PgClassExpression71 --> List72
    First74{{"First[74∈3]"}}:::plan
    PgSelect73 --> First74
    PgSelectSingle75{{"PgSelectSingle[75∈3]<br />ᐸmessagesᐳ"}}:::plan
    First74 --> PgSelectSingle75
    PgClassExpression76{{"PgClassExpression[76∈3]<br />ᐸcount(*)ᐳ"}}:::plan
    PgSelectSingle75 --> PgClassExpression76
    __Item30[/"__Item[30∈4]<br />ᐸ29ᐳ"\]:::itemplan
    PgSelect29 ==> __Item30
    PgSelectSingle31{{"PgSelectSingle[31∈4]<br />ᐸmessagesᐳ"}}:::plan
    __Item30 --> PgSelectSingle31
    PgSelect34[["PgSelect[34∈6]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression33{{"PgClassExpression[33∈6]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object13 & PgClassExpression33 & Lambda84 --> PgSelect34
    PgClassExpression32{{"PgClassExpression[32∈6]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle31 --> PgClassExpression32
    PgSelectSingle31 --> PgClassExpression33
    First38{{"First[38∈6]"}}:::plan
    PgSelect34 --> First38
    PgSelectSingle39{{"PgSelectSingle[39∈6]<br />ᐸusersᐳ"}}:::plan
    First38 --> PgSelectSingle39
    PgClassExpression40{{"PgClassExpression[40∈7]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle39 --> PgClassExpression40
    PgClassExpression41{{"PgClassExpression[41∈7]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle39 --> PgClassExpression41
    PgSelect49[["PgSelect[49∈8]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression48{{"PgClassExpression[48∈8]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object13 & PgClassExpression48 & Lambda84 --> PgSelect49
    PgCursor44{{"PgCursor[44∈8]"}}:::plan
    List46{{"List[46∈8]<br />ᐸ45ᐳ"}}:::plan
    List46 --> PgCursor44
    PgClassExpression45{{"PgClassExpression[45∈8]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    PgSelectSingle31 --> PgClassExpression45
    PgClassExpression45 --> List46
    PgClassExpression47{{"PgClassExpression[47∈8]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle31 --> PgClassExpression47
    PgSelectSingle31 --> PgClassExpression48
    First53{{"First[53∈8]"}}:::plan
    PgSelect49 --> First53
    PgSelectSingle54{{"PgSelectSingle[54∈8]<br />ᐸusersᐳ"}}:::plan
    First53 --> PgSelectSingle54
    PgClassExpression55{{"PgClassExpression[55∈9]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle54 --> PgClassExpression55
    PgClassExpression56{{"PgClassExpression[56∈9]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle54 --> PgClassExpression56

    %% define steps

    subgraph "Buckets for queries/conditions/archived-forum-inherited-messages.defer-4"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 11, 12, 27, 117, 13, 84<br />2: PgSelect[10]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,PgSelect10,Access11,Access12,Object13,Connection27,Lambda84,Constant117 bucket0
    Bucket1("Bucket 1 (listItem)<br />Deps: 13, 27, 84<br /><br />ROOT __Item{1}ᐸ10ᐳ[14]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item14,PgSelectSingle15,Constant59 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 15, 13, 27, 84, 59<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[15]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,PgClassExpression16 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 15, 13, 27, 84, 59<br /><br />ROOT Connectionᐸ23ᐳ[27]<br />1: <br />ᐳ: 22, 28, 58<br />2: PgSelect[29], PgSelect[73]<br />ᐳ: 62, 63, 65, 66, 68, 69, 71, 72, 74, 75, 76, 64, 70"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgClassExpression22,PgClassExpression28,PgSelect29,PgPageInfo58,First62,PgSelectSingle63,PgCursor64,PgClassExpression65,List66,Last68,PgSelectSingle69,PgCursor70,PgClassExpression71,List72,PgSelect73,First74,PgSelectSingle75,PgClassExpression76 bucket3
    Bucket4("Bucket 4 (listItem)<br />Deps: 13, 84<br /><br />ROOT __Item{4}ᐸ29ᐳ[30]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item30,PgSelectSingle31 bucket4
    Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 31, 13, 84<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[31]"):::bucket
    classDef bucket5 stroke:#7fff00
    class Bucket5 bucket5
    Bucket6("Bucket 6 (defer)<br />Deps: 31, 13, 84<br /><br />1: <br />ᐳ: 32, 33<br />2: PgSelect[34]<br />ᐳ: First[38], PgSelectSingle[39]"):::bucket
    classDef bucket6 stroke:#ff1493
    class Bucket6,PgClassExpression32,PgClassExpression33,PgSelect34,First38,PgSelectSingle39 bucket6
    Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 39<br /><br />ROOT PgSelectSingle{6}ᐸusersᐳ[39]"):::bucket
    classDef bucket7 stroke:#808000
    class Bucket7,PgClassExpression40,PgClassExpression41 bucket7
    Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 31, 13, 84<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[31]<br />1: <br />ᐳ: 45, 47, 48, 46, 44<br />2: PgSelect[49]<br />ᐳ: First[53], PgSelectSingle[54]"):::bucket
    classDef bucket8 stroke:#dda0dd
    class Bucket8,PgCursor44,PgClassExpression45,List46,PgClassExpression47,PgClassExpression48,PgSelect49,First53,PgSelectSingle54 bucket8
    Bucket9("Bucket 9 (nullableBoundary)<br />Deps: 54<br /><br />ROOT PgSelectSingle{8}ᐸusersᐳ[54]"):::bucket
    classDef bucket9 stroke:#ff0000
    class Bucket9,PgClassExpression55,PgClassExpression56 bucket9
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    Bucket4 --> Bucket5 & Bucket8
    Bucket5 --> Bucket6
    Bucket6 --> Bucket7
    Bucket8 --> Bucket9
    end
