分区列排序异常

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.0
【复现路径】分区列排序
【遇到的问题:问题现象及影响】internal error: unionexec chunk column count mismatch, reg: 43, result: 44
【资源配置】
【附件:截图/日志/监控】

分区列是指分区表的分区字段吗?其他字段排序有问题吗?

抽试了下 where 的那个字段也会有相同的报错,其他字段正常

找到了一个5.2的issue,但是你版本都7.1了,不应该还有这个bug吧?
Internal error when pushdown agg into partitionUnion · Issue #29705 · pingcap/tidb (github.com)

v6.5.0 升级上来的,不知道是不是又引入了。。之前是正常的

升级到 7.1.1 版本,还是会有这个问题

发现不加 limit 的话可以执行,但是加上 limit 还是会有报错。。其他人没有这个问题么

涉及到的 SELECT 语句返回的列数是一致的不?

有些不一致,但同个分区下是可以的,跨分区会有问题

请问 partition key 是如何定义的呢

加不jialimit看看执行计划一样嘛

PARTITION BY RANGE (DateCode)

执行计划贴一下呢。
大概率是使用了 static partition prune mode,试试 dynamic mode 可以执行么动态裁剪模式

改成dynamic mode 对库会不会有什么影响?

7.1版本默认是dynamic mode

我也奇怪,但是翻了文档 估计是统计信息没统计完全


所以还是static mode

不会有什么影响,在高版本上已经默认使用 dynamic mode 了。
改为 dynamic mode 之后需要 analyze table 收集统计信息,才会使用 dynamic mode,不是还是会用 static mode

这是个 bug,后续这个 issue 跟踪:https://github.com/pingcap/tidb/issues/45757

1 个赞

那我还有必要试下dynamic吗