%%{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
    Lambda39{{"Lambda[39∈0] ➊<br />ᐸcalculateShouldReverseOrderᐳ"}}:::plan
    Lambda42{{"Lambda[42∈0] ➊<br />ᐸcalculateLimitAndOffsetSQLᐳ"}}:::plan
    Lambda75{{"Lambda[75∈0] ➊<br />ᐸcalculateOrderBySQLᐳ"}}:::plan
    Lambda80{{"Lambda[80∈0] ➊<br />ᐸcalculateOrderBySQLᐳ"}}:::plan
    Object11 & Lambda39 & Lambda42 & Lambda75 & Lambda80 --> PgSelect8
    Object74{{"Object[74∈0] ➊<br />ᐸ{reverse,orders,alias,codec}ᐳ"}}:::plan
    Constant71{{"Constant[71∈0] ➊<br />ᐸ[ { fragment: { n: [Array], f: 0, c: 266, [Symbol(pg-sql2-tyᐳ"}}:::plan
    Constant72{{"Constant[72∈0] ➊<br />ᐸ{ s: Symbol(forums), n: 'forums', [Symbol(pg-sql2-type-1)]: ᐳ"}}:::plan
    Constant73{{"Constant[73∈0] ➊<br />ᐸ{ name: 'forums', sqlType: { t: 'app_public.forums', [Symbolᐳ"}}:::plan
    Lambda39 & Constant71 & Constant72 & Constant73 --> Object74
    Access9{{"Access[9∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access10{{"Access[10∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access9 & Access10 --> Object11
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access9
    __Value2 --> Access10
    Connection22{{"Connection[22∈0] ➊<br />ᐸ18ᐳ"}}:::plan
    Constant81{{"Constant[81∈0] ➊<br />ᐸ2ᐳ"}}:::plan
    Constant81 --> Connection22
    Constant82{{"Constant[82∈0] ➊<br />ᐸ§{ first: null, last: null, cursorLower: null, cursorUpper: ᐳ"}}:::plan
    Constant82 --> Lambda39
    Constant83{{"Constant[83∈0] ➊<br />ᐸ§{ cursorLower: null, cursorUpper: null, first: null, last: ᐳ"}}:::plan
    Constant83 --> Lambda42
    Lambda54{{"Lambda[54∈0] ➊<br />ᐸcalculateShouldReverseOrderᐳ"}}:::plan
    Constant87{{"Constant[87∈0] ➊<br />ᐸ§{ first: null, last: 2, cursorLower: null, cursorUpper: nulᐳ"}}:::plan
    Constant87 --> Lambda54
    Object74 --> Lambda75
    Constant86{{"Constant[86∈0] ➊<br />ᐸ§{ reverse: false, orders: [ { fragment: [Object], codec: [Oᐳ"}}:::plan
    Constant86 --> Lambda80
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    Constant43{{"Constant[43∈0] ➊<br />ᐸ[]ᐳ"}}:::plan
    Constant44{{"Constant[44∈0] ➊<br />ᐸ{ s: Symbol(users), n: 'users', [Symbol(pg-sql2-type-1)]: 'Iᐳ"}}:::plan
    Constant45{{"Constant[45∈0] ➊<br />ᐸ{ name: 'users', sqlType: { t: 'app_public.users', [Symbol(pᐳ"}}:::plan
    Constant57{{"Constant[57∈0] ➊<br />ᐸ[ { fragment: { n: [Array], f: 0, c: 266, [Symbol(pg-sql2-tyᐳ"}}:::plan
    Constant58{{"Constant[58∈0] ➊<br />ᐸ{ s: Symbol(messages), n: 'messages', [Symbol(pg-sql2-type-1ᐳ"}}:::plan
    Constant59{{"Constant[59∈0] ➊<br />ᐸ{ name: 'messages', sqlType: { t: 'app_public.messages', [Syᐳ"}}:::plan
    Constant84{{"Constant[84∈0] ➊<br />ᐸ§{ reverse: false, orders: [], alias: { s: Symbol(users), n:ᐳ"}}:::plan
    Constant85{{"Constant[85∈0] ➊<br />ᐸ§{ reverse: false, orders: [ { fragment: [Object], codec: [Oᐳ"}}:::plan
    Constant88{{"Constant[88∈0] ➊<br />ᐸ§{ cursorLower: null, cursorUpper: null, first: null, last: ᐳ"}}:::plan
    Object46{{"Object[46∈1] ➊<br />ᐸ{reverse,orders,alias,codec}ᐳ"}}:::plan
    Lambda39 & Constant43 & Constant44 & Constant45 --> Object46
    Object60{{"Object[60∈1] ➊<br />ᐸ{reverse,orders,alias,codec}ᐳ"}}:::plan
    Lambda54 & Constant57 & Constant58 & Constant59 --> Object60
    __Item12[/"__Item[12∈1]<br />ᐸ8ᐳ"\]:::itemplan
    PgSelect8 ==> __Item12
    PgSelectSingle13{{"PgSelectSingle[13∈1]<br />ᐸforumsᐳ"}}:::plan
    __Item12 --> PgSelectSingle13
    Lambda47{{"Lambda[47∈1] ➊<br />ᐸcalculateOrderBySQLᐳ"}}:::plan
    Object46 --> Lambda47
    Lambda52{{"Lambda[52∈1] ➊<br />ᐸcalculateOrderBySQLᐳ"}}:::plan
    Constant84 --> Lambda52
    Lambda56{{"Lambda[56∈1] ➊<br />ᐸcalculateLimitAndOffsetSQLᐳ"}}:::plan
    Constant88 --> Lambda56
    Lambda61{{"Lambda[61∈1] ➊<br />ᐸcalculateOrderBySQLᐳ"}}:::plan
    Object60 --> Lambda61
    Lambda66{{"Lambda[66∈1] ➊<br />ᐸcalculateOrderBySQLᐳ"}}:::plan
    Constant85 --> Lambda66
    PgClassExpression14{{"PgClassExpression[14∈2]<br />ᐸ__forums__.”name”ᐳ"}}:::plan
    PgSelectSingle13 --> PgClassExpression14
    PgSelect24[["PgSelect[24∈3@s1]<br />ᐸmessagesᐳ"]]:::plan
    PgClassExpression17{{"PgClassExpression[17∈3]<br />ᐸ__forums__.”id”ᐳ"}}:::plan
    PgClassExpression23{{"PgClassExpression[23∈3]<br />ᐸ__forums__...chived_at”ᐳ"}}:::plan
    Object11 & PgClassExpression17 & PgClassExpression23 & Connection22 & Constant81 & Lambda54 & Lambda56 & Lambda61 & Lambda66 --> PgSelect24
    PgSelectSingle13 --> PgClassExpression17
    PgSelectSingle13 --> PgClassExpression23
    __Item25[/"__Item[25∈4]<br />ᐸ24ᐳ"\]:::itemplan
    PgSelect24 ==> __Item25
    PgSelectSingle26{{"PgSelectSingle[26∈4]<br />ᐸmessagesᐳ"}}:::plan
    __Item25 --> PgSelectSingle26
    PgSelect29[["PgSelect[29∈5]<br />ᐸusersᐳ"]]:::plan
    PgClassExpression28{{"PgClassExpression[28∈5]<br />ᐸ__messages...author_id”ᐳ"}}:::plan
    Object11 & PgClassExpression28 & Lambda39 & Lambda42 & Lambda47 & Lambda52 --> PgSelect29
    PgClassExpression27{{"PgClassExpression[27∈5]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    PgSelectSingle26 --> PgClassExpression27
    PgSelectSingle26 --> PgClassExpression28
    First33{{"First[33∈5]"}}:::plan
    PgSelect29 --> First33
    PgSelectSingle34{{"PgSelectSingle[34∈5]<br />ᐸusersᐳ"}}:::plan
    First33 --> PgSelectSingle34
    PgClassExpression35{{"PgClassExpression[35∈6]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgSelectSingle34 --> PgClassExpression35
    PgClassExpression36{{"PgClassExpression[36∈6]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgSelectSingle34 --> PgClassExpression36

    %% define steps

    subgraph "Buckets for queries/conditions/archived-forum-inherited-messages.stream-5"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 9, 10, 43, 44, 45, 57, 58, 59, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87, 88, 11, 22, 39, 42, 54, 74, 75, 80<br />2: PgSelect[8]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,PgSelect8,Access9,Access10,Object11,Connection22,Lambda39,Lambda42,Constant43,Constant44,Constant45,Lambda54,Constant57,Constant58,Constant59,Constant71,Constant72,Constant73,Object74,Lambda75,Lambda80,Constant81,Constant82,Constant83,Constant84,Constant85,Constant86,Constant87,Constant88 bucket0
    Bucket1("Bucket 1 (listItem)<br />Deps: 39, 43, 44, 45, 84, 88, 54, 57, 58, 59, 85, 11, 22, 81, 42<br /><br />ROOT __Item{1}ᐸ8ᐳ[12]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item12,PgSelectSingle13,Object46,Lambda47,Lambda52,Lambda56,Object60,Lambda61,Lambda66 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 13, 11, 22, 81, 54, 56, 61, 66, 39, 42, 47, 52<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[13]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,PgClassExpression14 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 13, 11, 22, 81, 54, 56, 61, 66, 39, 42, 47, 52<br /><br />ROOT Connectionᐸ18ᐳ[22]<br />1: <br />ᐳ: 17, 23<br />2: PgSelect[24]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgClassExpression17,PgClassExpression23,PgSelect24 bucket3
    Bucket4("Bucket 4 (listItem)<br />Deps: 11, 39, 42, 47, 52<br /><br />ROOT __Item{4}ᐸ24ᐳ[25]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item25,PgSelectSingle26 bucket4
    Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 26, 11, 39, 42, 47, 52<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[26]<br />1: <br />ᐳ: 27, 28<br />2: PgSelect[29]<br />ᐳ: First[33], PgSelectSingle[34]"):::bucket
    classDef bucket5 stroke:#7fff00
    class Bucket5,PgClassExpression27,PgClassExpression28,PgSelect29,First33,PgSelectSingle34 bucket5
    Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 34<br /><br />ROOT PgSelectSingle{5}ᐸusersᐳ[34]"):::bucket
    classDef bucket6 stroke:#ff1493
    class Bucket6,PgClassExpression35,PgClassExpression36 bucket6
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    Bucket4 --> Bucket5
    Bucket5 --> Bucket6
    end
