chore: Upgrade CLP dependency to v0.8.0.#47
chore: Upgrade CLP dependency to v0.8.0.#4720001020ycx wants to merge 3 commits intoy-scope:presto-0.293-clp-connectorfrom
Conversation
…pe/velox into 2026-01-22-update-clp
📝 WalkthroughWalkthroughThe PR updates the CLP dependency version to v0.8.0 in CMake configuration, refines column literal type constraints by removing EpochDateT support from String and Timestamp columns, and switches string value processing from clp::ir to clp::ffi wrapper implementations while maintaining equivalent control flow. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
velox/connectors/clp/search_lib/ir/ClpIrVectorLoader.cpp (1)
120-136: API migration is correct, but the else branch assumesFourByteEncodedTextAst.The namespace and method updates are correct. However, the else branch (lines 128-135) unconditionally calls
get_immutable_view<::clp::ffi::FourByteEncodedTextAst>()without first checkingvalue->is<::clp::ffi::FourByteEncodedTextAst>(). If the value is neither type, this could cause undefined behaviour.Consider adding an explicit type check for safety:
♻️ Suggested improvement
if (value->is<::clp::ffi::EightByteEncodedTextAst>()) { auto decodeResult = value->get_immutable_view<::clp::ffi::EightByteEncodedTextAst>() .to_string(); if (!decodeResult.has_value()) { continue; } jsonString = std::move(decodeResult.value()); - } else { + } else if (value->is<::clp::ffi::FourByteEncodedTextAst>()) { auto decodeResult = value->get_immutable_view<::clp::ffi::FourByteEncodedTextAst>() .to_string(); if (!decodeResult.has_value()) { continue; } jsonString = std::move(decodeResult.value()); + } else { + continue; }
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@CMake/resolve_dependency_modules/spdlog.cmake`:
- Around line 17-18: The file fails the cmake-format check; run the cmake-format
tool on CMake/resolve_dependency_modules/spdlog.cmake and commit the resulting
formatting changes so CI passes. Locate the block that defines
VELOX_SPDLOG_BUILD_SHA256_CHECKSUM (the set(...) line) and reformat the entire
file with the project's cmake-format configuration (e.g., run `cmake-format -i`
or your repo's configured formatter) then add and commit the updated file.
032662b to
38a1b08
Compare
gibber9809
left a comment
There was a problem hiding this comment.
One minor change, but besides that LGTM.
4f4349a to
4d8c2dc
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
velox/connectors/clp/search_lib/archive/ClpArchiveCursor.cpp (1)
170-193: Harmonize timestamp literal-type mappings across cursor implementations.The change correctly aligns
ClpArchiveCursor.cppwith CLP v0.8.0's canonicalLiteralType::TimestampT. However,ClpIrCursor.cppmaps Timestamp columns to onlyFloatT | IntegerT(omittingTimestampT), which creates inconsistency between archive and IR formats. This could cause the same timestamp query to match differently depending on the split type.Additionally, if backward-compat with pre-0.8.0 archives is required, consider whether
LiteralType::EpochDateTshould be handled, as it is still present in CLP v0.8.0. The codebase currently has no EpochDateT references.Update
ClpIrCursor.cppto includeTimestampTin the Timestamp case, or document why the implementations must differ.
Description
9e991abto official releasev0.8.0Checklist
breaking change.
Validation performed
All unit tests passed.
End to end test
SELECT CLP_GET_JSON_STRING() from clp.default.default limit 100Summary by CodeRabbit
Release Notes
Chores
Improvements
✏️ Tip: You can customize this high-level summary in your review settings.