feat(cubeorchestrator): Use Arrow format for CubeStore response format#10949
feat(cubeorchestrator): Use Arrow format for CubeStore response format#10949ovr wants to merge 13 commits into
Conversation
|
Claude finished @ovr's task in 4m 41s —— View job Code Review: Arrow Format for CubeStore Response
SummaryWell-structured PR that adds Arrow IPC stream decoding into the existing columnar Issues Found1 High-severity bug, 2 medium items, rest are low/informational.
What's done well
Testing gaps
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #10949 +/- ##
=======================================
Coverage 83.32% 83.32%
=======================================
Files 255 255
Lines 77261 77261
=======================================
Hits 64379 64379
Misses 12882 12882
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
17ec119 to
38ab4f2
Compare
|
Claude finished @ovr's task in 4m 13s —— View job Code Review: Arrow Format for CubeStore Response (Re-review after 6 commits)
SummaryGood iteration on the previous review. The follow-up commits addressed the key robustness concerns: downcast macros now use Two new issues found in this pass: Issues Found
What improved since last review
Testing observation
|
|
Claude finished @ovr's task in 2m 53s —— View job Code Review: Arrow Format for CubeStore Response (Re-review after 8 commits)
SummaryGood iteration. The latest commit ( Remaining Issue
This was flagged in the previous review and is still present. I've posted an inline comment with a suggested fix. What was resolved since last review
Overall AssessmentThe PR is in good shape. The Arrow IPC decoding path is well-implemented with comprehensive type coverage, safe downcast error handling, and proper backward compatibility. The single remaining issue ( |
7eab593 to
f46307d
Compare
|
Claude finished @ovr's task in 2m 31s —— View job Code Review: Arrow Format for CubeStore Response (Re-review after sync)
SummaryThe branch was rebased (6 commits, down from 8 in the prior review). The good improvements from earlier rounds are preserved — safe downcast handling ( Re-affirmed 2 prior unresolved threads that still apply (both on Issues Found
Both have inline comments with suggested fixes. What's in good shape
Testing observation
|
|
Claude finished @ovr's task in 3m 54s —— View job No new issues found. All 19 prior review threads resolved. PR is ready to merge.Full review details (9 commits, 17 files, +1263/−122)Code Review: Arrow Format for CubeStore Response (Re-review after sync)
Summary9 commits, all previously flagged issues addressed across multiple review rounds. The Arrow IPC decoding path is well-implemented with comprehensive type coverage, safe error handling, and proper backward compatibility. No regressions or new concerns in this pass. What's verified
Previous threadsAll 19 review threads from prior rounds are resolved and fixes confirmed present:
Testing observation
|
|
Claude finished @ovr's task in 3m 43s —— View job No new issues found. All 19 prior review threads remain resolved. PR is ready to merge.Deep review details (9 commits, 17 files, +1263/−122)Code Review: Arrow Format for CubeStore Response (deep re-review)
SummaryThis is the deep pass. The Arrow IPC decoding path is well-implemented with comprehensive type coverage, safe error handling, sensible numeric fidelity, and proper backward compatibility. The "High"-severity concern ( What's verified in this pass
Notes / non-blocking observationsThese are observations only — none warrant a new inline comment, but flagging here for completeness:
Resolved threadsAll 19 prior review threads remain correctly resolved against the current diff. Spot-check on a few key ones:
|
93f3ce6 to
bf39044
Compare
Add QueryResult::from_arrow to decode Arrow IPC stream payloads into the columnar QueryResult, and route the HttpQueryResult (Arrow) command in from_cubestore_fb to it. Arrow temporal columns map to a new dedicated DBResponsePrimitive::Timestamp variant that serializes to the existing ISO-8601 millisecond format.
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2a5e625 to
8f0a966
Compare
|
Claude finished @ovr's task in 52s —— View job No new issues found. PR is ready to merge.Re-review after sync (10 commits, 17 files)
New commit
|
|
Claude finished @ovr's task in 40s —— View job No new issues found. All 19 prior review threads remain resolved. PR is ready to merge.Re-review after sync (1 new commit: `bcda3ca`)
New commit
|
The legacy CubeStore result set carried every value as a string, so numbers always serialized to JSON strings. The Arrow path produces real Int64/UInt64/Float64 primitives that serialized to JSON numbers, which changed the wire shape and broke pre-aggregation snapshots (e.g. "5" -> 5, "0.6666666666666666" -> 0.6666666666666666). Render the numeric DBResponsePrimitive variants via collect_str so the Arrow path matches the legacy string output. f64 Display is the shortest round-tripping form, so values are stable.
|
Claude finished @ovr's task in 46s —— View job No new issues found. PR is ready to merge.Re-review after sync (1 new commit: `a8f7995`)
New commit
|
Add QueryResult::from_arrow to decode Arrow IPC stream payloads into the columnar QueryResult, and route the HttpQueryResult (Arrow) command in from_cubestore_fb to it. Arrow temporal columns map to a new dedicated DBResponsePrimitive::Timestamp variant that serializes to the existing ISO-8601 millisecond format.