%%{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
    Connection14{{"Connection[14∈0] ➊<br />ᐸ10ᐳ"}}:::plan
    Constant62{{"Constant[62∈0] ➊<br />ᐸ3ᐳ"}}:::plan
    Lambda16{{"Lambda[16∈0] ➊<br />ᐸparseCursorᐳ"}}:::plan
    Constant62 & Lambda16 --> Connection14
    Object13{{"Object[13∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    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
    Lambda15[["Lambda[15∈0] ➊<br />ᐸincludeArchivedConditionᐳ"]]:::unbatchedplan
    Constant7{{"Constant[7∈0] ➊<br />ᐸ'INHERIT'ᐳ"}}:::plan
    Constant7 --> Lambda15
    Constant63{{"Constant[63∈0] ➊<br />ᐸ'WyJmMGIyOGM5NGMxIiwiZjE3MGYxNzAtMDAwMC0wMDAwLTAwMDAtYjBiMDAᐳ"}}:::plan
    Constant63 --> Lambda16
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    PgSelect17[["PgSelect[17∈1] ➊<br />ᐸmessages+1ᐳ"]]:::plan
    Object13 & Lambda15 & Connection14 & Lambda16 & Constant62 --> PgSelect17
    Object43{{"Object[43∈1] ➊<br />ᐸ{first,last,offset,hasMore}ᐳ"}}:::plan
    Access37{{"Access[37∈1] ➊<br />ᐸ17.hasMoreᐳ"}}:::plan
    Constant62 & Access37 --> Object43
    Object38{{"Object[38∈1] ➊<br />ᐸ{first,last,hasMore}ᐳ"}}:::plan
    Constant62 & Access37 --> Object38
    PgSelect57[["PgSelect[57∈1] ➊<br />ᐸmessages(aggregate)ᐳ"]]:::plan
    Object13 & Lambda15 & Connection14 --> PgSelect57
    PgCursor50{{"PgCursor[50∈1] ➊"}}:::plan
    PgSelectSingle48{{"PgSelectSingle[48∈1] ➊<br />ᐸmessagesᐳ"}}:::plan
    Access21{{"Access[21∈1] ➊<br />ᐸ17.cursorDetailsᐳ"}}:::plan
    PgSelectSingle48 & Access21 --> PgCursor50
    PgCursor56{{"PgCursor[56∈1] ➊"}}:::plan
    PgSelectSingle54{{"PgSelectSingle[54∈1] ➊<br />ᐸmessagesᐳ"}}:::plan
    PgSelectSingle54 & Access21 --> PgCursor56
    PgSelectRows18[["PgSelectRows[18∈1] ➊"]]:::plan
    PgSelect17 --> PgSelectRows18
    PgSelect17 --> Access21
    PgPageInfo35{{"PgPageInfo[35∈1] ➊"}}:::plan
    Connection14 --> PgPageInfo35
    PgSelect17 --> Access37
    Lambda39{{"Lambda[39∈1] ➊<br />ᐸhasNextPageCbᐳ"}}:::plan
    Object38 --> Lambda39
    Lambda44{{"Lambda[44∈1] ➊<br />ᐸhasPreviousPageCbᐳ"}}:::plan
    Object43 --> Lambda44
    First46{{"First[46∈1] ➊"}}:::plan
    PgSelectRows18 --> First46
    First46 --> PgSelectSingle48
    Last52{{"Last[52∈1] ➊"}}:::plan
    PgSelectRows18 --> Last52
    Last52 --> PgSelectSingle54
    First58{{"First[58∈1] ➊"}}:::plan
    PgSelectRows59[["PgSelectRows[59∈1] ➊"]]:::plan
    PgSelectRows59 --> First58
    PgSelect57 --> PgSelectRows59
    PgSelectSingle60{{"PgSelectSingle[60∈1] ➊<br />ᐸmessagesᐳ"}}:::plan
    First58 --> PgSelectSingle60
    PgClassExpression61{{"PgClassExpression[61∈1] ➊<br />ᐸcount(*)ᐳ"}}:::plan
    PgSelectSingle60 --> PgClassExpression61
    __Item19[/"__Item[19∈2]<br />ᐸ18ᐳ"\]:::itemplan
    PgSelectRows18 ==> __Item19
    PgSelectSingle20{{"PgSelectSingle[20∈2]<br />ᐸmessagesᐳ"}}:::plan
    __Item19 --> PgSelectSingle20
    PgCursor22{{"PgCursor[22∈3]"}}:::plan
    PgSelectSingle20 & Access21 --> PgCursor22
    PgSelect25[["PgSelect[25∈3]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression24{{"PgClassExpression[24∈3]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object13 & PgClassExpression24 --> PgSelect25
    PgClassExpression23{{"PgClassExpression[23∈3]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle20 --> PgClassExpression23
    PgSelectSingle20 --> PgClassExpression24
    First29{{"First[29∈3]"}}:::plan
    PgSelectRows30[["PgSelectRows[30∈3]"]]:::plan
    PgSelectRows30 --> First29
    PgSelect25 --> PgSelectRows30
    PgSelectSingle31{{"PgSelectSingle[31∈3]<br />ᐸusersᐳ"}}:::plan
    First29 --> PgSelectSingle31
    PgClassExpression32{{"PgClassExpression[32∈4]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle31 --> PgClassExpression32
    PgClassExpression33{{"PgClassExpression[33∈4]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle31 --> PgClassExpression33

    %% define steps

    subgraph "Buckets for queries/connections/pagination-before-last"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 6, 7, 11, 12, 62, 63, 13, 16, 14<br />2: Lambda[15]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,Constant7,Access11,Access12,Object13,Connection14,Lambda15,Lambda16,Constant62,Constant63 bucket0
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 13, 15, 14, 16, 6, 62<br /><br />ROOT Connectionᐸ10ᐳ[14]<br />1: PgSelect[17], PgSelect[57]<br />ᐳ: 35, 21, 37, 38, 39, 43, 44<br />2: PgSelectRows[18], PgSelectRows[59]<br />ᐳ: 46, 48, 50, 52, 54, 56, 58, 60, 61"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgSelect17,PgSelectRows18,Access21,PgPageInfo35,Access37,Object38,Lambda39,Object43,Lambda44,First46,PgSelectSingle48,PgCursor50,Last52,PgSelectSingle54,PgCursor56,PgSelect57,First58,PgSelectRows59,PgSelectSingle60,PgClassExpression61 bucket1
    Bucket2("Bucket 2 (listItem)<br />Deps: 21, 13<br /><br />ROOT __Item{2}ᐸ18ᐳ[19]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item19,PgSelectSingle20 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 20, 21, 13<br /><br />ROOT PgSelectSingle{2}ᐸmessagesᐳ[20]<br />1: <br />ᐳ: 22, 23, 24<br />2: PgSelect[25]<br />3: PgSelectRows[30]<br />ᐳ: First[29], PgSelectSingle[31]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgCursor22,PgClassExpression23,PgClassExpression24,PgSelect25,First29,PgSelectRows30,PgSelectSingle31 bucket3
    Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 31<br /><br />ROOT PgSelectSingle{3}ᐸusersᐳ[31]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,PgClassExpression32,PgClassExpression33 bucket4
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    end
