%%{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/polymorphic/person-app-vulns.app-condition"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 7, 10, 11, 44, 68, 69, 70, 71, 12, 24, 31, 32<br />2: PgSelect[9]<br />3: Connection[13]<br />4: ConnectionItems[15]"):::bucket
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 13, 15, 12, 69, 31, 32, 44<br /><br />ROOT Connectionᐸ9ᐳ[13]"):::bucket
    Bucket3("Bucket 3 (listItem)<br />Deps: 12, 69, 31, 32, 44<br /><br />ROOT __Item{3}ᐸ15ᐳ[18]"):::bucket
    Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 19, 12, 69, 31, 32, 44<br /><br />ROOT PgSelectSingle{3}ᐸpeopleᐳ[19]<br />1: <br />ᐳ: 20, 21<br />2: PgUnionAll[26]<br />3: Connection[30]<br />4: ConnectionItems[33]"):::bucket
    Bucket6("Bucket 6 (listItem)<br />Deps: 26, 44, 12<br /><br />ROOT __Item{6}ᐸ33ᐳ[36]"):::bucket
    Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 46, 37, 12, 48, 40<br /><br />ROOT Edge{6}[37]"):::bucket
    Bucket8("Bucket 8 (polymorphic)<br />__typename: Access[47]<br />Deps: 47, 12, 48"):::bucket
    Bucket9("Bucket 9 (polymorphicPartition)<br />|AwsApplication<br />Deps: 12, 48<br />ᐳAwsApplication<br /><br />1: PgSelect[49]<br />ᐳ: Access[53]<br />2: First[54]<br />ᐳ: 55, 64, 66"):::bucket
    Bucket10("Bucket 10 (polymorphicPartition)<br />|GcpApplication<br />Deps: 12, 48<br />ᐳGcpApplication<br /><br />1: PgSelect[57]<br />ᐳ: Access[61]<br />2: First[62]<br />ᐳ: 63, 65, 67"):::bucket
    end
    Bucket0 --> Bucket1
    Bucket1 --> Bucket3
    Bucket3 --> Bucket4
    Bucket4 --> Bucket6
    Bucket6 --> Bucket7
    Bucket7 --> Bucket8
    Bucket8 --> Bucket9 & Bucket10

    %% plan dependencies
    PgSelect9[["PgSelect[9∈0] ➊<br />ᐸpeopleᐳ<br />More deps:<br />- Object[12]<br />- Constantᐸ4ᐳ[68]"]]:::plan
    Object12{{"Object[12∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ<br />Dependents: 4"}}:::plan
    Access10{{"Access[10∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access11{{"Access[11∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access10 & Access11 --> Object12
    Connection13[["Connection[13∈0] ➊<br />ᐸ9ᐳ<br />More deps:<br />- Constantᐸ4ᐳ[68]"]]:::plan
    PgSelect9 --> Connection13
    __InputObject24{{"__InputObject[24∈0] ➊<br />More deps:<br />- Constantᐸundefinedᐳ[7]<br />- Constantᐸ'AWfulS'ᐳ[71]"}}:::plan
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access10
    __Value2 --> Access11
    ConnectionItems15[["ConnectionItems[15∈0] ➊"]]:::plan
    Connection13 --> ConnectionItems15
    Lambda31{{"Lambda[31∈0] ➊<br />ᐸparseCursorᐳ<br />More deps:<br />- Constantᐸ'WyI0OTgwM2MxZTJiIiwiQXdzQXBwbGljYXRpb24iLCJbXCI0XCJdIl0='ᐳ[70]"}}:::plan
    ApplyInput32{{"ApplyInput[32∈0] ➊"}}:::plan
    __InputObject24 --> ApplyInput32
    __Item18[/"__Item[18∈3]<br />ᐸ15ᐳ"\]:::itemplan
    ConnectionItems15 ==> __Item18
    PgSelectSingle19{{"PgSelectSingle[19∈3]<br />ᐸpeopleᐳ"}}:::plan
    __Item18 --> PgSelectSingle19
    PgUnionAll26[["PgUnionAll[26∈4]<br />ᐸAwsApplication,GcpApplicationᐳ<br />More deps:<br />- Object[12]<br />- Constantᐸ1ᐳ[69]"]]:::plan
    PgClassExpression20{{"PgClassExpression[20∈4]<br />ᐸ__people__.”person_id”ᐳ"}}:::plan
    PgClassExpression20 & Lambda31 & ApplyInput32 --> PgUnionAll26
    Connection30[["Connection[30∈4]<br />ᐸ26ᐳ<br />More deps:<br />- Constantᐸ1ᐳ[69]"]]:::plan
    PgUnionAll26 & Lambda31 --> Connection30
    PgSelectSingle19 --> PgClassExpression20
    PgClassExpression21{{"PgClassExpression[21∈4]<br />ᐸ__people__.”username”ᐳ"}}:::plan
    PgSelectSingle19 --> PgClassExpression21
    ConnectionItems33[["ConnectionItems[33∈4]"]]:::plan
    Connection30 --> ConnectionItems33
    List45{{"List[45∈6]<br />ᐸ42,43,44ᐳ<br />More deps:<br />- Constantᐸ[HIDDEN]ᐳ[44]"}}:::plan
    Access42{{"Access[42∈6]<br />ᐸ36.0ᐳ"}}:::plan
    Access43{{"Access[43∈6]<br />ᐸ36.1ᐳ"}}:::plan
    Access42 & Access43 --> List45
    Edge37{{"Edge[37∈6]"}}:::plan
    __Item36[/"__Item[36∈6]<br />ᐸ33ᐳ"\]:::itemplan
    PgCursor40{{"PgCursor[40∈6]"}}:::plan
    __Item36 & PgCursor40 --> Edge37
    Access39{{"Access[39∈6]<br />ᐸ26.cursorDetailsᐳ"}}:::plan
    __Item36 & Access39 --> PgCursor40
    ConnectionItems33 ==> __Item36
    PgUnionAll26 --> Access39
    __Item36 --> Access42
    __Item36 --> Access43
    Lambda46{{"Lambda[46∈6]<br />ᐸtoSpecifierᐳ"}}:::plan
    List45 --> Lambda46
    Access48{{"Access[48∈6]<br />ᐸ46.idᐳ"}}:::plan
    Lambda46 --> Access48
    Access47{{"Access[47∈7]<br />ᐸ46.__typenameᐳ"}}:::plan
    Lambda46 --> Access47
    PgSelect49[["PgSelect[49∈9]<br />ᐸaws_applicationsᐳ<br />ᐳAwsApplication<br />More deps:<br />- Object[12]"]]:::plan
    Access48 --> PgSelect49
    Access53{{"Access[53∈9]^<br />ᐸ49.itemsᐳ"}}:::plan
    PgSelect49 --> Access53
    First54[["First[54∈9]^"]]:::plan
    Access53 --> First54
    PgSelectSingle55{{"PgSelectSingle[55∈9]^<br />ᐸaws_applicationsᐳ"}}:::plan
    First54 --> PgSelectSingle55
    PgClassExpression64{{"PgClassExpression[64∈9]^<br />ᐸ__aws_appl...ons__.”id”ᐳ"}}:::plan
    PgSelectSingle55 --> PgClassExpression64
    PgClassExpression66{{"PgClassExpression[66∈9]^<br />ᐸ__aws_appl...s__.”name”ᐳ"}}:::plan
    PgSelectSingle55 --> PgClassExpression66
    PgSelect57[["PgSelect[57∈10]<br />ᐸgcp_applicationsᐳ<br />ᐳGcpApplication<br />More deps:<br />- Object[12]"]]:::plan
    Access48 --> PgSelect57
    Access61{{"Access[61∈10]^<br />ᐸ57.itemsᐳ"}}:::plan
    PgSelect57 --> Access61
    First62[["First[62∈10]^"]]:::plan
    Access61 --> First62
    PgSelectSingle63{{"PgSelectSingle[63∈10]^<br />ᐸgcp_applicationsᐳ"}}:::plan
    First62 --> PgSelectSingle63
    PgClassExpression65{{"PgClassExpression[65∈10]^<br />ᐸ__gcp_appl...ons__.”id”ᐳ"}}:::plan
    PgSelectSingle63 --> PgClassExpression65
    PgClassExpression67{{"PgClassExpression[67∈10]^<br />ᐸ__gcp_appl...s__.”name”ᐳ"}}:::plan
    PgSelectSingle63 --> PgClassExpression67

    %% define steps
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,PgSelect9,Access10,Access11,Object12,Connection13,ConnectionItems15,__InputObject24,Lambda31,ApplyInput32 bucket0
    classDef bucket1 stroke:#00bfff
    class Bucket1 bucket1
    classDef bucket3 stroke:#ffa500
    class Bucket3,__Item18,PgSelectSingle19 bucket3
    classDef bucket4 stroke:#0000ff
    class Bucket4,PgClassExpression20,PgClassExpression21,PgUnionAll26,Connection30,ConnectionItems33 bucket4
    classDef bucket6 stroke:#ff1493
    class Bucket6,__Item36,Edge37,Access39,PgCursor40,Access42,Access43,List45,Lambda46,Access48 bucket6
    classDef bucket7 stroke:#808000
    class Bucket7,Access47 bucket7
    classDef bucket8 stroke:#dda0dd
    class Bucket8 bucket8
    classDef bucket9 stroke:#ff0000
    class Bucket9,PgSelect49,Access53,First54,PgSelectSingle55,PgClassExpression64,PgClassExpression66 bucket9
    classDef bucket10 stroke:#ffff00
    class Bucket10,PgSelect57,Access61,First62,PgSelectSingle63,PgClassExpression65,PgClassExpression67 bucket10

