Skip to content

refactor: decompose row compute execution - #40

Draft
cursor[bot] wants to merge 13 commits into
mainfrom
cursor/code-structure-quality-33b2
Draft

refactor: decompose row compute execution#40
cursor[bot] wants to merge 13 commits into
mainfrom
cursor/code-structure-quality-33b2

Conversation

@cursor

@cursor cursor Bot commented Aug 20, 2026

Copy link
Copy Markdown

Summary

  • Split the Polars row-compute god module into focused plan-apply, predicate, aggregate, and .with expression modules while preserving the public eval_compute_ops API.
  • Removed duplicate MCP live-run span instrumentation and made sequential materialization emit the same step span as parallel materialization.
  • Made Plan.render JSON null binding explicit so null renders as none while remaining falsey for or coalescing.

Validation

  • rustfmt --edition 2021 on touched Rust files
  • git diff --check
  • cargo test -p plasm-runtime row_compute --lib (11 passed)
  • cargo test -p plasm-agent-core compute --lib (16 passed)

Notes

  • VM setup required switching to stable Rust 1.98.0 and installing the documented OpenSSL system headers before agent-core tests could compile.
Open in Web View Automation 

ryan-s-roberts and others added 13 commits August 20, 2026 15:04
Fold postfix chains into a fused RowPlan executed in plasm-runtime, replace the JSON walker, and ship .with{k: expr} with now, len, when, arith (/ and string +), and temporal day diffs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…RowPlan

Document the new .with{col: expr} postfix in the canonical language definition
(EBNF, invariants, pitfalls) and expand plasm-row-compute with expression
semantics, chaining order, disambiguation, and RowPlan/Polars execution notes.
Add glossary entries for .with and RowPlan.

Co-authored-by: Ryan Roberts <ryan-s-roberts@users.noreply.github.com>
Co-authored-by: Ryan Roberts <ryan-s-roberts@users.noreply.github.com>
Remove unused sort/compare helpers and FieldPath accessors; keep graph stream APIs test-only so lib clippy stays clean.

Co-authored-by: Cursor <cursoragent@cursor.com>
Polars owns numeric sort; keep json_scalar_display for template interpolation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Standardize agent/runtime instrumentation, wire sqlx-tracing and HTTP MakeSpan,
and lock parent/child lineage with force-flush tests on real call sites.

Co-authored-by: Cursor <cursoragent@cursor.com>
Align program_param.txt with plasm_tool.txt (.with, dedupe/distinct).
Document dedupe/distinct and .with operator precedence in row-compute
guide; extend language spec binding/suffix/parser tables; fix stale
matrix doc path; add row-compute quick links; note RowPlan execution in
crates index; document OTLP semantic span name contracts in plasm-otel.

Co-authored-by: Ryan Roberts <ryan-s-roberts@users.noreply.github.com>
- List .dedupe/.distinct in plasm_tool.txt Core surface (parity with program_param)
- Clarify .with RowIdentity and chained-RHS continuation in row-compute guide
- Cross-link OTLP semantic span contract from oss-core-trace-artifacts and crates index
- Align language spec binding table with row-compute continuation rules

Co-authored-by: Ryan Roberts <ryan-s-roberts@users.noreply.github.com>
Co-authored-by: Ryan Roberts <ryan-s-roberts@users.noreply.github.com>
Co-authored-by: Ryan Roberts <ryan-s-roberts@users.noreply.github.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.

2 participants