| Bug #119048 | inconsistent result of two equivalent query with operator ~ | ||
|---|---|---|---|
| Submitted: | 21 Sep 12:57 | Modified: | 22 Sep 17:47 |
| Reporter: | chi zhang | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Prepared statements | Severity: | S2 (Serious) |
| Version: | 9.4.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[22 Sep 17:47]
MySQL Verification Team
mysql> SELECT (((- ((~ ('a')))))AND(TRUE));
+------------------------------+
| (((- ((~ ('a')))))AND(TRUE)) |
+------------------------------+
| 1 |
+------------------------------+
1 row in set, 2 warnings (0.000 sec)
mysql> SET @a = 'a';
Query OK, 0 rows affected (0.001 sec)
mysql> PREPARE prepare_query FROM "SELECT (((- ((~ (?)))))AND(TRUE))";
Query OK, 0 rows affected (0.001 sec)
Statement prepared
mysql> EXECUTE prepare_query USING @a;
+----------------------------+
| (((- ((~ (?)))))AND(TRUE)) |
+----------------------------+
| 0 |
+----------------------------+
1 row in set (0.000 sec)
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 9.4.0 |
+-----------+
1 row in set (0.000 sec)

Description: Hi, The following two queries are consistent, however, they produce inconsistent result. SELECT (((- ((~ ('a')))))AND(TRUE)); (((- ((~ ('a')))))AND(TRUE)) 1 SET @a = 'a'; PREPARE prepare_query FROM "SELECT (((- ((~ (?)))))AND(TRUE))"; EXECUTE prepare_query USING @a; (((- ((~ (?)))))AND(TRUE)) 0 How to repeat: SELECT (((- ((~ ('a')))))AND(TRUE)); SET @a = 'a'; PREPARE prepare_query FROM "SELECT (((- ((~ (?)))))AND(TRUE))"; EXECUTE prepare_query USING @a;