%%{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
    Object12{{"Object[12∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access10{{"Access[10∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access11{{"Access[11∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access10 & Access11 --> Object12
    Connection13{{"Connection[13∈0] ➊<br />ᐸ9ᐳ"}}:::plan
    Constant60{{"Constant[60∈0] ➊<br />ᐸ3ᐳ"}}:::plan
    Constant60 --> Connection13
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access10
    __Value2 --> Access11
    Lambda14[["Lambda[14∈0] ➊<br />ᐸincludeArchivedConditionᐳ"]]:::unbatchedplan
    Constant7{{"Constant[7∈0] ➊<br />ᐸ'INHERIT'ᐳ"}}:::plan
    Constant7 --> Lambda14
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    PgSelect15[["PgSelect[15∈1] ➊<br />ᐸmessages+1ᐳ"]]:::plan
    Object12 & Lambda14 & Connection13 & Constant60 --> PgSelect15
    Object41{{"Object[41∈1] ➊<br />ᐸ{first,last,offset,hasMore}ᐳ"}}:::plan
    Access35{{"Access[35∈1] ➊<br />ᐸ15.hasMoreᐳ"}}:::plan
    Constant60 & Access35 --> Object41
    Object36{{"Object[36∈1] ➊<br />ᐸ{first,last,hasMore}ᐳ"}}:::plan
    Constant60 & Access35 --> Object36
    PgSelect55[["PgSelect[55∈1] ➊<br />ᐸmessages(aggregate)ᐳ"]]:::plan
    Object12 & Lambda14 & Connection13 --> PgSelect55
    PgCursor48{{"PgCursor[48∈1] ➊"}}:::plan
    PgSelectSingle46{{"PgSelectSingle[46∈1] ➊<br />ᐸmessagesᐳ"}}:::plan
    Access19{{"Access[19∈1] ➊<br />ᐸ15.cursorDetailsᐳ"}}:::plan
    PgSelectSingle46 & Access19 --> PgCursor48
    PgCursor54{{"PgCursor[54∈1] ➊"}}:::plan
    PgSelectSingle52{{"PgSelectSingle[52∈1] ➊<br />ᐸmessagesᐳ"}}:::plan
    PgSelectSingle52 & Access19 --> PgCursor54
    PgSelectRows16[["PgSelectRows[16∈1] ➊"]]:::plan
    PgSelect15 --> PgSelectRows16
    PgSelect15 --> Access19
    PgPageInfo33{{"PgPageInfo[33∈1] ➊"}}:::plan
    Connection13 --> PgPageInfo33
    PgSelect15 --> Access35
    Lambda37{{"Lambda[37∈1] ➊<br />ᐸhasNextPageCbᐳ"}}:::plan
    Object36 --> Lambda37
    Lambda42{{"Lambda[42∈1] ➊<br />ᐸhasPreviousPageCbᐳ"}}:::plan
    Object41 --> Lambda42
    First44{{"First[44∈1] ➊"}}:::plan
    PgSelectRows16 --> First44
    First44 --> PgSelectSingle46
    Last50{{"Last[50∈1] ➊"}}:::plan
    PgSelectRows16 --> Last50
    Last50 --> PgSelectSingle52
    First56{{"First[56∈1] ➊"}}:::plan
    PgSelectRows57[["PgSelectRows[57∈1] ➊"]]:::plan
    PgSelectRows57 --> First56
    PgSelect55 --> PgSelectRows57
    PgSelectSingle58{{"PgSelectSingle[58∈1] ➊<br />ᐸmessagesᐳ"}}:::plan
    First56 --> PgSelectSingle58
    PgClassExpression59{{"PgClassExpression[59∈1] ➊<br />ᐸcount(*)ᐳ"}}:::plan
    PgSelectSingle58 --> PgClassExpression59
    __Item17[/"__Item[17∈2]<br />ᐸ16ᐳ"\]:::itemplan
    PgSelectRows16 ==> __Item17
    PgSelectSingle18{{"PgSelectSingle[18∈2]<br />ᐸmessagesᐳ"}}:::plan
    __Item17 --> PgSelectSingle18
    PgCursor20{{"PgCursor[20∈3]"}}:::plan
    PgSelectSingle18 & Access19 --> PgCursor20
    PgSelect23[["PgSelect[23∈3]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression22{{"PgClassExpression[22∈3]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object12 & PgClassExpression22 --> PgSelect23
    PgClassExpression21{{"PgClassExpression[21∈3]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle18 --> PgClassExpression21
    PgSelectSingle18 --> PgClassExpression22
    First27{{"First[27∈3]"}}:::plan
    PgSelectRows28[["PgSelectRows[28∈3]"]]:::plan
    PgSelectRows28 --> First27
    PgSelect23 --> PgSelectRows28
    PgSelectSingle29{{"PgSelectSingle[29∈3]<br />ᐸusersᐳ"}}:::plan
    First27 --> PgSelectSingle29
    PgClassExpression30{{"PgClassExpression[30∈4]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle29 --> PgClassExpression30
    PgClassExpression31{{"PgClassExpression[31∈4]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle29 --> PgClassExpression31

    %% define steps

    subgraph "Buckets for queries/connections/basics-limit3"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 6, 7, 10, 11, 60, 12, 13<br />2: Lambda[14]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,Constant7,Access10,Access11,Object12,Connection13,Lambda14,Constant60 bucket0
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 12, 14, 13, 60, 6<br /><br />ROOT Connectionᐸ9ᐳ[13]<br />1: PgSelect[15], PgSelect[55]<br />ᐳ: 33, 19, 35, 36, 37, 41, 42<br />2: PgSelectRows[16], PgSelectRows[57]<br />ᐳ: 44, 46, 48, 50, 52, 54, 56, 58, 59"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgSelect15,PgSelectRows16,Access19,PgPageInfo33,Access35,Object36,Lambda37,Object41,Lambda42,First44,PgSelectSingle46,PgCursor48,Last50,PgSelectSingle52,PgCursor54,PgSelect55,First56,PgSelectRows57,PgSelectSingle58,PgClassExpression59 bucket1
    Bucket2("Bucket 2 (listItem)<br />Deps: 19, 12<br /><br />ROOT __Item{2}ᐸ16ᐳ[17]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item17,PgSelectSingle18 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 18, 19, 12<br /><br />ROOT PgSelectSingle{2}ᐸmessagesᐳ[18]<br />1: <br />ᐳ: 20, 21, 22<br />2: PgSelect[23]<br />3: PgSelectRows[28]<br />ᐳ: First[27], PgSelectSingle[29]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgCursor20,PgClassExpression21,PgClassExpression22,PgSelect23,First27,PgSelectRows28,PgSelectSingle29 bucket3
    Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 29<br /><br />ROOT PgSelectSingle{3}ᐸusersᐳ[29]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,PgClassExpression30,PgClassExpression31 bucket4
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    end
