matrixorigin / matrixone

Hyperconverged cloud-edge native database
https://docs.matrixorigin.cn/en
Apache License 2.0
1.79k stars 277 forks source link

[Refactoring]: Relative() interface improvement #20194

Open qingxinhome opened 2 days ago

qingxinhome commented 2 days ago

Why do you want to refactor this code?

Relation(context.Context, string, any) (Relation, error)
该接口用于获取表关系对象, 该接口除了用于获取目标表的relation对象外,
还用于检测表是否存在, 但是目前该接口的是实现是,当无法获取表的relation对象时,会在内部抛出错误moerr.NewParseErrorf(ctx, "table %q does not exist", name)
这种检测使用时会在Cloud端截获大量的报错日志

Describe the solution you'd like

重构目标: 找到目标表的Relation 对象: 如果根据 tableName 查找到对应的表关系对象,返回return rel, nil 未找目标表的Relation 对象: 如果无法找到表关系对象(例如,表名不存在或没有匹配的记录),return nil, nil, 这表示没有错误发生,但也没有找到有效的对象。 检索的过程中发生错误:return nil, error; 如果在查找过程中发生了任何错误(如无法访问数据库、网络错误等),返回对应的错误。

Describe alternatives you've considered

No response

Additional information

No response