新函数:MAP_KEYS 可能与类似命名的 UDFs 冲突

注意

此行为变更在 2023_08 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

Snowflake 引入了一个名为 MAP_KEYS的新函数。如果具有名为 UDF 的 MAP_KEYS,则调用函数会产生以下影响:

变更前:

调用名为 MAP_KEYS 的 UDF 将解析到 UDF。

变更后:

对名为 MAP_KEYS 的 UDF 的调用解析到了新的内置 MAP_KEYS 函数,且调用失败,并显示以下错误:

Invalid argument types for function 'MAP_KEYS' ...

调用 UDF 失败的原因是传给 UDF 的实参与内置函数所期望的实参不匹配。

为避免 UDF 的调用被解析为内置函数,可以采取以下两种方法:

  • 重命名 UDF(使用 ALTER FUNCTION ...RENAME TO ...),并将对原始 UDF 名称的所有引用替换为新名称。

  • 通过指定包含 UDF 的数据库和架构的名称,完全限定对 UDF 的所有引用。例如:

    SELECT my_database.my_schema.map_keys(...);
    
    Copy

参考:1430

语言: 中文