语句执行报错

报错内容: 1105 - other error: [components/tidb_query/src/batch/runner.rs:83]: BatchSelectionExecutor: Evaluate error: [components/tidb_query/src/rpn_expr/mod.rs:526]: ScalarFunction Substring3ArgsUtf8 is not supported in batch mode

版本:5.7.25-TiDB-v4.0.0-rc

建表语句:

CREATE TABLE `test1`  (
  `c_no` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
  PRIMARY KEY (`c_no`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
CREATE TABLE `test2`  (
  `c_no` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

执行语句:

select max(substr(c_no,1,10)) from test1;
select max(substr(c_no,1,10)) from test2;

同样的语句,在表1会报错,提示ScalarFunction Substring3ArgsUtf8 is not supported in batch mode。在表2不会报错。两个表的差异就是字段是否为主键。

1 个赞

你好,这个是个已知问题,https://github.com/pingcap/tidb/pull/16389 这个pr fix了

感谢。之前没搜到,还以为发现了一个新的增长点呢:grin:

:ok_hand:,升级到 ga 版本吧,修复了很多 bug

1 个赞

好的,收到

:call_me_hand:

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