Skip to content

WIP: joins, column transforms, JSON array support (#4, #11, #5) - #13

Draft
fahadsiddiqui wants to merge 2 commits into
mainfrom
feat/join-transforms-json-wip
Draft

fahadsiddiqui wants to merge 2 commits into
mainfrom
feat/join-transforms-json-wip

Conversation

@fahadsiddiqui

Copy link
Copy Markdown
Member

Summary

Working through the open feature/test issues (#4-#12). This PR is a WIP snapshot, not ready to merge.

  • feat: Join operations (inner, left, right, outer) #4 Join operations — done. Join/JoinOn, all four join types, composite keys, int/float key coercion, deterministic ordering, column-collision suffixing, benchmarked (~3ms for a 100k×10k inner join).
  • feat: column derivation & transforms (Apply, Map, FillNA, DropNA) #11 Column transforms — done. Apply/Map/FillNA/DropNA with derived-column type inference and panic-safe user callbacks.
  • feat: JSON array ([{...}]) read/write support #5 JSON array read/write — in progress. Tests written, jsonl.go refactored to share its decode/build logic, but json.go itself isn't written yet — the package does not currently build on this branch.
  • Bug fix found along the way: SafeOperation never actually recovered panics (recover() was called from a helper, not directly by the deferred func, where Go treats it as a no-op). Fixed and tested.

Full status, what's left, and how to resume is in docs/PROGRESS.md.

Test plan

Implements #4 (Join/JoinOn, all four join types, composite keys,
deterministic ordering, benchmarked) and #11 (Apply/Map/FillNA/DropNA)
in full, with tests and README/CHANGELOG updates.

Also fixes a real bug found while testing panic paths: SafeOperation
never actually recovered panics because recover() was called from a
helper invoked by the deferred closure, where Go treats it as a no-op.

#5 (JSON array read/write) is mid-flight: json_test.go is written and
jsonl.go has been refactored to expose shared, format-neutral
decode/build helpers, but json.go itself isn't written yet, so the
package does not currently build. See docs/PROGRESS.md for the full
status and next steps across all in-scope issues (#4-#12).
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