6.5.3版本CTE语句和UNION一起使用, 部分子查询结果丢失

Bug 反馈
在6.5.3 版本运行附件里的sql 时, 发现最后UNION 的第一部分统计出的行数为0, 疑似忽略了部分数据?

问题sql.sql (2.4 KB)

个人感觉和tidb遇到一个sql执行的bug 这个帖子的问题很类似, 请问6.5.3 版本是否解决?

EXPLAIN ANALYZE 的的结果如下:
EXPLAIN ANALYZE 结果.xlsx (36.7 KB)

【 TiDB 版本】6.5.3

【看到的非预期行为】
cnt 看到的结果是:
0
29652
【期望看到的行为】
最后的UNION 如何不做, COUNT 两个CTE 分别的行数为
214772
29652
第一个CTE的行数变为0了, 很奇怪.

有其他版本的环境不,可以验证一下是不是别的版本正常。

最新的版本7.5.0,可以验证一下有没有这个问题

你先测试下最新版本还有这个问题不,有的话GitHub上提issue吧,结果错误属于严重bug,确认是bug后会很快修复的,同时会合并到现有的LTS版本中

我看群里已经有人回复了,这个是已知bug,在7.5修复了
TiDB 7.5.0 Release Notes | PingCAP 文档中心

  • 修复当 CTE 被多次引用时,条件下推 CTE 导致结果错误的问题 #47881 @winoros
1 个赞

楼主可以看看这个issue的修复说明,然后也建议在最新版的测试环境验证一下,看起来应该是优化好了

6.5.6修复
TiDB 6.5.6 Release Notes | PingCAP 文档中心

这个有人提过

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。