新函数:MAP_KEYS 可能与类似命名的 UDFs 冲突¶
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(...);
参考:1430