flux-pr-1765
sqlparser-rs (Rust) · W2 · GPT-5.1 Codex Mini
Tests passed. 1/1 commands passed. Strength: strong.
env PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin cargo test --all-featuresPartial score: 1/1
Trajectory
codex · partial order onlyprovider-native trajectory captured; validation and decision steps are appended with coarse ordering only
Quality
Equivalence Reasoning
behavioral
The patch preserves MySQL `LIMIT <offset>, <limit>` formatting, but it does not fully implement the intended model change: `limit_by` remains a separate `Query` field instead of being consolidated into one LIMIT structure. It also appears to lose `LIMIT ALL` (parsed as `None`) because `Standard` is only created when `limit.is_some() || offset.is_some()`, so `LIMIT ALL` without offset is dropped. These are core behavioral/AST intent mismatches.
Code Review
The patch moves toward preserving MySQL comma LIMIT syntax, but it likely does not satisfy the intended change because LIMIT-related information remains split (`limit` enum plus separate `limit_by`) rather than fully consolidated into one structured clause.
The task asks for a single structured LIMIT representation, but `Query` still stores `limit_by` separately from `LimitClause`. This keeps LIMIT semantics split across fields and does not match the intended model.
Comma-style LIMIT is captured in `LimitClause::CommaDelimited`, but `BY` is parsed afterward into a separate field. This allows combinations that the structured clause should prevent, undermining syntax-specific fidelity.
The patch partially migrates from flat fields to an enum but keeps legacy top-level fields, which complicates future parser/formatter evolution and visitor/span logic.