自定义聚合函数 parallel = safe 在 postgres 13.3 中生成语法

Posted

技术标签:

【中文标题】自定义聚合函数 parallel = safe 在 postgres 13.3 中生成语法【英文标题】:Custom aggregate function parallel = safe produces syntax in postgres 13.3 【发布时间】:2021-09-26 03:55:01 【问题描述】:

这会导致并行语法错误

CREATE AGGREGATE public.first (
        sfunc    = public.first_agg,
        basetype = anyelement,
        stype    = anyelement,
        parallel = safe
);

也许是因为这个? https://www.postgresql-archive.org/reate-parallel-aggregate-td5923553.html

我不知道是否有语法变化或什么,如果有,新语法会是什么?

【问题讨论】:

【参考方案1】:

您可以使用the new or the old syntax。新版本中没有BASETYPE,旧版本中没有PARALLEL。在新语法中,您应该将基本类型定义为arg_data_type

CREATE AGGREGATE public.first(anyelement) (
        sfunc    = public.first_agg,
        stype    = anyelement,
        parallel = safe
);

【讨论】:

是的,这很偷偷摸摸:wiki.postgresql.org/wiki/First/last_(aggregate)

以上是关于自定义聚合函数 parallel = safe 在 postgres 13.3 中生成语法的主要内容,如果未能解决你的问题,请参考以下文章

60种特征工程操作:使用自定义聚合函数

SQL Server 自定义聚合函数

加速自定义聚合函数

加速自定义聚合函数

SQL Server 中的自定义聚合函数 (concat)

SqlServer如何用Sql语句自定义聚合函数