新函数:ARRAY_FLATTEN 可能与类似命名的 UDFs 冲突¶
在当前的 Snowflake 版本中,Snowflake 引入了一个名为 ARRAY_FLATTEN 的新内置函数。
ARRAY_FLATTEN 将 ARRAYs 的 ARRAY 展平为单个 ARRAY。
如果 ARRAY 的嵌套深度超过两层,则仅删除单层嵌套。
如果输入 ARRAY 是 NULL 或包含任何 NULL 元素,则结果为 NULL。
如果您有一个名为 ARRAY_FLATTEN 的 UDF,则此行为变更具有以下效果:
- 之前:
对 ARRAY_FLATTEN 的调用会解析到 UDF。
- 现在:
对 ARRAY_FLATTEN 的调用将解析到新的内置 ARRAY_FLATTEN 函数。
内置 ARRAY_FLATTEN 函数的运行方式可能与 UDF 不同。
如果记录的新内置 ARRAY_FLATTEN 函数的语义与 UDF 的语义不匹配,则可以执行以下操作之一:
重命名 UDF (使用 ALTER FUNCTION ...RENAME TO ...),并将所有对原始 UDF 名称的引用替换为新名称。
指定包含 UDF 的数据库和架构名以 完全限定 对 UDF 的所有引用。例如:
SELECT my_database.my_schema.array_flatten(...);
参考号:1239