Skip to content

Commit c9e1fb3

Browse files
committed
fix(fumadb): preserve empty or filter semantics (greptile)
1 parent 958e2ac commit c9e1fb3

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

packages/core/fumadb/src/adapters/drizzle/query.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ export function fromDrizzle(
352352
);
353353
}
354354
if (filter.kind === "or") {
355+
if (filter.items.length === 0) return Drizzle.sql`1 = 0`;
355356
return Drizzle.or(
356357
...filter.items.map((item) => buildJsonFilter(jsonColumn, item)),
357358
);

packages/core/fumadb/src/query/aggregate.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,24 @@ const runSuite = (name: string, makeHarness: () => Promise<Harness>) => {
129129
).toBe(2);
130130
});
131131

132+
it("matches empty composite filter semantics", async () => {
133+
const { orm } = harness;
134+
expect(
135+
await orm.jsonCount("events", {
136+
column: "data",
137+
where: inT1,
138+
filter: { kind: "or", items: [] },
139+
}),
140+
).toBe(0);
141+
expect(
142+
await orm.jsonCount("events", {
143+
column: "data",
144+
where: inT1,
145+
filter: { kind: "and", items: [] },
146+
}),
147+
).toBe(4);
148+
});
149+
132150
it("jsonGroupCount counts distinct values", async () => {
133151
const rows = await harness.orm.jsonGroupCount("events", {
134152
column: "data",

0 commit comments

Comments
 (0)