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

注意

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

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

在当前的 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(...);
    
    Copy

参考号:1239

语言: 中文