%%{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


    %% define steps
    __Value3["__Value[3∈0]<br />ᐸcontextᐳ"]:::plan
    __Value5["__Value[5∈0]<br />ᐸrootValueᐳ"]:::plan
    Access16{{"Access[16∈1]<br />ᐸ3.pgSettingsᐳ"}}:::plan
    Access17{{"Access[17∈1]<br />ᐸ3.withPgClientᐳ"}}:::plan
    Object18{{"Object[18∈1]<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Connection19{{"Connection[19∈0]<br />ᐸ15ᐳ"}}:::plan
    PgSelect20[["PgSelect[20∈1]<br />ᐸpeopleᐳ"]]:::plan
    __Item21[/"__Item[21∈2]<br />ᐸ20ᐳ"\]:::itemplan
    PgSelectSingle22{{"PgSelectSingle[22∈2]<br />ᐸpeopleᐳ"}}:::plan
    PgClassExpression27{{"PgClassExpression[27∈3]<br />ᐸ__people__.”person_id”ᐳ"}}:::plan
    Access41{{"Access[41∈3]<br />ᐸ21.0ᐳ"}}:::plan
    __Item32[/"__Item[32∈4]<br />ᐸ41ᐳ"\]:::itemplan
    PgSelectSingle33{{"PgSelectSingle[33∈4]<br />ᐸlogEntriesᐳ"}}:::plan
    PgClassExpression34{{"PgClassExpression[34∈4]<br />ᐸ__log_entries__.”text”ᐳ"}}:::plan
    PgClassExpression35{{"PgClassExpression[35∈4]<br />ᐸ__log_entries__.”id”ᐳ"}}:::plan
    PgClassExpression37{{"PgClassExpression[37∈3]<br />ᐸ__people__.”username”ᐳ"}}:::plan
    List40{{"List[40∈3]<br />ᐸ27ᐳ"}}:::plan
    PgCursor38{{"PgCursor[38∈3]"}}:::plan

    %% plan dependencies
    __Value3 --> Access16
    __Value3 --> Access17
    Access16 & Access17 --> Object18
    Object18 & Connection19 --> PgSelect20
    PgSelect20 ==> __Item21
    __Item21 --> PgSelectSingle22
    PgSelectSingle22 --> PgClassExpression27
    __Item21 --> Access41
    Access41 ==> __Item32
    __Item32 --> PgSelectSingle33
    PgSelectSingle33 --> PgClassExpression34
    PgSelectSingle33 --> PgClassExpression35
    PgSelectSingle22 --> PgClassExpression37
    PgClassExpression27 --> List40
    List40 --> PgCursor38

    subgraph "Buckets for queries/polymorphic/person-log-entries"
    Bucket0("Bucket 0 (root)"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value3,__Value5,Connection19 bucket0
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 3, 19<br /><br />ROOT Connectionᐸ15ᐳ[19]<br />1: <br />ᐳ: Access[16], Access[17], Object[18]<br />2: PgSelect[20]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,Access16,Access17,Object18,PgSelect20 bucket1
    Bucket2("Bucket 2 (listItem)<br />ROOT __Item{2}ᐸ20ᐳ[21]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item21,PgSelectSingle22 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 22, 21<br /><br />ROOT PgSelectSingle{2}ᐸpeopleᐳ[22]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgClassExpression27,PgClassExpression37,PgCursor38,List40,Access41 bucket3
    Bucket4("Bucket 4 (listItem)<br />ROOT __Item{4}ᐸ41ᐳ[32]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item32,PgSelectSingle33,PgClassExpression34,PgClassExpression35 bucket4
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    end
