hudi-agent commented on code in PR #19642:
URL: https://github.com/apache/hudi/pull/19642#discussion_r3786285268


##########
pom.xml:
##########
@@ -131,7 +131,13 @@
     <hive.parquet.version>1.10.1</hive.parquet.version>
     <hive.avro.version>1.11.4</hive.avro.version>
     <presto.version>0.273</presto.version>
-    <trino.version>481</trino.version>
+    <!-- trino.sha is the exact trinodb/trino commit hudi-trino builds 
against; its project
+         version must equal trino.version and the two advance only together. 
trino.e2e.version is
+         the latest released Trino (e2e server image, trino-jdbc for the integ 
tests). Keep each
+         property on one line: the workflows and 
scripts/trino/bootstrap_trino.sh read them with sed. -->
+    <trino.version>484-SNAPSHOT</trino.version>
+    <trino.sha>5b82ec9e7116ec1ed3a83f4cc2f8cf9aaa87b12f</trino.sha>

Review Comment:
   🤖 Since local m2 artifacts are keyed by `trino.version` (`484-SNAPSHOT`), 
advancing `trino.sha` within the same upstream dev version won't change the 
artifact coordinates. Does `bootstrap_trino.sh` force a clean reinstall so a 
stale `484-SNAPSHOT` from a previous pin can't be silently reused? Worth 
calling out how a pin advance invalidates local m2 — CI keys its cache on the 
sha, but local dev keys on the version string.
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



##########
hudi-trino/src/main/java/io/trino/plugin/hudi/HudiSplitSource.java:
##########
@@ -135,47 +130,32 @@ public HudiSplitSource(
                     queue.finish();
                 });
         this.splitLoaderFuture = 
splitLoaderExecutorService.schedule(splitLoader, 0, TimeUnit.MILLISECONDS);
-        this.dynamicFilter = requireNonNull(dynamicFilter, "dynamicFilter is 
null");
         this.dynamicFilteringWaitTimeoutMillis = 
dynamicFilteringWaitTimeoutMillis.toMillis();
-        this.dynamicFilterWaitStopwatch = Stopwatch.createStarted();
     }
 
     @Override

Review Comment:
   🤖 This rewrites the split-source completion semantics — the in-connector 
dynamic-filter wait/poll loop and the `noMoreSplits` batch flag are gone, 
replaced by an explicit `finished` flag plus 
`getRequestedDynamicFilterWaitTimeoutMillis()`. Since this is a read-path 
behavior change (flagged Medium risk), could you point to the tests covering 
the new `isNone()` → `finished.set(true)` early-termination, and confirm the 
dynamic-filter wait timeout is still honored now that the engine drives it?
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



##########
pom.xml:
##########
@@ -131,7 +131,13 @@
     <hive.parquet.version>1.10.1</hive.parquet.version>
     <hive.avro.version>1.11.4</hive.avro.version>
     <presto.version>0.273</presto.version>
-    <trino.version>481</trino.version>
+    <!-- trino.sha is the exact trinodb/trino commit hudi-trino builds 
against; its project
+         version must equal trino.version and the two advance only together. 
trino.e2e.version is
+         the latest released Trino (e2e server image, trino-jdbc for the integ 
tests). Keep each
+         property on one line: the workflows and 
scripts/trino/bootstrap_trino.sh read them with sed. -->
+    <trino.version>484-SNAPSHOT</trino.version>
+    <trino.sha>5b82ec9e7116ec1ed3a83f4cc2f8cf9aaa87b12f</trino.sha>
+    <trino.e2e.version>483</trino.e2e.version>

Review Comment:
   🤖 The plugin builds at the pinned `trino.version` while the E2E server image 
is `trino.e2e.version`, and the suite auto-skips during SPI drift windows. 
Could you elaborate on how long drift windows are expected to last and what 
validates the connector end-to-end while E2E is paused? A prolonged drift 
window means no real-server coverage, which matters if a release branch is cut 
during one.
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



##########
pom.xml:
##########
@@ -131,7 +131,13 @@
     <hive.parquet.version>1.10.1</hive.parquet.version>
     <hive.avro.version>1.11.4</hive.avro.version>
     <presto.version>0.273</presto.version>
-    <trino.version>481</trino.version>
+    <!-- trino.sha is the exact trinodb/trino commit hudi-trino builds 
against; its project
+         version must equal trino.version and the two advance only together. 
trino.e2e.version is
+         the latest released Trino (e2e server image, trino-jdbc for the integ 
tests). Keep each
+         property on one line: the workflows and 
scripts/trino/bootstrap_trino.sh read them with sed. -->
+    <trino.version>484-SNAPSHOT</trino.version>

Review Comment:
   🤖 Tracking trino master via a pinned SHA + `-SNAPSHOT`, built from source 
with no Maven Central resolution on master, is a notable shift in the 
contributor/CI workflow. Could you add a short 'alternatives considered' note — 
e.g. staying on released Trino with periodic incremental upgrades, or a thinner 
SPI-compat shim — and why continuous drift-tracking won out? It'd also help to 
state who owns advancing the pin and the expected cadence.
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



##########
docker/trino/shim/pom.xml:
##########
@@ -153,9 +154,10 @@
             <scope>provided</scope>
         </dependency>
 
-        <!-- NOTE: unlike the upstream 482-SNAPSHOT shim, jts-core must NOT be
-             declared provided here: it is not part of the Trino 481 SPI 
surface
-             and SpiDependencyChecker rejects provided scope for it. It ships
-             inside the plugin dir at its transitive scope instead. -->
+        <dependency>
+            <groupId>org.locationtech.jts</groupId>
+            <artifactId>jts-core</artifactId>

Review Comment:
   🤖 Flipping `jts-core` to `provided` is tied to it being on the Trino SPI 
surface at this pin — the removed comment noted 481 rejected exactly this. On a 
release branch that pins back to a released Trino, is jts-core guaranteed to 
still be SPI-provided? The pin-back steps in `release_guide.md` don't mention 
re-evaluating this scope, so a release could hit `SpiDependencyChecker` 
failures.
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to