[2/2] fix(parser): SQLite $name parameters (Microsoft.Data.Sqlite / EF ADO compat)#2
Merged
dmitrat merged 16 commits intoJun 13, 2026
Conversation
Expose witdb_open/get/put/delete/txn via NativeAOT for pywitdb ctypes; include smoke harness and witdb.h.
SQLite-compat: IN/NOT IN, EXISTS, and FROM subqueries use full queryExpression so CASA-style prune DELETE works.
Extend WitDb native C ABI for SQL helpers; refresh smoke harness and parser tests.
3 tasks
Multi-target net9/net10 builds race on Maven Central jar downloads in GitHub Actions (Antlr4BuildTasks #99). Point AntlrProbePath at a checked-in antlr4-4.13.1-complete.jar and assert it in CI.
AntlrProbePath file URI with parent segments did not resolve on GitHub Actions; use explicit GetFullPath to build/antlr/antlr4-4.13.1-complete.jar.
DisposeAsync cancelled workers before pending channel items were flushed, causing DisposeWaitsForPendingFlushesTest to fail on CI.
4acaa59 to
d9c9cad
Compare
3 tasks
d9c9cad to
26889d9
Compare
Antlr4BuildTasks reads jar path from Antlr4 item metadata; PropertyGroup alone left net10.0 with an empty jar on Linux.
Match flusher fix: wait for workers after channel complete, then cancel CTS.
Path.GetFileNameWithoutExtension failed for C:\\ paths on ubuntu-latest CI runners.
26889d9 to
7102949
Compare
Cancellation exited the merge loop without flushing queued buffers; finally block drains pending writes.
ItemDefinitionGroup after Antlr4 items left metadata empty on clean CI builds.
7d2542f to
18e33be
Compare
PARAM_DOLLAR_NAMED is lexed before $n numbered params; evaluator and serializer round-trip $paramName for Microsoft.Data.Sqlite compat.
ADO $id placeholders no longer become @$id in execution context.
Includes Forge-style MigrationHistory WHERE MigrationId = $id scenario.
18e33be to
0df9b79
Compare
Contributor
Author
|
Perf CI gate is handled in PR #3 (Category=Performance excluded; thresholds not relaxed). This PR does not change INSERT/engine hot paths. |
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
PARAM_DOLLAR_NAMEDin WitSQL lexer/parser ($iddistinct from numbered$1).ParameterType.DollarNamedthrough visitor, evaluator, and serializer.@/:/$prefixes in engine parameter binding (WitSqlParameterKeys) so ADO$idmaps correctly.__EFMigrationsHistorypattern).Motivation
Microsoft.Data.Sqlite / EF ADO uses
WHERE col = $idplaceholders. WitSQL previously threwWitSqlParsingExceptionon$name. Downstream (Agent Forge) worked around this with inline literals in migration history checks.Merge order
Step 2 of 2 — merge after [1/2] CI stabilization → #3
Test plan
dotnet test OutWit.slnx --configuration Release(local)$name$1numbered params unchanged