morningman opened a new pull request, #63641:
URL: https://github.com/apache/doris/pull/63641

   ## Summary
   
   P1 batch A — close out scan-node SPI consolidation while keeping 
migration-period fallbacks in place. Three surgical changes route 
`PluginDrivenExternalTable` first in the nereids translator hot paths so 
already-migrated SPI connectors (JDBC, ES) take the SPI route, while the 
existing `instanceof XExternalTable` chains remain as fallbacks for connectors 
still pending migration (P3–P7).
   
   - **T3** — `PhysicalPlanTranslator.visitPhysicalFileScan`: move the existing 
`PluginDrivenExternalTable` branch from position 8 to position 1; the 7 
connector-specific branches (HMS / Iceberg / Paimon / Trino / MaxCompute / 
LakeSoul / RemoteDoris) stay in place as migration-period fallbacks
   - **T4** — `PhysicalPlanTranslator.visitPhysicalHudiScan`: add a 
`PluginDrivenExternalTable` branch routed to 
`PluginDrivenScanNode.create(...)`, threading `tableSnapshot` + `scanParams` 
through `FileQueryScanNode` setters; `incrementalRelation` flagged as a P3 Hudi 
SPI extension TODO. The new branch is unreachable today (`PhysicalHudiScan` is 
only built for `HMSExternalTable + DLAType.HUDI`), so this is groundwork for P3 
with zero current-day runtime impact
   - **T5** — `LogicalFileScan`: in `computeOutput()`, add a 
`PluginDrivenExternalTable` branch calling new helper 
`computePluginDrivenOutput()` — same shape as `computeIcebergOutput`, using 
`getFullSchema()` + virtualColumns; in `supportPruneNestedColumn()`, add an 
explicit `PluginDrivenExternalTable → false` branch. Both behaviorally 
equivalent for JDBC/ES today since they have no hidden cols and no 
virtualColumns
   
   P1 batch B (T1 — delete 13 legacy `Jdbc*Client` + `JdbcFieldSchema`) is 
deferred to P8 because the 3 fe-core callers — `PostgresResourceValidator`, 
`StreamingJobUtils`, `CdcStreamTableValuedFunction` — are live CDC streaming 
code that requires SPI extension for `getPrimaryKeys` / `getColumnsFromJdbc` / 
`listTables`, which is out of P1 surgical scope.
   
   Background and tracking docs live in `plan-doc/` (Master Plan §3.2 P1, 
tasks/P1-scan-node-cleanup.md, decisions log).
   
   ## Test plan
   
   - [x] `mvn -pl fe-core -am compile -Dmaven.build.cache.enabled=false` → 
BUILD SUCCESS
   - [x] `mvn -pl fe-core checkstyle:check` → 0 violations
   - [x] JDBC + ES regression-test passing — baseline established in P0 / PR 
#63582
   - [ ] PR CI green on this PR
   - [ ] Manual scan-node smoke for an SPI connector — JDBC `SELECT *` should 
fall into the new `PluginDrivenExternalTable` branch first
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


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