Description:
From my understanding, the first query below should return 1 row, but it is actually return empty.
mysql> SELECT ALL t0.c0 FROM t0 WHERE (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= (("1") IS NOT FALSE); -- empty
Empty set (0.00 sec)
mysql>
mysql> select (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= (("1") IS NOT FALSE) from t0; -- {1}
+-------------------------------------------------------------+
| (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= (("1") IS NOT FALSE) |
+-------------------------------------------------------------+
| 1 |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT ALL t0.c0 FROM t0 WHERE (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= true; -- 1 row
+-----------+
| c0 |
+-----------+
| 733219734 |
+-----------+
1 row in set (0.00 sec)
How to repeat:
DROP TABLE IF EXISTS t0;
CREATE TABLE IF NOT EXISTS t0(c0 int) ;
INSERT INTO t0(c0) VALUES(733219734);
SELECT ALL t0.c0 FROM t0 WHERE (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= (("1") IS NOT FALSE); -- empty
select (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= (("1") IS NOT FALSE) from t0; -- {1}
SELECT ALL t0.c0 FROM t0 WHERE (JSON_ARRAY(((((t0.c0)^(t0.c0)))))) <= true; -- 1 row