Repository navigation
test(fuzz): fix three flaky generated-data properties #131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -338,6 +338,8 @@ export const evaluate = (plan: Plan, sem: Semantics, fixture: Fixture = coreFixt | |
| const constantRow: Row = { o: coreFixture.orders[0]! } | ||
| for (const e of all) if (constant(e)) evalExpr(env, constantRow, e) | ||
| for (const row of sourceRows(env, fixture)) for (const e of all) evalExpr(env, row, e) | ||
| // A filter pushed below the join reads every order, even one an inner join would drop. | ||
| if (plan.join !== undefined) for (const o of fixture.orders) for (const e of all) evalExpr(env, { o }, e) | ||
|
Comment on lines
+341
to
+342
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Limit the inner-join pre-evaluation to filter expressions. The loop at Only filter expressions pushed below the join need evaluation on all base orders. Restrict the loop to those expressions. Keep projection and aggregate arithmetic evaluated on
|
||
| const filtered = sourceRows(env, fixture).filter((row) => and3(plan.where.map((c) => evalCond(env, row, c))) === true) | ||
| const orgs = new Set(filtered.flatMap((row) => [row.o.OrgId, ...(row.c ? [row.c.OrgId] : [])])) | ||
| const shape = plan.shape | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Warning
negativeModulomisses a negative divisor written as anumexpressionF1 · Warning · correctness
plan.ts:139builds amoddivisor either as a raw number or as a sub-expression like{ k: "num", v: -4 }, andbuild.ts:92writes both through the same literal path. The entry only fires on the raw number, so those union plans still run against ClickHouse 26.2 and fail with3instead of-1.🤖 Prompt to fix with an AI agent