You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
4. NULL vs empty blob vs empty string (triple distinction)
139
+
5. Empty blob sync round-trip (Zig -> Oracle)
140
+
6. typeof() verification for empty values
141
+
</details>
142
+
143
+
<details>
144
+
<summary>TASK-129: Fix applied to changes_vtab.zig</summary>
145
+
146
+
**Root cause**: In `fetchColumnValue()` at `zig/src/changes_vtab.zig:1087`, SQLite's `sqlite3_column_blob()` returns `NULL` for zero-length blobs (documented behavior), but `sqlite3_column_type()` correctly returns `SQLITE_BLOB`. When the NULL pointer was passed to `sqlite3_result_blob()`, SQLite interpreted it as a zeroblob request and produced `NULL` output.
147
+
148
+
**Fix**: Modified lines 1087-1104 to detect the empty blob case and pass a static non-NULL pointer with length 0:
# TASK-128: Expand parity suite with invalidation findings
2
+
3
+
## Goal
4
+
Once TASK-127 has identified divergences (invalidating the "full parity" hypothesis), we must expand our regression test suite to cover these edge cases permanently.
5
+
6
+
## Scope
7
+
- Analyze the divergence(s) found in TASK-127.
8
+
- Create deterministic reproduction cases in the appropriate `zig/harness/test-*.sh` script (or create a new one if needed).
9
+
- Fix the divergence in the Zig implementation (if it's a bug) or document it as a known limitation.
10
+
- Verify the fix with the new test case.
11
+
12
+
## Files to Modify
13
+
-`zig/harness/test-*.sh` (existing suites)
14
+
-`zig/src/*.zig` (implementation fixes)
15
+
16
+
## Acceptance Criteria
17
+
-[x] Deterministic regression tests exist for all divergences found in TASK-127.
18
+
-[x] Zig implementation passes these new tests.
19
+
-[x]`make -C zig test-parity` includes these new tests.
0 commit comments