Description:
In MySQL 8.0.42, a specific complex query involving CASE, BETWEEN, and EXISTS clauses causes the server to crash with an assertion failure in sql/item_func.cc. Error Message: mysqld: /home/tzx/mysql-server-mysql-8.0.42/sql/item_func.cc:3937: virtual longlong Item_func_min_max::int_op(): Assertion '!unsigned_flag || !arg_val.is_negative()' failed.
How to repeat:
SELECT t0.c0 AS ref0 FROM t0 WHERE ((('Sazdp') LIKE (273751740)) BETWEEN ((CASE -749309257 WHEN t0.c0 THEN 0.14684209982357677 WHEN t0.c0 THEN NULL WHEN '374833474' THEN NULL ELSE t0.c0 END)) AND ( EXISTS (SELECT 1 wHERE FALSE))) && ((LEAST(t0.c0, t0.c0)) AND ((-2009705112) IN (t0.c0))) UNION ALL SELECT ALL t0.c0 AS ref0 FROM t0 WHERE (NOT (((('Sazdp') LIKE (273751740)) BETWEEN ((CASE -749309257 WHEN t0.c0 THEN 0.14684209982357677 WHEN t0.c0 THEN NULL WHEN '374833474' THEN NULL ELSE t0.c0 END)) AND ( EXISTS (SELECT 1 wHERE FALSE))) && ((LEAST(t0.c0, t0.c0)) AND ((-2009705112) IN (t0.c0))))) UNION ALL SELECT t0.c0 AS ref0 FROM t0 WHERE (((('Sazdp') LIKE (273751740)) BETWEEN ((CASE -749309257 WHEN t0.c0 THEN 0.14684209982357677 WHEN t0.c0 THEN NULL WHEN '374833474' THEN NULL ELSE t0.c0 END)) AND ( EXISTS (SELECT 1 wHERE FALSE))) && ((LEAST(t0.c0, t0.c0)) AND ((-2009705112) IN (t0.c0)))) IS NULL;
Description: In MySQL 8.0.42, a specific complex query involving CASE, BETWEEN, and EXISTS clauses causes the server to crash with an assertion failure in sql/item_func.cc. Error Message: mysqld: /home/tzx/mysql-server-mysql-8.0.42/sql/item_func.cc:3937: virtual longlong Item_func_min_max::int_op(): Assertion '!unsigned_flag || !arg_val.is_negative()' failed. How to repeat: SELECT t0.c0 AS ref0 FROM t0 WHERE ((('Sazdp') LIKE (273751740)) BETWEEN ((CASE -749309257 WHEN t0.c0 THEN 0.14684209982357677 WHEN t0.c0 THEN NULL WHEN '374833474' THEN NULL ELSE t0.c0 END)) AND ( EXISTS (SELECT 1 wHERE FALSE))) && ((LEAST(t0.c0, t0.c0)) AND ((-2009705112) IN (t0.c0))) UNION ALL SELECT ALL t0.c0 AS ref0 FROM t0 WHERE (NOT (((('Sazdp') LIKE (273751740)) BETWEEN ((CASE -749309257 WHEN t0.c0 THEN 0.14684209982357677 WHEN t0.c0 THEN NULL WHEN '374833474' THEN NULL ELSE t0.c0 END)) AND ( EXISTS (SELECT 1 wHERE FALSE))) && ((LEAST(t0.c0, t0.c0)) AND ((-2009705112) IN (t0.c0))))) UNION ALL SELECT t0.c0 AS ref0 FROM t0 WHERE (((('Sazdp') LIKE (273751740)) BETWEEN ((CASE -749309257 WHEN t0.c0 THEN 0.14684209982357677 WHEN t0.c0 THEN NULL WHEN '374833474' THEN NULL ELSE t0.c0 END)) AND ( EXISTS (SELECT 1 wHERE FALSE))) && ((LEAST(t0.c0, t0.c0)) AND ((-2009705112) IN (t0.c0)))) IS NULL;