工作流节点使用聚合查询报错 "subquery uses ungrouped column \"t_equitys.tableoid\" from outer query"

* 描述问题

在工作流中,节点需要使用聚合查询,提示:“subquery uses ungrouped column "t_equitys.tableoid" from outer query”

* 运行环境

  • NocoBase 版本: v1.3.28-beta
  • 数据库种类与版本: PostgreSQL
  • 操作系统:MacOS
    -浏览器及版本 :
  • 部署方式:Docker
  • Docker 镜像版本:nocobase/nocobase:latest
  • NodeJS 版本:

如何重现

添加工作流,增加聚合节点,触发聚合节点进行计算。

预期行为

根据字段给出汇总数据。如:SUM()

截图

日志

麻烦贴一下“股权信息表”这张表的字段配置?最好可以也提供一下 SQL 日志,通过环境变量 DB_LOGGING=on 打开。


以上是表字段信息。

以下是系统内sql报错信息。

2024-11-06 06:50:05.924 UTC [10719] ERROR: subquery uses ungrouped column “t_equitys.tableoid” from outer query at character 59
2024-11-06 06:50:05.924 UTC [10719] STATEMENT: SELECT (select relname from pg_class where pg_class.oid = “t_equitys”.tableoid) AS “__tableName”,
(SELECT n.nspname
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE c.oid = “t_equitys”.tableoid)
AS “__schemaName”, sum(“f_shares”) AS “sum” FROM “public”.“t_equitys” AS “t_equitys” WHERE (“t_equitys”.“equitys_id” = 6855 AND “t_equitys”.“f_status” = ‘1’);

我这边本地未能复现,看方便在官方 demo 上搭建一个最小复现么?以便我们尽快排查问题,谢谢!

在复现过程中,发现,我系统新调整后的,触发器数据多了这几个字段,造成异常,但未清楚出现的原因。

目前我在我的test环境也没有复现这个bug,但,在准生产环境出现了这个情况。

需要在工作流触发器参数里出现的三个参数找原因。
“__tableName”: “t_equitys”,
“__schemaName”: “public”,
“__collection”: “t_equitys”

hi all
终于找到这个问题所在。这个异常的原因是我创建了继承表,在表字段汇总的时候,select 了relname,pg_namespace,造成sql提示需要增加group by “t_equitys.tableoid”

demo测试通过的原因是,在测试环境数据库没有增加继承表。

谢谢各位

这,应该是有个不完善的地方。需要在聚合查询的时候,如果是继承表,需要增加是否指定子表聚合选项。如果同时需要查询父表与子表,直接聚合需要字段即可,不需要查询表名以及表空间。