Skip to content

Fix table export row indices across query batches - #1021

Merged
Stephen Griffin (stephenegriffin) merged 7 commits into
mainfrom
fix/882-table-export-row-indices
Oct 21, 2026
Merged

Stephen Griffin (stephenegriffin) merged 7 commits into
mainfrom
fix/882-table-export-row-indices

Conversation

@stephenegriffin

Copy link
Copy Markdown
Member

Summary

Fixes #882.

  • Keep exported row indices continuous across QueryRows batches instead of restarting at zero for each batch.
  • Add 19 persistent native tests for batch boundaries, row-specific properties, Unicode XML, sorting/input preservation, seek/query failures, diagnostics, and allocation cleanup.
  • Use the existing MAPI stub seam for test-only memory functions so the tests need no initialized or installed matching-bitness MAPI provider. No production test hooks are added.

Validation

  • Existing Debug x64 and x86 build tasks pass with no warnings or errors.
  • Complete native suites pass: 271/271 on x64 and 271/271 on x86.
  • Restoring the original batch-local row index makes seven of the new tests fail; restoring the fix makes all tests pass.
  • Comparable native coverage on the same x64 binary, with and without the new tests: outputTable, outputProperties, outputSRow, and outputSRowSet each improve from 0% to 100% line and block coverage; outputProperty improves from 0% to 66.67% line coverage. Across those five production functions, 85/95 lines are fully covered, plus two partially covered lines.

Keep exported row indices monotonic across QueryRows batches, including short batches.

Fixes #882.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Exercise actual XML export across batch boundaries, row payloads, seek and query failures, input preservation, diagnostics, and allocation cleanup. Route only the test exporter's memory calls through the existing MAPI stub seam so both architectures run without initialized native MAPI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Test Results

    8 files  ±  0      8 suites  ±0   50s ⏱️ -1s
  280 tests + 19    280 ✅ + 19  0 💤 ±0  0 ❌ ±0 
2 240 runs  +152  2 240 ✅ +152  0 💤 ±0  0 ❌ ±0 

Results for commit ad4e603. ± Comparison against base commit 2c59cc7.

♻️ This comment has been updated with latest results.

macienMSFT
macienMSFT previously approved these changes Oct 21, 2026
bwittgen
bwittgen previously approved these changes Oct 21, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@stephenegriffin
Stephen Griffin (stephenegriffin) merged commit 44e68ec into main Oct 21, 2026
21 checks passed
@stephenegriffin
Stephen Griffin (stephenegriffin) deleted the fix/882-table-export-row-indices branch October 21, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

table.txt export of Content Table contains repeating row indices

3 participants