Skip to content

docs: add M1a implementation plan and split M1 into M1a-M1c - #19

Open
viethqb wants to merge 1 commit into
mainfrom
docs/p0-m1a-plan
Open

viethqb wants to merge 1 commit into
mainfrom
docs/p0-m1a-plan

Conversation

@viethqb

@viethqb viethqb commented Oct 24, 2026

Copy link
Copy Markdown
Member

Summary

Verification

All code in the plan was built and run before it was written into the plan.

  • Task replay: the tasks were replayed one by one on a clean worktree from main. After each task, fmt, clippy (-D warnings) and all tests passed. The final state has 71 tests: 61 run without Docker and 10 need the environment.
  • Spark comparison: every fixture query (7 in total) returns the same rows over pgwire as in Spark. This covers positional deletes, deletion vectors (PUFFIN), and schema and partition evolution.
  • Manual check: I ran the README example against the binary with psql. SELECT count(*) FROM lake.fixtures.deletion_vectors returns 772.

Known gap, to be added to #12: the engine prints timestamps with six fractional digits, while PostgreSQL omits a zero fraction. The fixture rendering follows the engine.

Refs #8, #16

🤖 Generated with Claude Code

M1 is too large for one plan. M1a covers catalogs, the metadata store
and single-node reads through iceberg-rust's TableScan. M1b covers the
engine's own scan planning and metadata caches. M1c covers the snapshot
diff API and credential refresh. Record the evaluator visibility check
that M1 required as pre-work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant