chore: Integrate upstream Presto release-0.297-edge10 and adapt CLP connector.#147
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
f80bd10 to
201ee5c
Compare
201ee5c to
f4ba649
Compare
Pull all changes from upstream prestodb/presto branch release-0.297-edge10 at commit d1aa0c3. Velox submodule pointer is retained from our fork (already upgraded separately on branch 2026-02-23-0.297-integration).
43f962b to
9a9bbb6
Compare
...to-clp/src/main/java/com/facebook/presto/plugin/clp/split/filter/ClpSplitFilterProvider.java
Show resolved
Hide resolved
presto-clp/src/test/java/com/facebook/presto/plugin/clp/TestClpQueryBase.java
Outdated
Show resolved
Hide resolved
9a9bbb6 to
70d4b33
Compare
In 0.293, all connectors (Hive, Iceberg, Tpch, and CLP) had their subclass implementations in the same monolithic PrestoToVeloxConnector.cpp. PrestoToVeloxConnector was a single concrete class with one big function containing if/else logic for each connector. In 0.297, upstream refactored it into an abstract base class with pure virtual methods (= 0). There's no longer a single function to add a branch to — each connector must implement its own subclass. That's why ClpPrestoToVeloxConnector is required now. |
70d4b33 to
d53942c
Compare
gibber9809
left a comment
There was a problem hiding this comment.
Approving the changes in the second commit for adapting our code to 0.297.
53cf846 to
b7832df
Compare
33096ca to
9d068e4
Compare
cae7d4b to
37c536e
Compare
2835eda to
2490fc9
Compare
- Extract ClpPrestoToVeloxConnector into its own .h/.cpp files to match the per-connector split introduced in 0.297 - Update CMakeLists.txt and Registration.cpp to include the new file - Update presto-clp pom.xml: bump version to 0.297, update groupId from com.facebook.presto to com.facebook.presto.clp - Fix ClpSplitFilterProvider to use MetadataManager's new signature (rowExpression param added in 0.297) - Fix ClpMetadataDbSetUp to use Paths.get() instead of new File() (required by modernizer-maven-plugin built-in rules) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Drop Java 8 from all workflow matrices (0.297 requires Java 11+); update maven-checks, tests, docs, prestocpp-linux-build-and-unit-test - Update artifact paths and version strings from 0.293 to 0.297-edge10.1-SNAPSHOT in maven-checks - Update all branch references from release-0.293-clp-connector to presto-0.293-clp-connector across all workflows - Restore docker/Dockerfile to 0.293 structure (upstream added presto-function-server which is not built by our CI); update Java 11 -> 17 to match build requirement - Update .gitmodules for velox submodule - Update velox submodule pointer to 0.297-compatible commit - Remove --add-exports=java.base/sun.misc=ALL-UNNAMED from presto-common (causes split-package conflict on JDK 17 Corretto; sun.misc is accessible via jdk.unsupported without explicit export flags) - Disable testMultipleIndependentPersistentCtes and testSimplePersistentCteMultipleUses: both are newly introduced in 0.297-edge10 and fail due to missing native support (key_sampling_percent not implemented in Velox; $operator$hash_code not registered for BIGINT) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2490fc9 to
a8c2341
Compare
8ab0c60
into
y-scope:release-0.297-edge-10-clp-connector
Description
This PR updates Presto from 0.293 to upstream
release-0.297-edge10and adapts the CLP connector to remain compatible.release-0.297-edge10is chosen because it provides 1) compatible fmt version with latest log surgeon and clp library which are the dependencies of the velox, and 2) it contains feature commits where we need for plugin our connectors, namely prestodb#24330 and prestodb#26257.Commit 1 — pulls all changes from upstream
prestodb/prestobranchrelease-0.297-edge10at commitd1aa0c30da8d53d4305315aeed0b8b0e6c99e5d5, with conflict resolution to retain our CLP-related files.Commit 2 — adapts the CLP connector to the Presto 0.297 interface:
Commit 3 — updates CI workflows and build configuration for 0.297 compatibility:
presto-common/pom.xml: Remove--add-exports=java.base/sun.misc=ALL-UNNAMEDbecause on JDK 17 it causes a fatal split-package error (sun.miscis exported by bothjava.baseandjdk.unsupported). Later upstream patch with the same fix.make velox-submodulestep to e2e test jobs because these jobs run on a fresh checkout and need the velox submodule initialised to locate native library paths.format-check/header-check/format-fix/header-fixMakefile targets because upstream 0.297 removed them.release-0.297-edge-10-clp-connector, as it will be our new main branch.TestPrestoNativeClpGeneralQueriesbecause the new upstream CTE tests introduced in 0.297-edge10 require plugins not present in our test environment.clp-connector-unit-testsjob: The existingmaven-checksjob uses-DskipTestsso CLP unit tests were never run in CI. This ensures CI runs CLP unit test.Note for reviewers: Please only review 2nd and 3rd commit. The 2nd commit is relevant to the CLP Presto connector and warrants review, and the 3rd commit is fixing the breaking changes from ci workflow. The 1st commit is a merge commit from the upstream Presto open-source repository.
Checklist
breaking change.
Validation performed
SELECT CLP_GET_JSON_STRING() from clp.default.default limit 100