UDF 中的延迟名称解析

Posted

技术标签:

【中文标题】UDF 中的延迟名称解析【英文标题】:Deferred name resolution in UDF 【发布时间】:2010-11-26 09:20:26 【问题描述】:

实际上延迟名称解析是关于存储过程中的表。但我注意到有时我可以创建引用不存在的 UDF 的 UDF,在其他情况下我不能。当允许不存在的 UDF 名称和不允许时,我没有发现任何提及。

它不依赖于 UDF 类型(标量/表值)。看起来如果 UDF 返回 XML,它不允许引用不存在的 UDF。

所以我有点困惑。有什么规定吗?

附:这些视图尚未绑定到架构,没有 SCHEMABINDING

【问题讨论】:

我当然可以创建引用不存在的表和 UDF 的 UDF,它们返回 XML,没有警告,所以我认为那一点是红鲱鱼。您能否尝试发布一些有效的样本和无效的样本(最好是小样本)。 【参考方案1】:

延迟名称解析不起作用的明显原因是该函数是使用“WITH SCHEMABINDING”选项创建的。因为此选项会导致在系统表中创建条目,因此您无法删除函数所依赖的对象,如果依赖对象不存在,它将失败。

【讨论】:

+1。当然,这让 ALTER 的生活变得“复杂”,据称这是通常的抱怨。我们一直使用它

以上是关于UDF 中的延迟名称解析的主要内容,如果未能解决你的问题,请参考以下文章

用于 BigQuery UDF 的纯 javascript HTML 解析器

使用 UDF 从 PySpark Dataframe 解析嵌套的 XML 字段

使用 UDF 在 Pig 中解析 XML 文件

Hive ua 解析器 UDF 给出 IOException

Hive UDF - 解析 IP 地址时非常慢

带有datafu的apache PIG:无法解析UDF