fix(rectification): stream persisted candidate choices

This commit is contained in:
Jesse_Chen
2026-08-04 14:32:09 +08:00
parent 8f6f4f511b
commit 393f352a8d
6 changed files with 92 additions and 4 deletions
@@ -13,6 +13,7 @@ type QueryResult = Readonly<{
type Filter =
| Readonly<{ kind: "eq"; column: string; value: unknown }>
| Readonly<{ kind: "neq"; column: string; value: unknown }>
| Readonly<{ kind: "gt"; column: string; value: unknown }>
| Readonly<{ kind: "in"; column: string; value: readonly unknown[] }>
| Readonly<{ kind: "is"; column: string; value: unknown }>
| Readonly<{ kind: "notContains"; column: string; value: unknown }>;
@@ -176,6 +177,12 @@ class LocalPostgresQueryBuilder implements PromiseLike<QueryResult> {
return this;
}
gt(column: string, value: unknown) {
identifier(column);
this.filters.push({ kind: "gt", column, value });
return this;
}
in(column: string, value: readonly unknown[]) {
identifier(column);
this.filters.push({ kind: "in", column, value });
@@ -257,7 +264,7 @@ class LocalPostgresQueryBuilder implements PromiseLike<QueryResult> {
return `not (${column} @> $${parameters.length})`;
}
parameters.push(databaseValue(types.get(filter.column), filter.value));
return `${column} ${filter.kind === "neq" ? "<>" : "="} $${parameters.length}`;
return `${column} ${filter.kind === "neq" ? "<>" : filter.kind === "gt" ? ">" : "="} $${parameters.length}`;
});
return ` where ${parts.join(" and ")}`;
}