设置会话变量时 MariaDB 类型错误

MariaDB type error when setting session variable

为什么以下查询适用于 Maria DB (10.1.9)...

...但那个不是?

它抛出类型错误:

#1232 - Incorrect argument type to variable 'wait_timeout`

尽管可以通过将 @wait_timeout 替换为 CAST(@@wait_timeout AS INT)CONVERT(@@wait_timeout, SIGNED)(后者也适用于 MySQL)来解决此错误,但我想知道为什么第二个和第三个查询工作。

这是怎么回事? 它不可能是 GREATEST 操作,因为查询 3 有效并且它不可能是不同的变量类型,因为(隐式)转换在查询 2 中会失败(无论如何它应该具有相同的类型)。其他系统变量也会发生同样的事情。

顺便说一句:相同的查询在 MySQL 下工作(在 MySQL 版本 5.6 的 SQLfiddle 中尝试过)所以这是 MariaDB 和 MySQL 之间的不一致。

感谢任何帮助!

正如一些人猜对的那样:这是最近引入的一个错误(现已确认)。

有关更多详细信息,请查看 mariadb 问题跟踪器: https://jira.mariadb.org/browse/MDEV-9516

更新 (2016-03-21)

关于 bugtracker,问题似乎已在 10.1.13 中修复。