englefly commented on PR #67549:
URL: https://github.com/apache/doris/pull/67549#issuecomment-6162748356
按讨论做了三处修改(commit 见下):
1. **去掉 retryable**:外部表取元数据的临时失败不再"下次重试",而是**普通 invalid 并带原因** `no data
state for <table>
(<cause>)`,与其他失效一样被缓存——因为下一次查询大概率同样失败,重试只会把同一份描述反复重建。`Ctx.retryable`、`GroupStructInfo.retryable/isRetryable/transientStructInfo/TRANSIENT_FAILURE`、`transientFailure(...)`
及其在所有传播点的分支全部移除,语义收敛为"要么 valid,要么 invalid + 原因"。
2. **支持 `LogicalFileScan` / `PhysicalFileScan`**(外表/文件表函数都用它表示):描述成
`S{<表名>}`,数据状态未知(新增
`HboScanDescriptor.ofUnreadableState(table)`,version/rows/分区选择都是 UNKNOWN)。这样
pinned 条目仍然适用,drift 守卫会报"无法比较该 scan"而不是误判 stale;表名同样做 `,`/`}` 分隔符检查。
3. **失效类别写进文档**:在 `GroupStructInfo.valid` 字段上列出了所有失效形态与对应
reason(`unsupported=<Operator>`、`subtree scans=N >
hbo_max_scans_per_group=M`、`delimiter in table name <t>`、memo 结构与 canonical
不匹配(arity/无 memo 边的 consumer/复用子树描述不可得)、`no data state for <t>
(<cause>)`),并注明"节点 group 无法解析"会打印 `no group for <Operator>`。
验证:FE 编译通过、`GroupStructInfoCompositionTest` **7/7** 通过。**外表路径尚未做端到端验证**:本机
BE 现在起不来(它的注册心跳端口被别的进程占着,`ALTER SYSTEM MODIFY BACKEND` 又不接受改端口),无法规划任何需要 scan
的查询;已在提交信息里留下可复现的命令(`select count(*) from local("file_path"="/tmp/zmh_hbo.csv",
"file_format"="csv_with_names")`,测试文件已准备)。BE 可用后我会补:文件表查询出现 `S{...}` token(而不是
`unsupported=...`)、逐字节对比与 `query_p0/hbo` 套件。
--
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]