%%{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
    PgSelect8[["PgSelect[8∈0] ➊<br />ᐸforumsᐳ"]]:::plan
    Object11{{"Object[11∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Lambda13{{"Lambda[13∈0] ➊<br />ᐸincludeArchivedConditionᐳ"}}:::plan
    Object11 & Lambda13 --> PgSelect8
    Access9{{"Access[9∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access10{{"Access[10∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access9 & Access10 --> Object11
    Connection24{{"Connection[24∈0] ➊<br />ᐸ20ᐳ"}}:::plan
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access9
    __Value2 --> Access10
    Constant81{{"Constant[81∈0] ➊<br />ᐸ[ undefined, 'EXCLUSIVELY' ]ᐳ"}}:::plan
    Constant81 --> Lambda13
    PgSelectRows14[["PgSelectRows[14∈0] ➊"]]:::plan
    PgSelect8 --> PgSelectRows14
    Lambda28{{"Lambda[28∈0] ➊<br />ᐸincludeArchivedConditionᐳ"}}:::plan
    Constant82{{"Constant[82∈0] ➊<br />ᐸ[HIDDEN]ᐳ"}}:::plan
    Constant82 --> Lambda28
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    Constant29{{"Constant[29∈0] ➊<br />ᐸ[HIDDEN]ᐳ"}}:::plan
    Constant30{{"Constant[30∈0] ➊<br />ᐸtrueᐳ"}}:::plan
    __Item15[/"__Item[15∈1]<br />ᐸ14ᐳ"\]:::itemplan
    PgSelectRows14 ==> __Item15
    PgSelectSingle16{{"PgSelectSingle[16∈1]<br />ᐸforumsᐳ"}}:::plan
    __Item15 --> PgSelectSingle16
    PgClassExpression17{{"PgClassExpression[17∈2]<br />ᐸ__forums__.”name”ᐳ"}}:::plan
    PgSelectSingle16 --> PgClassExpression17
    PgClassExpression19{{"PgClassExpression[19∈2]<br />ᐸ__forums__.”id”ᐳ"}}:::plan
    PgSelectSingle16 --> PgClassExpression19
    PgClassExpression25{{"PgClassExpression[25∈2]<br />ᐸ__forums__...chived_at”ᐳ"}}:::plan
    PgSelectSingle16 --> PgClassExpression25
    PgSelect31[["PgSelect[31∈3@s]<br />ᐸmessagesᐳ"]]:::plan
    Object11 & PgClassExpression19 & PgClassExpression25 & Lambda28 & Connection24 --> PgSelect31
    PgSelect46[["PgSelect[46∈3@s]<br />ᐸmessagesᐳ"]]:::plan
    Object11 & PgClassExpression19 & PgClassExpression25 & Lambda28 & Connection24 --> PgSelect46
    PgSelectRows32[["PgSelectRows[32∈3@s]"]]:::plan
    PgSelect31 --> PgSelectRows32
    PgSelectRows47[["PgSelectRows[47∈3@s]"]]:::plan
    PgSelect46 --> PgSelectRows47
    PgPageInfo64{{"PgPageInfo[64∈3] ➊"}}:::plan
    Connection24 --> PgPageInfo64
    __Item33[/"__Item[33∈4]<br />ᐸ32ᐳ"\]:::itemplan
    PgSelectRows32 ==> __Item33
    PgSelectSingle34{{"PgSelectSingle[34∈4]<br />ᐸmessagesᐳ"}}:::plan
    __Item33 --> PgSelectSingle34
    PgSelect37[["PgSelect[37∈5]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression36{{"PgClassExpression[36∈5]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object11 & PgClassExpression36 --> PgSelect37
    PgClassExpression35{{"PgClassExpression[35∈5]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle34 --> PgClassExpression35
    PgSelectSingle34 --> PgClassExpression36
    First41{{"First[41∈5]"}}:::plan
    PgSelectRows42[["PgSelectRows[42∈5]"]]:::plan
    PgSelectRows42 --> First41
    PgSelect37 --> PgSelectRows42
    PgSelectSingle43{{"PgSelectSingle[43∈5]<br />ᐸusersᐳ"}}:::plan
    First41 --> PgSelectSingle43
    PgClassExpression44{{"PgClassExpression[44∈6]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle43 --> PgClassExpression44
    PgClassExpression45{{"PgClassExpression[45∈6]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle43 --> PgClassExpression45
    __Item48[/"__Item[48∈7]<br />ᐸ47ᐳ"\]:::itemplan
    PgSelectRows47 ==> __Item48
    PgSelectSingle49{{"PgSelectSingle[49∈7]<br />ᐸmessagesᐳ"}}:::plan
    __Item48 --> PgSelectSingle49
    Access50{{"Access[50∈7]<br />ᐸ46.cursorDetailsᐳ"}}:::plan
    PgSelect46 --> Access50
    PgCursor51{{"PgCursor[51∈8]"}}:::plan
    PgSelectSingle49 & Access50 --> PgCursor51
    PgSelect54[["PgSelect[54∈8]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression53{{"PgClassExpression[53∈8]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object11 & PgClassExpression53 --> PgSelect54
    PgClassExpression52{{"PgClassExpression[52∈8]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle49 --> PgClassExpression52
    PgSelectSingle49 --> PgClassExpression53
    First58{{"First[58∈8]"}}:::plan
    PgSelectRows59[["PgSelectRows[59∈8]"]]:::plan
    PgSelectRows59 --> First58
    PgSelect54 --> PgSelectRows59
    PgSelectSingle60{{"PgSelectSingle[60∈8]<br />ᐸusersᐳ"}}:::plan
    First58 --> PgSelectSingle60
    PgClassExpression61{{"PgClassExpression[61∈9]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle60 --> PgClassExpression61
    PgClassExpression62{{"PgClassExpression[62∈9]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle60 --> PgClassExpression62
    PgSelect63[["PgSelect[63∈10]<br />ᐸmessages+1ᐳ"]]:::plan
    Object11 & PgClassExpression19 & PgClassExpression25 & Lambda28 & Connection24 --> PgSelect63
    PgSelect74[["PgSelect[74∈10]<br />ᐸmessages(aggregate)ᐳ"]]:::plan
    Object11 & PgClassExpression19 & PgClassExpression25 & Lambda28 & Connection24 --> PgSelect74
    Object72{{"Object[72∈10]<br />ᐸ{first,last,offset,hasMore}ᐳ"}}:::plan
    Access66{{"Access[66∈10]<br />ᐸ63.hasMoreᐳ"}}:::plan
    Access66 --> Object72
    Object67{{"Object[67∈10]<br />ᐸ{first,last,hasMore}ᐳ"}}:::plan
    Access66 --> Object67
    PgSelect63 --> Access66
    Lambda68{{"Lambda[68∈10]<br />ᐸhasNextPageCbᐳ"}}:::plan
    Object67 --> Lambda68
    Lambda73{{"Lambda[73∈10]<br />ᐸhasPreviousPageCbᐳ"}}:::plan
    Object72 --> Lambda73
    First75{{"First[75∈10]"}}:::plan
    PgSelectRows76[["PgSelectRows[76∈10]"]]:::plan
    PgSelectRows76 --> First75
    PgSelect74 --> PgSelectRows76
    PgSelectSingle77{{"PgSelectSingle[77∈10]<br />ᐸmessagesᐳ"}}:::plan
    First75 --> PgSelectSingle77
    PgClassExpression78{{"PgClassExpression[78∈10]<br />ᐸcount(*)ᐳ"}}:::plan
    PgSelectSingle77 --> PgClassExpression78

    %% define steps

    subgraph "Buckets for queries/conditions/archived-forum-inherited-messages.stream-6"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 6, 9, 10, 29, 30, 81, 82, 11, 13, 24, 28<br />2: PgSelect[8]<br />3: PgSelectRows[14]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,PgSelect8,Access9,Access10,Object11,Lambda13,PgSelectRows14,Connection24,Lambda28,Constant29,Constant30,Constant81,Constant82 bucket0
    Bucket1("Bucket 1 (listItem)<br />Deps: 11, 28, 24, 6, 29, 30<br /><br />ROOT __Item{1}ᐸ14ᐳ[15]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item15,PgSelectSingle16 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 11, 28, 24, 6, 29, 30<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,PgClassExpression17,PgClassExpression19,PgClassExpression25 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 11, 19, 25, 28, 24, 6, 29, 30<br /><br />ROOT Connectionᐸ20ᐳ[24]<br />1: PgSelect[31], PgSelect[46]<br />ᐳ: PgPageInfo[64]<br />2: PgSelectRows[32], PgSelectRows[47]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgSelect31,PgSelectRows32,PgSelect46,PgSelectRows47,PgPageInfo64 bucket3
    Bucket4("Bucket 4 (listItem)<br />Deps: 11<br /><br />ROOT __Item{4}ᐸ32ᐳ[33]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item33,PgSelectSingle34 bucket4
    Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 34, 11<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[34]<br />1: <br />ᐳ: 35, 36<br />2: PgSelect[37]<br />3: PgSelectRows[42]<br />ᐳ: First[41], PgSelectSingle[43]"):::bucket
    classDef bucket5 stroke:#7fff00
    class Bucket5,PgClassExpression35,PgClassExpression36,PgSelect37,First41,PgSelectRows42,PgSelectSingle43 bucket5
    Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 43<br /><br />ROOT PgSelectSingle{5}ᐸusersᐳ[43]"):::bucket
    classDef bucket6 stroke:#ff1493
    class Bucket6,PgClassExpression44,PgClassExpression45 bucket6
    Bucket7("Bucket 7 (listItem)<br />Deps: 46, 11<br /><br />ROOT __Item{7}ᐸ47ᐳ[48]"):::bucket
    classDef bucket7 stroke:#808000
    class Bucket7,__Item48,PgSelectSingle49,Access50 bucket7
    Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 49, 50, 11<br /><br />ROOT PgSelectSingle{7}ᐸmessagesᐳ[49]<br />1: <br />ᐳ: 51, 52, 53<br />2: PgSelect[54]<br />3: PgSelectRows[59]<br />ᐳ: First[58], PgSelectSingle[60]"):::bucket
    classDef bucket8 stroke:#dda0dd
    class Bucket8,PgCursor51,PgClassExpression52,PgClassExpression53,PgSelect54,First58,PgSelectRows59,PgSelectSingle60 bucket8
    Bucket9("Bucket 9 (nullableBoundary)<br />Deps: 60<br /><br />ROOT PgSelectSingle{8}ᐸusersᐳ[60]"):::bucket
    classDef bucket9 stroke:#ff0000
    class Bucket9,PgClassExpression61,PgClassExpression62 bucket9
    Bucket10("Bucket 10 (defer)<br />Deps: 11, 19, 25, 28, 24, 6, 64<br /><br />1: PgSelect[63], PgSelect[74]<br />ᐳ: 66, 67, 68, 72, 73<br />2: PgSelectRows[76]<br />ᐳ: 75, 77, 78"):::bucket
    classDef bucket10 stroke:#ffff00
    class Bucket10,PgSelect63,Access66,Object67,Lambda68,Object72,Lambda73,PgSelect74,First75,PgSelectRows76,PgSelectSingle77,PgClassExpression78 bucket10
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4 & Bucket7 & Bucket10
    Bucket4 --> Bucket5
    Bucket5 --> Bucket6
    Bucket7 --> Bucket8
    Bucket8 --> Bucket9
    end
