Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0(EOL), 10.1(EOL)
Description
This script:
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci);
|
INSERT INTO t1 VALUES (' 1'),('`1');
|
SELECT * FROM t1 WHERE (a XOR '0');
|
returns one row:
+------+
|
| a |
|
+------+
|
| 1 |
|
+------+
|
Now if I make the WHERE condition even stricter:
SELECT * FROM t1 WHERE a=' 1' AND (a XOR '0');
|
it erroneously returns two rows:
+------+
|
| a |
|
+------+
|
| 1 |
|
| `1 |
|
+------+
|
Attachments
Issue Links
- blocks
-
MDEV-8728 Fix a number of problems in equal field and equal expression propagation
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Component/s | Optimizer [ 10200 ] |
Summary | Wrong result for SELECT..WHERE a=' 1' AND (a XOR '1') | Wrong result for SELECT..WHERE varcahar' 1' AND (a XOR '1') |
Summary | Wrong result for SELECT..WHERE varcahar' 1' AND (a XOR '1') | Wrong result for SELECT..WHERE varchar_column=' 1' AND (varchar_column XOR '1') |
Status | Open [ 1 ] | In Progress [ 3 ] |
Fix Version/s | 10.1.7 [ 19604 ] | |
Fix Version/s | 10.1 [ 16100 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Labels | propagation |
Labels | propagation | propagation upstream-not-affected |
Workflow | MariaDB v3 [ 71200 ] | MariaDB v4 [ 149510 ] |