Skip to content

Commit

Permalink
Unary steps (#1973)
Browse files Browse the repository at this point in the history
  • Loading branch information
benjie authored Mar 1, 2024
2 parents 6e367b6 + 94f2a36 commit a858c13
Show file tree
Hide file tree
Showing 196 changed files with 2,552 additions and 1,223 deletions.
6 changes: 6 additions & 0 deletions .changeset/curly-dingos-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"tamedevil": patch
---

Add te.debug helper for debugging a te expression via printing a formatted
version.
5 changes: 5 additions & 0 deletions .changeset/lemon-toys-wash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"pg-sql2": patch
---

Fix processing of GRAPHILE_ENV to allow "test"
10 changes: 10 additions & 0 deletions .changeset/rotten-shrimps-do.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"postgraphile": patch
"@dataplan/json": patch
"@dataplan/pg": patch
"grafast": patch
---

Add 'unary steps' concept to codebase and refactor to using new executeV2
execution method which leverages them. Backwards compatibility maintained, but
users should move to executeV2.
27 changes: 12 additions & 15 deletions grafast/dataplan-json/src/steps/jsonParse.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import chalk from "chalk";
import type {
AccessStep,
ExecutionDetails,
GrafastResultsList,
GrafastValuesList,
PromiseOrDirect,
} from "grafast";
import { access, ExecutableStep, exportAs } from "grafast";
Expand Down Expand Up @@ -53,33 +53,30 @@ export class JSONParseStep<
return access(this, [index]);
}

execute(
count: number,
values: [GrafastValuesList<string>],
): GrafastResultsList<TJSON> {
const result: Array<PromiseOrDirect<TJSON>> = []; // new Array(count);
const list = values[0];
for (let i = 0; i < count; i++) {
const v = list[i];
executeV2({
indexMap,
values: [stringDep],
}: ExecutionDetails<[string]>): GrafastResultsList<TJSON> {
return indexMap<PromiseOrDirect<TJSON>>((i) => {
const v = stringDep.at(i);
if (typeof v === "string") {
try {
result[i] = JSON.parse(v);
return JSON.parse(v);
} catch (e) {
result[i] = Promise.reject(e);
return Promise.reject(e);
}
} else if (v == null) {
result[i] = null as any;
return null as any;
} else {
result[i] = Promise.reject(
return Promise.reject(
new Error(
`JSONParseStep: expected string to parse, but received ${
Array.isArray(v) ? "array" : typeof v
}`,
),
);
}
}
return result;
});
}
}

Expand Down
6 changes: 5 additions & 1 deletion grafast/dataplan-pg/__tests__/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -569,5 +569,9 @@ export const assertErrorsMatch = async (
): Promise<void> => {
const { errors: errors1 } = await result1;
const { errors: errors2 } = await result2;
expect(errors2).toEqual(errors1);
const toJSON = (obj) =>
typeof obj.toJSON === "function" ? obj.toJSON() : obj;
const jsonified1 = errors1 ? errors1.map(toJSON) : errors1;
const jsonified2 = errors2 ? errors2.map(toJSON) : errors2;
expect(jsonified1).toEqual(jsonified2);
};
Original file line number Diff line number Diff line change
Expand Up @@ -81,25 +81,25 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 14, 28<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 14, 28<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 14, 28, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17 bucket2
Bucket3("Bucket 3 (defer)<br />Deps: 16, 14, 28"):::bucket
Bucket3("Bucket 3 (defer)<br />Deps: 14, 28, 16"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3,PgClassExpression23,PgClassExpression29 bucket3
Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 14, 23, 29, 28<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 14, 28, 23, 29<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,PgSelect30 bucket4
Bucket5("Bucket 5 (listItem)<br />Deps: 14<br /><br />ROOT __Item{5}ᐸ30ᐳ[31]"):::bucket
classDef bucket5 stroke:#7fff00
class Bucket5,__Item31,PgSelectSingle32 bucket5
Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
classDef bucket6 stroke:#ff1493
class Bucket6,PgClassExpression33,PgClassExpression34,PgSelect35,First39,PgSelectSingle40 bucket6
Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 40<br /><br />ROOT PgSelectSingle{6}ᐸusersᐳ[40]"):::bucket
classDef bucket7 stroke:#808000
class Bucket7,PgClassExpression41,PgClassExpression42 bucket7
Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 46, 48, 49, 47, 45<br />2: PgSelect[50]<br />ᐳ: First[54], PgSelectSingle[55]"):::bucket
Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 46, 48, 49, 47, 45<br />2: PgSelect[50]<br />ᐳ: First[54], PgSelectSingle[55]"):::bucket
classDef bucket8 stroke:#dda0dd
class Bucket8,PgCursor45,PgClassExpression46,List47,PgClassExpression48,PgClassExpression49,PgSelect50,First54,PgSelectSingle55 bucket8
Bucket9("Bucket 9 (nullableBoundary)<br />Deps: 55<br /><br />ROOT PgSelectSingle{8}ᐸusersᐳ[55]"):::bucket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,13 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 14, 28<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 14, 28<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 14, 28, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17 bucket2
Bucket3("Bucket 3 (defer)<br />Deps: 16, 14, 28"):::bucket
Bucket3("Bucket 3 (defer)<br />Deps: 14, 28, 16"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3,PgClassExpression23,PgClassExpression29 bucket3
Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 14, 23, 29, 28<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 14, 28, 23, 29<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,PgSelect30 bucket4
Bucket5("Bucket 5 (listItem)<br />ROOT __Item{5}ᐸ30ᐳ[31]"):::bucket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,25 +81,25 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 28, 14<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 28, 14<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 28, 14, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17 bucket2
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 16, 28, 14<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 28, 14, 16<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3,PgClassExpression23,PgClassExpression29 bucket3
Bucket4("Bucket 4 (defer)<br />Deps: 14, 23, 29, 28"):::bucket
Bucket4("Bucket 4 (defer)<br />Deps: 14, 28, 23, 29"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,PgSelect30 bucket4
Bucket5("Bucket 5 (listItem)<br />Deps: 14<br /><br />ROOT __Item{5}ᐸ30ᐳ[31]"):::bucket
classDef bucket5 stroke:#7fff00
class Bucket5,__Item31,PgSelectSingle32 bucket5
Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
classDef bucket6 stroke:#ff1493
class Bucket6,PgClassExpression33,PgClassExpression34,PgSelect35,First39,PgSelectSingle40 bucket6
Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 40<br /><br />ROOT PgSelectSingle{6}ᐸusersᐳ[40]"):::bucket
classDef bucket7 stroke:#808000
class Bucket7,PgClassExpression41,PgClassExpression42 bucket7
Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 46, 48, 49, 47, 45<br />2: PgSelect[50]<br />ᐳ: First[54], PgSelectSingle[55]"):::bucket
Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 46, 48, 49, 47, 45<br />2: PgSelect[50]<br />ᐳ: First[54], PgSelectSingle[55]"):::bucket
classDef bucket8 stroke:#dda0dd
class Bucket8,PgCursor45,PgClassExpression46,List47,PgClassExpression48,PgClassExpression49,PgSelect50,First54,PgSelectSingle55 bucket8
Bucket9("Bucket 9 (nullableBoundary)<br />Deps: 55<br /><br />ROOT PgSelectSingle{8}ᐸusersᐳ[55]"):::bucket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,13 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 28, 14<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 28, 14<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 28, 14, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17 bucket2
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 16, 28, 14<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 28, 14, 16<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3,PgClassExpression23,PgClassExpression29 bucket3
Bucket4("Bucket 4 (defer)<br />Deps: 14, 23, 29, 28"):::bucket
Bucket4("Bucket 4 (defer)<br />Deps: 14, 28, 23, 29"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,PgSelect30 bucket4
Bucket5("Bucket 5 (listItem)<br />ROOT __Item{5}ᐸ30ᐳ[31]"):::bucket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,31 +87,31 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 28, 14<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 28, 14<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 28, 14, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17,PgClassExpression23,PgClassExpression29 bucket2
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 28, 14, 23, 29<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3 bucket3
Bucket4("Bucket 4 (defer)<br />Deps: 14, 23, 29, 28"):::bucket
Bucket4("Bucket 4 (defer)<br />Deps: 14, 28, 23, 29"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,PgSelect30 bucket4
Bucket5("Bucket 5 (listItem)<br />Deps: 14<br /><br />ROOT __Item{5}ᐸ30ᐳ[31]"):::bucket
classDef bucket5 stroke:#7fff00
class Bucket5,__Item31,PgSelectSingle32 bucket5
Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
Bucket6("Bucket 6 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{5}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
classDef bucket6 stroke:#ff1493
class Bucket6,PgClassExpression33,PgClassExpression34,PgSelect35,First39,PgSelectSingle40 bucket6
Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 40<br /><br />ROOT PgSelectSingle{6}ᐸusersᐳ[40]"):::bucket
classDef bucket7 stroke:#808000
class Bucket7,PgClassExpression41,PgClassExpression42 bucket7
Bucket8("Bucket 8 (defer)<br />Deps: 14, 23, 29, 28"):::bucket
Bucket8("Bucket 8 (defer)<br />Deps: 14, 28, 23, 29"):::bucket
classDef bucket8 stroke:#dda0dd
class Bucket8,PgSelect43 bucket8
Bucket9("Bucket 9 (listItem)<br />Deps: 14<br /><br />ROOT __Item{9}ᐸ43ᐳ[44]"):::bucket
classDef bucket9 stroke:#ff0000
class Bucket9,__Item44,PgSelectSingle45 bucket9
Bucket10("Bucket 10 (nullableBoundary)<br />Deps: 45, 14<br /><br />ROOT PgSelectSingle{9}ᐸmessagesᐳ[45]<br />1: <br />ᐳ: 47, 49, 50, 48, 46<br />2: PgSelect[51]<br />ᐳ: First[55], PgSelectSingle[56]"):::bucket
Bucket10("Bucket 10 (nullableBoundary)<br />Deps: 14, 45<br /><br />ROOT PgSelectSingle{9}ᐸmessagesᐳ[45]<br />1: <br />ᐳ: 47, 49, 50, 48, 46<br />2: PgSelect[51]<br />ᐳ: First[55], PgSelectSingle[56]"):::bucket
classDef bucket10 stroke:#ffff00
class Bucket10,PgCursor46,PgClassExpression47,List48,PgClassExpression49,PgClassExpression50,PgSelect51,First55,PgSelectSingle56 bucket10
Bucket11("Bucket 11 (nullableBoundary)<br />Deps: 56<br /><br />ROOT PgSelectSingle{10}ᐸusersᐳ[56]"):::bucket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,13 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 28, 14<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 28, 14<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 28, 14, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17,PgClassExpression23,PgClassExpression29 bucket2
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 28, 14, 23, 29<br /><br />ROOT Connectionᐸ24ᐳ[28]"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3 bucket3
Bucket4("Bucket 4 (defer)<br />Deps: 14, 23, 29, 28"):::bucket
Bucket4("Bucket 4 (defer)<br />Deps: 14, 28, 23, 29"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,PgSelect30 bucket4
Bucket5("Bucket 5 (listItem)<br />ROOT __Item{5}ᐸ30ᐳ[31]"):::bucket
Expand All @@ -97,7 +97,7 @@ graph TD
Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 40<br /><br />ROOT PgSelectSingle{6}ᐸusersᐳ[40]"):::bucket
classDef bucket7 stroke:#808000
class Bucket7,PgClassExpression41,PgClassExpression42 bucket7
Bucket8("Bucket 8 (defer)<br />Deps: 14, 23, 29, 28"):::bucket
Bucket8("Bucket 8 (defer)<br />Deps: 14, 28, 23, 29"):::bucket
classDef bucket8 stroke:#dda0dd
class Bucket8,PgSelect43 bucket8
Bucket9("Bucket 9 (listItem)<br />ROOT __Item{9}ᐸ43ᐳ[44]"):::bucket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,25 +112,25 @@ graph TD
Bucket1("Bucket 1 (listItem)<br />Deps: 14, 28<br /><br />ROOT __Item{1}ᐸ11ᐳ[15]"):::bucket
classDef bucket1 stroke:#00bfff
class Bucket1,__Item15,PgSelectSingle16,Constant59 bucket1
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 16, 14, 28, 59<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 14, 28, 59, 16<br /><br />ROOT PgSelectSingle{1}ᐸforumsᐳ[16]"):::bucket
classDef bucket2 stroke:#7f007f
class Bucket2,PgClassExpression17 bucket2
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 16, 14, 28, 59<br /><br />ROOT Connectionᐸ24ᐳ[28]<br />1: <br />ᐳ: 23, 29, 58<br />2: PgSelect[30], PgSelect[73]<br />ᐳ: 62, 63, 65, 66, 68, 69, 71, 72, 74, 75, 76, 64, 70"):::bucket
Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 14, 28, 59, 16<br /><br />ROOT Connectionᐸ24ᐳ[28]<br />1: <br />ᐳ: 23, 29, 58<br />2: PgSelect[30], PgSelect[73]<br />ᐳ: 62, 63, 65, 66, 68, 69, 71, 72, 74, 75, 76, 64, 70"):::bucket
classDef bucket3 stroke:#ffa500
class Bucket3,PgClassExpression23,PgClassExpression29,PgSelect30,PgPageInfo58,First62,PgSelectSingle63,PgCursor64,PgClassExpression65,List66,Last68,PgSelectSingle69,PgCursor70,PgClassExpression71,List72,PgSelect73,First74,PgSelectSingle75,PgClassExpression76 bucket3
Bucket4("Bucket 4 (listItem)<br />Deps: 14<br /><br />ROOT __Item{4}ᐸ30ᐳ[31]"):::bucket
classDef bucket4 stroke:#0000ff
class Bucket4,__Item31,PgSelectSingle32 bucket4
Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[32]"):::bucket
Bucket5("Bucket 5 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[32]"):::bucket
classDef bucket5 stroke:#7fff00
class Bucket5 bucket5
Bucket6("Bucket 6 (defer)<br />Deps: 32, 14<br /><br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
Bucket6("Bucket 6 (defer)<br />Deps: 14, 32<br /><br />1: <br />ᐳ: 33, 34<br />2: PgSelect[35]<br />ᐳ: First[39], PgSelectSingle[40]"):::bucket
classDef bucket6 stroke:#ff1493
class Bucket6,PgClassExpression33,PgClassExpression34,PgSelect35,First39,PgSelectSingle40 bucket6
Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 40<br /><br />ROOT PgSelectSingle{6}ᐸusersᐳ[40]"):::bucket
classDef bucket7 stroke:#808000
class Bucket7,PgClassExpression41,PgClassExpression42 bucket7
Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 32, 14<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 46, 48, 49, 47, 45<br />2: PgSelect[50]<br />ᐳ: First[54], PgSelectSingle[55]"):::bucket
Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 14, 32<br /><br />ROOT PgSelectSingle{4}ᐸmessagesᐳ[32]<br />1: <br />ᐳ: 46, 48, 49, 47, 45<br />2: PgSelect[50]<br />ᐳ: First[54], PgSelectSingle[55]"):::bucket
classDef bucket8 stroke:#dda0dd
class Bucket8,PgCursor45,PgClassExpression46,List47,PgClassExpression48,PgClassExpression49,PgSelect50,First54,PgSelectSingle55 bucket8
Bucket9("Bucket 9 (nullableBoundary)<br />Deps: 55<br /><br />ROOT PgSelectSingle{8}ᐸusersᐳ[55]"):::bucket
Expand Down
Loading

0 comments on commit a858c13

Please sign in to comment.