Repository navigation
feat(sql): support streaming IN subquery membership - #2537
Draft
1932819331hy-debug wants to merge 7 commits into
Draft
1932819331hy-debug wants to merge 7 commits into
1932819331hy-debug wants to merge 7 commits into
Conversation
|
|
This branch has not been deployed
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.
Summary
Implements the dynamic subquery portion of #1659: uncorrelated streaming
WHERE ... IN (SELECT ...)andNOT IN, including boolean combinations and multiple membership inputs.Draft: not ready to merge. The current all-features CI gets past the original
timecompiler blocker, then fails on 30 generated-code lint diagnostics indozer-types; formatting and Cargo Deny have not run to completion. No check was weakened, and this PR makes no bounty/payment claim.Behavior
Limits: in-memory state without new checkpoint recovery/eviction; right changes scan retained outer rows and clone state. Membership inputs require one compatible typed column, with the documented NULL exception. TTL/window/lifetime inputs and unsupported scalar-embedded forms are rejected. See
dozer-sql/STREAMING_IN.md.Exact validation
Current HEAD:
5075a022ac8d6e2e15119fe2994f93ec438be189Current tree:
54ff00852e816ed290be76075ea097e0ccc50304The passing affected-package results below are historical evidence for the feature commit and its original dependency graph, not a rerun of the current compatibility graph.
Feature commit:
b407582b17f8fc9625735eb7483a6d9a33829769Tree:
77facdd1933ce97219310311f6bf0490f75a4d07Clean default affected-package suites: core 43 passed, SQL 247 passed / 1 pre-existing ignored, expression 30 passed. Doc-test targets contained zero tests. The ignored
test_wrong_nested_aggregationswas not run.Tests include actual DAG construction/source wiring and actual processor event outputs, with 49 independently generated SQLite snapshot expectations. They are not a full asynchronous external-source replay.
Separate bounded review reproduced and drove fixes for volatile visibility, Dynamic source qualifiers, nested CTE shadowing and CTE result binding. Its two additional controls passed (SQL 249 + the same ignored test), checking full schema/key/nullability and unchanged operation forwarding; these review-only tests are separate from the frozen commit.
CI status and compatibility changes
Historical baseline comparison
Both original
Dozer CIruns failed in Clippy with Rust 1.99.1, compiling lockedtime 0.3.34: E0282 atformat_description/parse/mod.rs:83(Box<_>inference). Cargo.lock, Cargo.toml and the workflow were byte-identical between those two historical inputs.Current compatibility candidate
The compatibility follow-up commits leave the SQL implementation unchanged:
30fce125: normal Cargo-generated precise update totime 0.3.47and its resolved dependency closure. The lock delta changes eight package versions and addsserde_coreand a parallelsyn 3entry; 925 other package entries retain their versions, checksums and dependency lists. Cargo also emits lock format 4 and normalizes two Git branch URL encodings without changing their pinned commits. This is a bounded compatibility resolution, not a claim that no smaller valid dependency graph exists.8f228d83: supplies the existing Cargo Deny action's supportedrust-version: "1.99.1"input, aligning its separate container toolchain with the Rust version observed in the original runner. The action version, checks, commands,deny.toml, triggers and permissions are unchanged.f5f26dc: fixes 19 tracked-source diagnostics in fivedozer-typesfiles: attribute spacing, unused imports, redundant lifetimes/default matches/return, and an explicit elidedCowlifetime. Rustfmt also corrects the two previously documented GAT wraps in that same source slice. No lint suppression is added.5075a02: updates onlyasync-trait 0.1.78 -> 0.1.92using normal Cargo resolution. Its upstream fix removes a redundant generatedmust_useattribute while preserving unused-Future diagnostics. The other 936 locked package entries are unchanged from8f228d83.First compatibility CI, exact 8f228d83 passed the previous
timeE0282 point, then failed on 79 diagnostics: 19 in tracked source files byte-identical to the base, and 60 in generated protobuf code.Current original Dozer CI, exact 5075a02 completed with failure. It compiled
async-trait 0.1.92, checkedtime 0.3.47, and confirms that the 49 targeted source/macro diagnostics are gone. Clippy exited 101 with the remaining 30 generatedresult_large_errdiagnostics, all involving the existingtonic::Statustype. No other diagnostic category appeared before this stopping point; this does not establish that the rest of workspace/all-features Clippy passes.The subsequent fmt and Cargo Deny steps were skipped. The supported deny-container input and full advisory/license checks remain runtime-unverified. Changed-file rustfmt and four bounded std-only source controls passed locally; those controls compare extracted conversion/default/name logic and illustrate the explicit lifetime, rather than running the full package or generated-code suites. The historical affected-package suites above have not been rerun on this dependency graph. No tonic migration, warning suppression, service-backed coverage, performance or persistence/restart test is included.
Reproducible demonstration
Demo video, transcript and replayable patches · Direct MP4 download
The video replays a genuine local synthetic Rust-test transcript, including the historical baseline failure and 13 incremental processor assertions. It is not a live-database screen recording. Supporting test-only patches and the transcript are supplied on a separate documentation branch without adding demonstration artifacts to this PR branch.
Authorship and CLA
This is AI-assisted work. The three original commits retain their
Codex <codex@openai.com>author/committer metadata; it has not been rewritten to imply a personal signature. The submitting user reports accepting the linked Dozer CLA on the official site. The CLA bot's association with these actual committers is still to be verified; no green bot status is claimed.The repository CONTRIBUTING.md was checked. Its linked detailed contribution guide returned HTTP404 during preparation, so additional requirements there could not be verified.