%%{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
    Object10{{"Object[10∈0]<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access8{{"Access[8∈0]<br />ᐸ3.pgSettingsᐳ"}}:::plan
    Access9{{"Access[9∈0]<br />ᐸ3.withPgClientᐳ"}}:::plan
    Access8 & Access9 --> Object10
    __Value3["__Value[3∈0]<br />ᐸcontextᐳ"]:::plan
    __Value3 --> Access8
    __Value3 --> Access9
    PgSelect7[["PgSelect[7∈0]<br />ᐸpeopleᐳ"]]:::plan
    Object10 --> PgSelect7
    __Value0["__Value[0∈0]"]:::plan
    __Value5["__Value[5∈0]<br />ᐸrootValueᐳ"]:::plan
    __Item11[/"__Item[11∈1]<br />ᐸ7ᐳ"\]:::itemplan
    PgSelect7 ==> __Item11
    PgSelectSingle12{{"PgSelectSingle[12∈1]<br />ᐸpeopleᐳ"}}:::plan
    __Item11 --> PgSelectSingle12
    PgClassExpression13{{"PgClassExpression[13∈2]<br />ᐸ__people__.”username”ᐳ"}}:::plan
    PgSelectSingle12 --> PgClassExpression13
    Access371{{"Access[371∈2]<br />ᐸ11.1ᐳ"}}:::plan
    __Item11 --> Access371
    __ListTransform19[["__ListTransform[19∈2]<br />ᐸeach:15ᐳ"]]:::plan
    Access371 --> __ListTransform19
    PgPolymorphic25{{"PgPolymorphic[25∈4]"}}:::plan
    PgSelectSingle23{{"PgSelectSingle[23∈4]<br />ᐸrelational_itemsᐳ"}}:::plan
    PgClassExpression24{{"PgClassExpression[24∈4]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle23 & PgClassExpression24 --> PgPolymorphic25
    __Item22[/"__Item[22∈4]<br />ᐸ19ᐳ"\]:::itemplan
    __ListTransform19 ==> __Item22
    __Item22 --> PgSelectSingle23
    PgSelectSingle23 --> PgClassExpression24
    PgClassExpression26{{"PgClassExpression[26∈4]<br />ᐸ__relation...ems__.”id”ᐳ"}}:::plan
    PgSelectSingle23 --> PgClassExpression26
    PgClassExpression33{{"PgClassExpression[33∈4]<br />ᐸ__relation...parent_id”ᐳ"}}:::plan
    PgSelectSingle23 --> PgClassExpression33
    PgClassExpression94{{"PgClassExpression[94∈4]<br />ᐸ__relation...__.”type2”ᐳ"}}:::plan
    PgSelectSingle23 --> PgClassExpression94
    __Item20[/"__Item[20∈3]<br />ᐸ371ᐳ"\]:::itemplan
    Access371 -.-> __Item20
    PgSelectSingle21{{"PgSelectSingle[21∈3]<br />ᐸrelational_itemsᐳ"}}:::plan
    __Item20 --> PgSelectSingle21
    PgSelect27[["PgSelect[27∈5]<br />ᐸrelational_topicsᐳ<br />ᐳRelationalTopic"]]:::plan
    Object10 & PgClassExpression26 --> PgSelect27
    PgSelect34[["PgSelect[34∈5]<br />ᐸrelational_itemsᐳ<br />ᐳRelationalTopic<br />ᐳRelationalPost<br />ᐳRelationalDivider<br />ᐳRelationalChecklist<br />ᐳRelationalChecklistItem"]]:::plan
    Object10 & PgClassExpression33 --> PgSelect34
    PgPolymorphic41{{"PgPolymorphic[41∈5]<br />ᐳRelationalTopic<br />ᐳRelationalPost<br />ᐳRelationalDivider<br />ᐳRelationalChecklist<br />ᐳRelationalChecklistItem"}}:::plan
    PgSelectSingle39{{"PgSelectSingle[39∈5]<br />ᐸrelational_itemsᐳ"}}:::plan
    PgClassExpression40{{"PgClassExpression[40∈5]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle39 & PgClassExpression40 --> PgPolymorphic41
    PgSelect96[["PgSelect[96∈5]<br />ᐸrelational_postsᐳ<br />ᐳRelationalPost"]]:::plan
    Object10 & PgClassExpression26 --> PgSelect96
    PgSelect165[["PgSelect[165∈5]<br />ᐸrelational_dividersᐳ<br />ᐳRelationalDivider"]]:::plan
    Object10 & PgClassExpression26 --> PgSelect165
    PgSelect234[["PgSelect[234∈5]<br />ᐸrelational_checklistsᐳ<br />ᐳRelationalChecklist"]]:::plan
    Object10 & PgClassExpression26 --> PgSelect234
    PgSelect303[["PgSelect[303∈5]<br />ᐸrelational_checklist_itemsᐳ<br />ᐳRelationalChecklistItem"]]:::plan
    Object10 & PgClassExpression26 --> PgSelect303
    First31{{"First[31∈5]"}}:::plan
    PgSelect27 --> First31
    PgSelectSingle32{{"PgSelectSingle[32∈5]<br />ᐸrelational_topicsᐳ"}}:::plan
    First31 --> PgSelectSingle32
    First38{{"First[38∈5]"}}:::plan
    PgSelect34 --> First38
    First38 --> PgSelectSingle39
    PgSelectSingle39 --> PgClassExpression40
    PgClassExpression42{{"PgClassExpression[42∈5]<br />ᐸ__relation...ems__.”id”ᐳ"}}:::plan
    PgSelectSingle39 --> PgClassExpression42
    PgClassExpression51{{"PgClassExpression[51∈5]<br />ᐸ__relation...__.”type2”ᐳ"}}:::plan
    PgSelectSingle39 --> PgClassExpression51
    First100{{"First[100∈5]"}}:::plan
    PgSelect96 --> First100
    PgSelectSingle101{{"PgSelectSingle[101∈5]<br />ᐸrelational_postsᐳ"}}:::plan
    First100 --> PgSelectSingle101
    First169{{"First[169∈5]"}}:::plan
    PgSelect165 --> First169
    PgSelectSingle170{{"PgSelectSingle[170∈5]<br />ᐸrelational_dividersᐳ"}}:::plan
    First169 --> PgSelectSingle170
    First238{{"First[238∈5]"}}:::plan
    PgSelect234 --> First238
    PgSelectSingle239{{"PgSelectSingle[239∈5]<br />ᐸrelational_checklistsᐳ"}}:::plan
    First238 --> PgSelectSingle239
    First307{{"First[307∈5]"}}:::plan
    PgSelect303 --> First307
    PgSelectSingle308{{"PgSelectSingle[308∈5]<br />ᐸrelational_checklist_itemsᐳ"}}:::plan
    First307 --> PgSelectSingle308
    PgSelect43[["PgSelect[43∈6]<br />ᐸrelational_topicsᐳ<br />ᐳRelationalTopicᐳRelationalTopic<br />ᐳRelationalPostᐳRelationalTopic<br />ᐳRelationalDividerᐳRelationalTopic<br />ᐳRelationalChecklistᐳRelationalTopic<br />ᐳRelationalChecklistItemᐳRelationalTopic"]]:::plan
    Object10 & PgClassExpression42 --> PgSelect43
    PgSelect53[["PgSelect[53∈6]<br />ᐸrelational_postsᐳ<br />ᐳRelationalTopicᐳRelationalPost<br />ᐳRelationalPostᐳRelationalPost<br />ᐳRelationalDividerᐳRelationalPost<br />ᐳRelationalChecklistᐳRelationalPost<br />ᐳRelationalChecklistItemᐳRelationalPost"]]:::plan
    Object10 & PgClassExpression42 --> PgSelect53
    PgSelect63[["PgSelect[63∈6]<br />ᐸrelational_dividersᐳ<br />ᐳRelationalTopicᐳRelationalDivider<br />ᐳRelationalPostᐳRelationalDivider<br />ᐳRelationalDividerᐳRelationalDivider<br />ᐳRelationalChecklistᐳRelationalDivider<br />ᐳRelationalChecklistItemᐳRelationalDivider"]]:::plan
    Object10 & PgClassExpression42 --> PgSelect63
    PgSelect73[["PgSelect[73∈6]<br />ᐸrelational_checklistsᐳ<br />ᐳRelationalTopicᐳRelationalChecklist<br />ᐳRelationalPostᐳRelationalChecklist<br />ᐳRelationalDividerᐳRelationalChecklist<br />ᐳRelationalChecklistᐳRelationalChecklist<br />ᐳRelationalChecklistItemᐳRelationalChecklist"]]:::plan
    Object10 & PgClassExpression42 --> PgSelect73
    PgSelect83[["PgSelect[83∈6]<br />ᐸrelational_checklist_itemsᐳ<br />ᐳRelationalTopicᐳRelationalChecklistItem<br />ᐳRelationalPostᐳRelationalChecklistItem<br />ᐳRelationalDividerᐳRelationalChecklistItem<br />ᐳRelationalChecklistᐳRelationalChecklistItem<br />ᐳRelationalChecklistItemᐳRelationalChecklistItem"]]:::plan
    Object10 & PgClassExpression42 --> PgSelect83
    First47{{"First[47∈6]"}}:::plan
    PgSelect43 --> First47
    PgSelectSingle48{{"PgSelectSingle[48∈6]<br />ᐸrelational_topicsᐳ"}}:::plan
    First47 --> PgSelectSingle48
    First57{{"First[57∈6]"}}:::plan
    PgSelect53 --> First57
    PgSelectSingle58{{"PgSelectSingle[58∈6]<br />ᐸrelational_postsᐳ"}}:::plan
    First57 --> PgSelectSingle58
    First67{{"First[67∈6]"}}:::plan
    PgSelect63 --> First67
    PgSelectSingle68{{"PgSelectSingle[68∈6]<br />ᐸrelational_dividersᐳ"}}:::plan
    First67 --> PgSelectSingle68
    First77{{"First[77∈6]"}}:::plan
    PgSelect73 --> First77
    PgSelectSingle78{{"PgSelectSingle[78∈6]<br />ᐸrelational_checklistsᐳ"}}:::plan
    First77 --> PgSelectSingle78
    First87{{"First[87∈6]"}}:::plan
    PgSelect83 --> First87
    PgSelectSingle88{{"PgSelectSingle[88∈6]<br />ᐸrelational_checklist_itemsᐳ"}}:::plan
    First87 --> PgSelectSingle88

    %% define steps

    subgraph "Buckets for queries/interfaces-relational/nested"
    Bucket0("Bucket 0 (root)<br />1: <br />ᐳ: Access[8], Access[9], Object[10]<br />2: PgSelect[7]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value0,__Value3,__Value5,PgSelect7,Access8,Access9,Object10 bucket0
    Bucket1("Bucket 1 (listItem)<br />Deps: 10<br /><br />ROOT __Item{1}ᐸ7ᐳ[11]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item11,PgSelectSingle12 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 12, 11, 10<br /><br />ROOT PgSelectSingle{1}ᐸpeopleᐳ[12]<br />1: <br />ᐳ: PgClassExpression[13], Access[371]<br />2: __ListTransform[19]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,PgClassExpression13,__ListTransform19,Access371 bucket2
    Bucket3("Bucket 3 (subroutine)<br />ROOT PgSelectSingle{3}ᐸrelational_itemsᐳ[21]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,__Item20,PgSelectSingle21 bucket3
    Bucket4("Bucket 4 (listItem)<br />Deps: 10<br /><br />ROOT __Item{4}ᐸ19ᐳ[22]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item22,PgSelectSingle23,PgClassExpression24,PgPolymorphic25,PgClassExpression26,PgClassExpression33,PgClassExpression94 bucket4
    Bucket5("Bucket 5 (polymorphic)<br />RelationalTopic,RelationalPost,RelationalDivider,RelationalChecklist,RelationalChecklistItem<br />Deps: 10, 26, 33, 25, 24, 94<br />ᐳRelationalTopic<br />ᐳRelationalPost<br />ᐳRelationalDivider<br />ᐳRelationalChecklist<br />ᐳRelationalChecklistItem"):::bucket
    classDef bucket5 stroke:#7fff00
    class Bucket5,PgSelect27,First31,PgSelectSingle32,PgSelect34,First38,PgSelectSingle39,PgClassExpression40,PgPolymorphic41,PgClassExpression42,PgClassExpression51,PgSelect96,First100,PgSelectSingle101,PgSelect165,First169,PgSelectSingle170,PgSelect234,First238,PgSelectSingle239,PgSelect303,First307,PgSelectSingle308 bucket5
    Bucket6("Bucket 6 (polymorphic)<br />RelationalTopic,RelationalPost,RelationalDivider,RelationalChecklist,RelationalChecklistItem<br />Deps: 10, 42, 41, 40, 51<br />ᐳRelationalTopicᐳRelationalTopic<br />ᐳRelationalTopicᐳRelationalPost<br />ᐳRelationalTopicᐳRelationalDivider<br />ᐳRelationalTopicᐳRelationalChecklist<br />ᐳRelationalTopicᐳRelationalChecklistItem<br />ᐳRelationalPostᐳRelationalTopic<br />ᐳRelationalPostᐳRelationalPost<br />ᐳRelationalPostᐳRelationalDivider<br />ᐳRelationalPostᐳRelationalChecklist<br />ᐳRelationalPostᐳRelationalChecklistItem<br />ᐳRelationalDividerᐳRelationalTopic<br />ᐳRelationalDividerᐳRelationalPost<br />ᐳRelationalDividerᐳRelationalDivider<br />ᐳRelationalDividerᐳRelationalChecklist<br />ᐳRelationalDividerᐳRelationalChecklistItem<br />ᐳRelationalChecklistᐳRelationalTopic<br />ᐳRelationalChecklistᐳRelationalPost<br />ᐳRelationalChecklistᐳRelationalDivider<br />ᐳRelationalChecklistᐳRelationalChecklist<br />ᐳRelationalChecklistᐳRelationalChecklistItem<br />ᐳRelationalChecklistItemᐳRelationalTopic<br />ᐳRelationalChecklistItemᐳRelationalPost<br />ᐳRelationalChecklistItemᐳRelationalDivider<br />ᐳRelationalChecklistItemᐳRelationalChecklist<br />ᐳRelationalChecklistItemᐳRelationalChecklistItem"):::bucket
    classDef bucket6 stroke:#ff1493
    class Bucket6,PgSelect43,First47,PgSelectSingle48,PgSelect53,First57,PgSelectSingle58,PgSelect63,First67,PgSelectSingle68,PgSelect73,First77,PgSelectSingle78,PgSelect83,First87,PgSelectSingle88 bucket6
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3 & Bucket4
    Bucket4 --> Bucket5
    Bucket5 --> Bucket6
    end
