%%{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
    Connection12{{"Connection[12∈0] ➊<br />ᐸ8ᐳ"}}:::plan
    Object11{{"Object[11∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access9{{"Access[9∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access10{{"Access[10∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access9 & Access10 --> Object11
    PgSelectInlineApply31["PgSelectInlineApply[31∈0] ➊"]:::plan
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access9
    __Value2 --> Access10
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    PgSelect14[["PgSelect[14∈1] ➊<br />ᐸpeopleᐳ"]]:::plan
    Object11 & Connection12 & PgSelectInlineApply31 --> PgSelect14
    PgSelectRows15[["PgSelectRows[15∈1] ➊"]]:::plan
    PgSelect14 --> PgSelectRows15
    Access29{{"Access[29∈1] ➊<br />ᐸ14.cursorDetailsᐳ"}}:::plan
    PgSelect14 --> Access29
    Access32{{"Access[32∈1] ➊<br />ᐸ14.m.subqueryDetailsFor19ᐳ"}}:::plan
    PgSelect14 --> Access32
    __Item16[/"__Item[16∈2]<br />ᐸ15ᐳ"\]:::itemplan
    PgSelectRows15 ==> __Item16
    PgSelectSingle17{{"PgSelectSingle[17∈2]<br />ᐸpeopleᐳ"}}:::plan
    __Item16 --> PgSelectSingle17
    PgCursor30{{"PgCursor[30∈3]"}}:::plan
    PgSelectSingle17 & Access29 --> PgCursor30
    List33{{"List[33∈3]<br />ᐸ32,16ᐳ"}}:::plan
    Access32 & __Item16 --> List33
    PgClassExpression18{{"PgClassExpression[18∈3]<br />ᐸ__people__.”person_id”ᐳ"}}:::plan
    PgSelectSingle17 --> PgClassExpression18
    PgSelectRows23[["PgSelectRows[23∈3]"]]:::plan
    Lambda34{{"Lambda[34∈3]<br />ᐸpgInlineViaSubqueryTransformᐳ"}}:::plan
    Lambda34 --> PgSelectRows23
    PgClassExpression28{{"PgClassExpression[28∈3]<br />ᐸ__people__.”username”ᐳ"}}:::plan
    PgSelectSingle17 --> PgClassExpression28
    List33 --> Lambda34
    __Item24[/"__Item[24∈4]<br />ᐸ23ᐳ"\]:::itemplan
    PgSelectRows23 ==> __Item24
    PgSelectSingle25{{"PgSelectSingle[25∈4]<br />ᐸlog_entriesᐳ"}}:::plan
    __Item24 --> PgSelectSingle25
    PgClassExpression26{{"PgClassExpression[26∈4]<br />ᐸ__log_entries__.”text”ᐳ"}}:::plan
    PgSelectSingle25 --> PgClassExpression26
    PgClassExpression27{{"PgClassExpression[27∈4]<br />ᐸ__log_entries__.”id”ᐳ"}}:::plan
    PgSelectSingle25 --> PgClassExpression27

    %% define steps

    subgraph "Buckets for queries/polymorphic/person-log-entries"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 6, 9, 10, 11, 12<br />2: PgSelectInlineApply[31]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,Access9,Access10,Object11,Connection12,PgSelectInlineApply31 bucket0
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 11, 12, 6, 31<br /><br />ROOT Connectionᐸ8ᐳ[12]<br />1: PgSelect[14]<br />ᐳ: Access[29], Access[32]<br />2: PgSelectRows[15]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgSelect14,PgSelectRows15,Access29,Access32 bucket1
    Bucket2("Bucket 2 (listItem)<br />Deps: 29, 32<br /><br />ROOT __Item{2}ᐸ15ᐳ[16]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item16,PgSelectSingle17 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 17, 29, 32, 16<br /><br />ROOT PgSelectSingle{2}ᐸpeopleᐳ[17]<br />1: <br />ᐳ: 18, 28, 30, 33, 34<br />2: PgSelectRows[23]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgClassExpression18,PgSelectRows23,PgClassExpression28,PgCursor30,List33,Lambda34 bucket3
    Bucket4("Bucket 4 (listItem)<br /><br />ROOT __Item{4}ᐸ23ᐳ[24]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item24,PgSelectSingle25,PgClassExpression26,PgClassExpression27 bucket4
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    end
