Skip to content

docs(lance-backend): upstream test aggregation — 42/42 across 8 CRUD binaries under SURREAL_TEST_KV=lance#11

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/phase-2-test-aggregation
May 16, 2026
Merged

docs(lance-backend): upstream test aggregation — 42/42 across 8 CRUD binaries under SURREAL_TEST_KV=lance#11
AdaWorldAPI merged 1 commit into
mainfrom
claude/phase-2-test-aggregation

Conversation

@AdaWorldAPI
Copy link
Copy Markdown
Owner

Summary

Adds .claude/lance-backend/UPSTREAM_TEST_RESULTS.md aggregating pass-rate for 8 upstream surrealdb integration test binaries under SURREAL_TEST_KV=lance. Verifies the kv-lance backend (Sprints A–W) end-to-end against real SurrealQL workloads, not synthetic unit tests.

Results

Test binary Pass / Total Wall time Source sprint
create 3 / 3 49.8s Sprint O (#1)
update 2 / 2 36.5s Sprint S (#5)
select 9 / 9 167.8s this sprint (pre-batch)
delete 3 / 3 37.7s this sprint
insert 16 / 16 47.1s this sprint
upsert 2 / 2 50.1s this sprint
merge 1 / 1 0.6s this sprint
relate 6 / 6 1.8s this sprint
total 42 / 42

Zero failures. Zero compile errors.

What this verifies

Every test in the table exercises the full kv-lance path:

SurrealQL parser
    → planner
    → executor
    → Transactable::{get, set, put, putc, del, delc, scan, scanr, commit}
    → Lance MergeInsertBuilder (atomic upsert; Sprint N)
    → BTREE scalar index on `key` (Sprint M)
    → arrow-array 57 RecordBatch → disk via Lance v4.0
    → background optimizer compact_files + cleanup_old_versions (Sprint I)

The combined kv-lance + kv-mem feature set compiles because every tests/*.rs carries #[recursion_limit = "1024"] (Sprints O / S / V). The ndarray dep graph is clean (PR #10) — no [patch.crates-io], no ndarray-stats diamond.

What's NOT yet verified

22 integration test binaries still pending under SURREAL_TEST_KV=lance:

access, alter, asyncevent, auth_limit, cache, changefeeds, complex, define, field, function, future, index, info, live, param, query, remove, script, sequence, table, timeout, util

Each has the recursion_limit attribute already (compiles), so a follow-up sprint can batch them. The most-likely-to-surface-gaps candidates are define / query / index / function — covering schema definitions, complex queries, vector / fulltext indexes, and built-in function execution paths.

Why this matters

Up to this point, kv-lance verification was via:

  • 50+ lance-specific unit tests (kvs::lance::tests)
  • 3 SurrealQL smoke tests (kvs::lance::integration_tests)
  • Property test against HashMap reference (Sprint J)
  • Concurrent OCC tests (Sprint U)
  • Earlier per-file integration verifications (Sprints O, S)

This sprint extends real-workload coverage to 8 CRUD-shaped binaries totaling 42 tests across creation / mutation / read / graph-edge operations — the surface every SurrealDB user touches.

Resolves the "Per-file pass rate aggregation under SURREAL_TEST_KV=lance" deferred item in .claude/lance-backend/KNOWN_DIFFERENCES.md.

Test plan

  • CI doesn't need to re-run these (results are captured); the kv-lance backend has not changed since the runs above.
  • Follow-up sprint will extend the table to cover the remaining 22 test binaries; failures there feed the next batch of compatibility-gap fixes.

Generated by Claude Code

Captures pass-rate for 8 upstream surrealdb integration test
binaries under SURREAL_TEST_KV=lance:

  create  3/3   49.8s    update  2/2   36.5s
  select  9/9  167.8s    delete  3/3   37.7s
  insert 16/16  47.1s    upsert  2/2   50.1s
  merge   1/1    0.6s    relate  6/6    1.8s
  ----------------------------------------------
  total  42/42  zero failures, zero compile errors

Verifies kv-lance backend (Sprints A–W) end-to-end against real
SurrealQL workloads — not synthetic unit tests. Path exercised:

  SurrealQL parser → planner → executor →
  Transactable::{get, set, put, putc, del, delc, scan, scanr, commit}
  → Lance MergeInsertBuilder (atomic upsert; Sprint N) →
  BTREE scalar index (Sprint M) →
  arrow-array 57 RecordBatch → disk via Lance v4.0 →
  background optimizer compact_files + cleanup_old_versions (Sprint I)

Not yet verified: 22 remaining binaries (access, alter, asyncevent,
auth_limit, cache, changefeeds, complex, define, field, function,
future, index, info, live, param, query, remove, script, sequence,
table, timeout, util). Follow-up sprint extends the table.

Resolves 'Per-file pass rate aggregation' deferred item in
KNOWN_DIFFERENCES.md.
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.

2 participants