Repository navigation
Refactor internal query events and share execution preparation - #1533
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Database completion and error results currently carry empty row inputs and a zero column count. Replace that internal representation with
Result<QueryEvent>, keeping row inputs and output column counts exclusively on decoded rows and preserving the outwardDbItemstream.Share database fetch timing, span instrumentation, decoding, row counting, and row preparation between scalar and streaming execution. Keep their consumption loops explicit and retain the boundary that releases the database stream's connection borrow before evaluating buffered columns, including nested
sqlpage.run_sqlwith a one-connection pool.Reuse the existing SQL fixture runner and transaction tests for regression coverage:
run_sqlon the runner's one-connection pool. Extend the SQLite scalar fixture with exact duplicate JSON output checks.DbConn.The execution test block shrinks from 227 lines to 49; the other checks use 30 lines of SQL fixtures and small extensions to existing harnesses. No separate setup or row-collection helper remains.
Validation:
cargo fmt --alland formatting check passed.cargo clippy --all-targets --all-features -- -D warningspassed.cargo test --features odbc-staticpassed: 236 unit tests and 89 integration tests with in-memory SQLite. Local fixture servers required running the suite outside the network sandbox.Testing guidance in AGENTS.md and CONTRIBUTING.md now lists the six CI databases and driver requirements, explains numeric JSON, scalar cardinality, variable precedence/NULL, physical-versus-computed column order, and existing fixture conventions. It also requires reusing test structures without losing scenarios. Documentation links and matrix entries were checked against the repository.
CI limitation: Oracle integration assertions were also verified locally against Oracle 23.26.2 / Instant Client 23.26 (all 89 passed), but the process hangs during native driver finalization (
finiSqora -> bccFreeProcess). This also occurs on unchanged base main commit c12c154 (baseline Oracle job). Serial test execution still hangs; no success override, test skip, or timeout relaxation was added. This is not reported as an overall Oracle test pass.