ITPub博客

首页 > 数据库 > 数据库开发技术 > 丁奇:又要吐槽MySQL:小版本升级别搞兼容性问题呀

丁奇:又要吐槽MySQL:小版本升级别搞兼容性问题呀

原创 数据库开发技术 作者:丁奇3306 时间:2024-11-07 10:30:25 0 删除 编辑

本周六直播课《极致性能优化 around MySQL》
进技术交流群方式,见文末海报

====声明===
个人始终觉得越是用的人多,才会发现越多bug.
多发点发现的坑,让用的同学绕着走.
对MySQL 8.x是总体赞的, 9.0不要再拉稀了! 

==正文分割线==
复现方式:MySQL 8.0.19 

> create table t1(d datetime);Query OK, 0 rows affected (0.12 sec)
> insert into t1 values ('2024-11-06 18:00:00+08');ERROR 1292 (22007): Incorrect datetime value: '2024-11-06 18:00:00+08' for column 'd' at row 1

相同的语句在8.0.18就能插入成功, +08用来表示时区信息.

这样就会导致如果在8.0.18之前版本中,
使用了'2024-11-06 18:00:00+08'这个表示法的应用程序,
升级到8.0.19及之后的版本,业务就会报错.

==原因和代码==

先看8.0.19的release note.

为了增加这个支持, 代码里对时间格式的处理代码几乎做了重构. 
重构的代码把“+”之后的格式做了严格限制,必须是HH:MM的格式,不再支持单独数字的格式了.

修改后的代码逻辑:

==讨论==
以前我们理解的MySQL的升级策略是: 
影响正确性的bug,小版本会修复;
会影响兼容性的,都在跨到大版本的时候引入.

这个case就有点不讲唔得了

==例行海豹==

原文作者:丁奇3306;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2024-08-07

  • 博文量
    104
  • 访问量
    44852