Tidb查询sql在where语句中添加括号,会导致查询的列名字错误

您可以看最后图片,两次执行第二次列名会错误,纯命令行执行的

需要晚上升级尝试下7.5

已经反馈给产研~

7.5没这个问题。dmr生产坏境真不能用…

好的,我本地实验下,然后找机会升级到7.5,想问下您,升级一般需要多长时间呢?
现在有没有临时的处理方案?

我测试坏境升级很快。生产坏境 还没升7.5。 不知道dmr 会不会发补丁。

估计不会,就是想知道为啥这么奇怪的bug,感觉见鬼了,想知道下为啥

这个问题本质上是开启 non-prepared plan cache 时 alias name 错误的问题, 同这个 issue: https://github.com/pingcap/tidb/issues/47133, fix pr: https://github.com/pingcap/tidb/pull/47417 。可以通过 set global tidb_enable_non_prepared_plan_cache=‘OFF’ 来绕过该问题。
LTS 版本影响 7.1.0 - 7.1.3,开启 non-prepared plan cache 会碰到这个问题,不过 lts 上 non-prepared plan cache 是默认关闭的, 7.5.0 上已经修复。
DMR 版本影响 7.2, 7.3, 7.4。 默认情况下 7.4 不存在该问题,是因为 7.4 上默认关闭了 non-prepared plan cache (pr https://github.com/pingcap/tidb/pull/46504)

3 个赞

原来如此,那么看起来这些测试版本本身会有一些实验性质的设置,如果使用了会有意想不到的结果啊

非常感谢,我们找个时间点就升级

开眼界了

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