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

    subgraph "Buckets for queries/v4/badlyBehavedFunction"
    Bucket0("Bucket 0 (root)"):::bucket
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 10, 11, 26<br /><br />ROOT Connectionᐸ7ᐳ[11]<br />1: PgSelect[12]<br />ᐳ: Access[24]<br />2: PgSelectRows[15]<br />3: __ListTransform[14]"):::bucket
    Bucket2("Bucket 2 (subroutine)<br /><br />ROOT PgSelectSingle{2}ᐸbadly_behaved_functionᐳ[17]"):::bucket
    Bucket3("Bucket 3 (listItem)<br />Deps: 26<br /><br />ROOT __Item{3}ᐸ15ᐳ[19]"):::bucket
    Bucket4("Bucket 4 (listItem)<br />Deps: 11, 24, 26<br /><br />ROOT __Item{4}ᐸ14ᐳ[21]"):::bucket
    Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 20, 26<br /><br />ROOT PgSelectSingle{3}ᐸbadly_behaved_functionᐳ[20]"):::bucket
    Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 23, 22, 26, 25<br /><br />ROOT Edge{4}[23]"):::bucket
    Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 22, 26<br /><br />ROOT PgSelectSingle{4}ᐸbadly_behaved_functionᐳ[22]"):::bucket
    end
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2 & Bucket3 & Bucket4
    Bucket3 --> Bucket5
    Bucket4 --> Bucket6
    Bucket6 --> Bucket7

    %% plan dependencies
    Object10{{"Object[10∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access8{{"Access[8∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access9{{"Access[9∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access8 & Access9 --> Object10
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access8
    __Value2 --> Access9
    Connection11{{"Connection[11∈0] ➊<br />ᐸ7ᐳ<br />Dependents: 2"}}:::plan
    PgSelect12[["PgSelect[12∈1] ➊<br />ᐸbadly_behaved_functionᐳ<br />More deps:<br />- Connection[11]"]]:::plan
    Object10 --> PgSelect12
    __ListTransform14[["__ListTransform[14∈1] ➊<br />ᐸeach:13ᐳ"]]:::plan
    PgSelectRows15[["PgSelectRows[15∈1] ➊"]]:::plan
    PgSelectRows15 --> __ListTransform14
    PgSelect12 --> PgSelectRows15
    Access24{{"Access[24∈1] ➊<br />ᐸ12.cursorDetailsᐳ"}}:::plan
    PgSelect12 --> Access24
    __Item16[/"__Item[16∈2]<br />ᐸ15ᐳ"\]:::itemplan
    PgSelectRows15 -.-> __Item16
    PgSelectSingle17{{"PgSelectSingle[17∈2]<br />ᐸbadly_behaved_functionᐳ"}}:::plan
    __Item16 --> PgSelectSingle17
    __Item19[/"__Item[19∈3]<br />ᐸ15ᐳ"\]:::itemplan
    PgSelectRows15 ==> __Item19
    PgSelectSingle20{{"PgSelectSingle[20∈3]<br />ᐸbadly_behaved_functionᐳ"}}:::plan
    __Item19 --> PgSelectSingle20
    Edge23{{"Edge[23∈4]<br />More deps:<br />- Connection[11]"}}:::plan
    PgSelectSingle22{{"PgSelectSingle[22∈4]<br />ᐸbadly_behaved_functionᐳ"}}:::plan
    PgCursor25{{"PgCursor[25∈4]"}}:::plan
    PgSelectSingle22 & PgCursor25 --> Edge23
    PgSelectSingle22 & Access24 --> PgCursor25
    __Item21[/"__Item[21∈4]<br />ᐸ14ᐳ"\]:::itemplan
    __ListTransform14 ==> __Item21
    __Item21 --> PgSelectSingle22
    List28{{"List[28∈5]<br />ᐸ26,27ᐳ<br />More deps:<br />- Constantᐸ'people'ᐳ[26]"}}:::plan
    PgClassExpression27{{"PgClassExpression[27∈5]<br />ᐸ__badly_be...ion__.”id”ᐳ"}}:::plan
    PgClassExpression27 --> List28
    PgSelectSingle20 --> PgClassExpression27
    Lambda29{{"Lambda[29∈5]<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List28 --> Lambda29
    PgClassExpression31{{"PgClassExpression[31∈5]<br />ᐸ”c”.”perso...unction__)ᐳ"}}:::plan
    PgSelectSingle20 --> PgClassExpression31
    List33{{"List[33∈7]<br />ᐸ26,32ᐳ<br />More deps:<br />- Constantᐸ'people'ᐳ[26]"}}:::plan
    PgClassExpression32{{"PgClassExpression[32∈7]<br />ᐸ__badly_be...ion__.”id”ᐳ"}}:::plan
    PgClassExpression32 --> List33
    PgSelectSingle22 --> PgClassExpression32
    Lambda34{{"Lambda[34∈7]<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List33 --> Lambda34
    PgClassExpression36{{"PgClassExpression[36∈7]<br />ᐸ”c”.”perso...unction__)ᐳ"}}:::plan
    PgSelectSingle22 --> PgClassExpression36

    %% define steps
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,Access8,Access9,Object10,Connection11 bucket0
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgSelect12,__ListTransform14,PgSelectRows15,Access24 bucket1
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item16,PgSelectSingle17 bucket2
    classDef bucket3 stroke:#ffa500
    class Bucket3,__Item19,PgSelectSingle20 bucket3
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item21,PgSelectSingle22,Edge23,PgCursor25 bucket4
    classDef bucket5 stroke:#7fff00
    class Bucket5,PgClassExpression27,List28,Lambda29,PgClassExpression31 bucket5
    classDef bucket6 stroke:#ff1493
    class Bucket6 bucket6
    classDef bucket7 stroke:#808000
    class Bucket7,PgClassExpression32,List33,Lambda34,PgClassExpression36 bucket7

