stonedb
stonedb copied to clipboard
bug: incorrect result set.Query results more data, see the bug text
Describe the problem
CREATE TABLE t1 (sku int PRIMARY KEY, pr int)engine=stonedb;
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255))engine=stonedb;
INSERT INTO t1 VALUES
(10, 10), (20, 10), (30, 20), (40, 30), (50, 10), (60, 10);
INSERT INTO t2 VALUES
(10, 10, 'aaa'), (20, 10, 'bbb'), (30, 10, 'ccc'), (40, 20, 'ddd'),
(50, 10, 'eee'), (60, 20, 'fff'), (70, 20, 'ggg'), (80, 30, 'hhh');
SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
##The error results are as follows
+-----+------+------+-----+------+
| sku | sppr | name | sku | pr |
+-----+------+------+-----+------+
| 20 | 10 | bbb | 10 | 10 |
| 20 | 10 | bbb | 20 | 10 |
| 20 | 10 | bbb | 30 | 20 |
| 20 | 10 | bbb | 40 | 30 |
| 20 | 10 | bbb | 50 | 10 |
| 20 | 10 | bbb | 60 | 10 |
+-----+------+------+-----+------+
6 rows in set (0.02 sec)
Expected behavior
##The following is:innodb test result
+-----+------+------+-----+------+
| sku | sppr | name | sku | pr |
+-----+------+------+-----+------+
| 20 | 10 | bbb | 10 | 10 |
| 20 | 10 | bbb | 20 | 10 |
+-----+------+------+-----+------+
2 rows in set (0.00 sec)
How To Reproduce
CREATE TABLE t1 (sku int PRIMARY KEY, pr int)engine=stonedb;
CREATE TABLE t2 (sku int PRIMARY KEY, sppr int, name varchar(255))engine=stonedb;
INSERT INTO t1 VALUES
(10, 10), (20, 10), (30, 20), (40, 30), (50, 10), (60, 10);
INSERT INTO t2 VALUES
(10, 10, 'aaa'), (20, 10, 'bbb'), (30, 10, 'ccc'), (40, 20, 'ddd'),
(50, 10, 'eee'), (60, 20, 'fff'), (70, 20, 'ggg'), (80, 30, 'hhh');
SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
Environment
- StoneDB for mysql5.7 (release)
- Ubuntu 20.04.4
Are you interested in submitting a PR to solve the problem?
- [x] Yes, I will!