github-actions[bot] commented on code in PR #69343:
URL: https://github.com/apache/doris/pull/69343#discussion_r4335228948


##########
fe/pom.xml:
##########
@@ -437,7 +437,7 @@ under the License.
              with the SAME paimon jar; a version mismatch silently breaks that 
FE->BE
              deserialization at runtime. These two MUST stay equal — do NOT 
override
              paimon.version per-module. -->
-        <paimon.version>1.4.2</paimon.version>
+        <paimon.version>2.1.0</paimon.version>

Review Comment:
   [P1] Keep catalog query checks for the new file_indexes table
   
   The SDK bump automatically exposes `$file_indexes` through 
`SystemTableLoader.SYSTEM_TABLES`, including on tables with 
`query-auth.enabled=true`. Its FE scan only enumerates partition markers; the 
catalog check happens later in `FileIndexesRead -> FilesSplit.splits -> 
storeTable.newScan().plan()`. Doris drops the catalog loader before that BE 
read, making `CatalogEnvironment.tableQueryAuth` a no-op, while 
`buildBackendTable` transfers the deferred check only for `$files`. 
Consequently, a catalog that allows metadata lookup but denies `authTableQuery` 
still returns file paths and record counts through `t$file_indexes`. Reject 
this system table for query-auth tables or preserve its query-authorization 
contract before removing the loader, and add a denied-query case for it.



##########
fe/fe-connector/fe-connector-paimon/src/main/java/org/apache/doris/connector/paimon/PaimonScanParams.java:
##########
@@ -127,11 +126,11 @@ public final class PaimonScanParams {
     private static final Set<String> PAIMON_READER_SYSTEM_TABLES = 
ImmutableSet.of(
             "audit_log", "binlog", "row_tracking");
 
-    // Not a capability the user selects but a property of where the snapshot 
is resolved: these five
+    // Not a capability the user selects but a property of where the snapshot 
is resolved: these tables
     // pick it inside the BE reader rather than reading what the FE planned. 
See
     // resolvesSnapshotOnBackend for the per-table call chain.
     private static final Set<String> BACKEND_SNAPSHOT_SYSTEM_TABLES = 
ImmutableSet.of(
-            "files", "partitions", "manifests", "statistics", "table_indexes");
+            "files", "file_indexes", "partitions", "manifests", "statistics", 
"table_indexes");

Review Comment:
   [P2] Preserve the file_indexes pin in the JNI source payload
   
   Adding this entry pins the wrapper returned by `tableForBackend`, but the 
normal scan also sends `doris.serialized-system-source` from 
`prepareSystemSource` in `getScanNodeProperties`. That second source never 
receives `pinCatalogSnapshot`. 
`PaimonJniScanner.applyBackendManifestParallelism` always rebuilds from it when 
present, replacing the pinned wrapper. With snapshots 1 and 2 on disk and a 
REST catalog publishing only 1, `t$file_indexes` therefore enumerates snapshot 
2's indexes. Pin the transported source as well, and exercise the actual 
scan-properties/JNI reconstruction path; the new test reads `tableForBackend` 
directly and misses this replacement.



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to