polardb / polardb/polardbx-sql
unexpected value caused by where clause
Open
Nobody has claimed this yet.
bug
- Dominant language
- Java
- Stars
- 1.7k
- Forks
- 337
- PR merge metrics
- No merged PRs in 30d
Description
after changing where clause to forever True,the col_1's value is unrecognized
mysql> SELECT kou57.c9 AS col_1, SIN(txr52.c1) AS col_2, LENGTH(kou57.c10) AS col_3, kou57.c15 AS col_4 FROM t2 AS kou57 INNER JOIN t1 AS txr52 USE INDEX (idx_t1_c4) ON 1 = 1 WHERE txr52.c6 BETWEEN 16 AND 51 UNION ALL SELECT 69 AS col_1, mhe90.c4 AS col_2, mhe90.c1 AS col_3, mhe90.c1 AS col_4 FROM t1 AS mhe90;
+-------+-------+-------+--------+
| col_1 | col_2 | col_3 | col_4 |
+-------+-------+-------+--------+
| 69 | 36.0 | 3584 | 3584.0 |
| 69 | 37.0 | 8644 | 8644.0 |
| 69 | 48.0 | 6432 | 6432.0 |
| 69 | 68.0 | 1986 | 1986.0 |
| 69 | 90.0 | 954 | 954.0 |
+-------+-------+-------+--------+
5 rows in set (0.00 sec)
mysql> SELECT kou57.c9 AS col_1, SIN(txr52.c1) AS col_2, LENGTH(kou57.c10) AS col_3, kou57.c15 AS col_4 FROM t2 AS kou57 INNER JOIN t1 AS txr52 USE INDEX (idx_t1_c4) ON 1 = 1 WHERE '1' = '1' UNION ALL SELECT 69 AS col_1, mhe90.c4 AS col_2, mhe90.c1 AS col_3, mhe90.c1 AS col_4 FROM t1 AS mhe90;
+-----------------------------+---------------------+-------+--------+
| col_1 | col_2 | col_3 | col_4 |
+-----------------------------+---------------------+-------+--------+
| 7 | 0.5288268660633278 | 6 | 79.57 |
| όˢȀ흩φD쥽S氪퉎ØЭ | 0.5288268660633278 | 6 | 53.96 |
| 7 | -0.9957538466003096 | 6 | 79.57 |
| όˢȀ흩φD쥽S氪퉎ØЭ | -0.9957538466003096 | 6 | 53.96 |
| 7 | -0.916738444363225 | 6 | 79.57 |
| όˢȀ흩φD쥽S氪퉎ØЭ | -0.916738444363225 | 6 | 53.96 |
| 7 | 0.4911791469168586 | 6 | 79.57 |
| όˢȀ흩φD쥽S氪퉎ØЭ | 0.4911791469168586 | 6 | 53.96 |
| 7 | -0.8645059984548472 | 6 | 79.57 |
| όˢȀ흩φD쥽S氪퉎ØЭ | -0.8645059984548472 | 6 | 53.96 |
| 69 | 36.0 | 3584 | 3584.0 |
| 69 | 37.0 | 8644 | 8644.0 |
| 69 | 48.0 | 6432 | 6432.0 |
| 69 | 68.0 | 1986 | 1986.0 |
| 69 | 90.0 | 954 | 954.0 |
+-----------------------------+---------------------+-------+--------+
15 rows in set (0.00 sec)
How to repeat
DROP DATABASE IF EXISTS test;
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
c2 VARCHAR(255) NOT NULL,
c3 VARCHAR(255) NULL,
c4 INT NULL,
c5 DATE NOT NULL,
c6 VARCHAR(10) NOT NULL,
PRIMARY KEY (c1)
);
CREATE TABLE t2 (
c1 INT NOT NULL AUTO_INCREMENT,
c2 INT NOT NULL,
c3 DECIMAL(10,2) NOT NULL,
c4 VARCHAR(50) NOT NULL,
c5 DATE NOT NULL,
c6 MEDIUMTEXT NULL,
c7 LONGTEXT NULL,
c8 MEDIUMBLOB NULL,
c9 LONGBLOB NULL,
c10 ENUM('value1','value2','value3') NULL,
c11 SET('a','b','c','d') NULL,
c12 BIT(8) NULL,
c13 DATETIME NULL,
c14 FLOAT(8,2) NULL,
c15 DOUBLE(12,4) NULL,
PRIMARY KEY (c1)
);
INSERT INTO t1 (c1, c2, c3, c4, c5, c6) VALUES (3584, 'sample_AQJP3FCb7PX46hF2d3VoKsPIHtIgzieVgOK1Ue7iSbNProjjh', 'sample_v', 36, '2025-09-07', 'sample_J');
INSERT INTO t1 (c1, c2, c3, c4, c5, c6) VALUES (954, 'sample_0kfPnPKeUjkycwqHxj5OtQ8', 'sample_sQ', 90, '2025-10-10', 'sample_C');
INSERT INTO t1 (c1, c2, c3, c4, c5, c6) VALUES (1986, 'sample_tJaorTY4zIEBbb8IM4auYieeVSd80foFpJh3MIv0Rz8fEgfYthMyHLdUMnlIN6NnP0VoAFBpSEUcHovYpCFbGrC98Y52vXpgXsmsEBDYj6ecgN2JkDh393f4hhIjFLpqffJrE5Z09WtyvK6PT0IcDNjF6S16yhunjPWFxaAbK4Z6', 'sample_bIa5736UIVD92z8u5rQ0PaRpPlOEwroZ4Xoqc4jDp4SiRROqU4u2EvOZZupAHmFPuFcWjOC6V16yTz58i3824l1EdwAgMPAPy9RM2sHerAB3L3eAWFGFd', 68, '2025-04-20', 'sample_KWK');
INSERT INTO t1 (c1, c2, c3, c4, c5, c6) VALUES (6432, 'sample_apUxsuYxJ7yJ6etwr3Sd7Cg7l1JHXVRSgSUF689u4w2greqF3zbivycDbv6qA4Wusopmd80qoDFLGg1ercUJBRyEl0j0aw1JXgj35Pg4JK2lNYBG2UPKBvS3jhsYpkYbhUNtq5zfTal0MXOuOk4CydQWObucwCG1tGcBtxVHzwZf18W2M7Fl2c8AzYVIIn', 'sample_xoju7XvqD9RJhJ2NAoI2KxR5QZdZKDIjrOdN8MahX1k3dJu9UxKIjMzLtBjiMnoN5JxDvSR7bHNsAECcv5onlaOPg4TBQg4yQw6ThZm8lvYZcq9lBqZap4SoxgEZLdQaIflJvl7EcmCUqqRgQEes', 48, '2025-04-28', 'sample_N');
INSERT INTO t1 (c1, c2, c3, c4, c5, c6) VALUES (8644, 'sample_IYRIsvectgAbcVIlfnvNd9kX3FNkOo4kAKKY1BDBLFQpH7ksvMtBllsZK16dP8T7twvH59dyaLTQuKIciaq8hnHB49XU7pS4kDw8Gt9mASD1ylSfvFBVtDNT', 'sample_7K12anyKLHlFNF5tfck9rj0CREpw10By71a2xm7uMRqIH61pLHnO3mXiWV0Ql013c5vK', 37, '2024-11-16', 'sample_8');
INSERT INTO t2 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15) VALUES (994, 3423, 181.05, 'sample_wfxp8dzD7XrFnPLzr', '2024-12-16', 'sample_pVtuVRHgHyCTAdMjTX5uDmgDFTTcRtYK4MA3VzWGhxyRAthAan095ltHnWC2wZqFzmNIz2BhrrY2h0fxo8UzijtqT3Qzyc7ydCZ760AbwzyWxKRhxPNIiXBNmglw9ylwoKoF0Q5QMAuWKKHLT07TyALEjZEq9SXDPPHZkG637npBmt2TKOxONpcXFVVrsW3jgaSAVhmwZMYON8YAyhzkhs0fsDZAohNdcrXeb43HI5de5EWnnY2lj8xyjRyfvWyVnBrhfeRiVnwUHuk0bcwoN3ueyVTRnXwQSF56ZbxUsw4hUmzUQ4GGRNJqlHOzrdMFLZHnsp5SamGZ0WPFJC1Vx1RuAnB5RdThXSIL8o2Fgebw5VIlETIWBvsuSQqrlbUxl0DbKa4xwcIiP23T8cVxdUgU4xKNvx6nab1kO47gdMcGoSGyXyvr23yKaVpjtw6XNe0uwE6zNt4nqZ1IMHxo', 'sample_oIxWhZ5PNoCnBUDNNG1t4uGQ80Jm3dOMyFRe0xsG8bqvWYFDuMqCy715ukwGqx4YD0tNg95vNkY49I1JPAbh5BBrcbTCYpkH1R37hDwaEo0Lzl91rc0tCeXUzOy258wzk7DX3Z11LNDgWU4awzLAAqwgg6l6QUVNdWbDUN3MQYXgivI8FcfivR8MVM40OIkt9fO8BNRyM2wTSSdov5M69ahQHUactc9lQyhXQfKFssG6OK2qKe2LIxK7FT1nHxPTNh7d41fB2bHcrjQ51tWpKJcLUFVVansOZC4fsvYKAamSAEMg3CsdHRNxw9dNCn5504tI75YCiAZT9DJEv7eTX7R07OJUaKE95P4VCs4XzftyMlVR4sPXkCsh7k7MYYBRd5d9iJdQLLOKXV3FUX5qjMRwF0oltoDkNGhVzUwlRuOptO8ROwzJLwCo5Zc7ce9l3bVoWQ3LsFymuRfVPQNPDkec3GZtAddEZBmIvzojWCpi0vhTzdYojxEdQwMHomRvrrYI7XWkrLrOOYwgMnPfHTeyO9oBFhEksiqIvbJHAEP2xCD2J0NvGcap1lZc2ueOUe6pJbZ95HmiFyRwwxMOxfLY4VCD5vgXNZTzeP0q8G0caUPPmLnaPcrw0vcnvR1gJnPdl8YyggslnNMOFmhPU2TK8EO5Xn6QVpvb6zPaM3Bw6sK3u10cw3i3jPuAYGSdMFNIdrU6L0zMUiI1LO4T7us2MUaXM', X'4DD6A6D687C6A9C08CDA93E9B48429DAA8ECBF93E891B67DDEBCDEBCE79C8A20', X'CF8CCBA2C880ED9DA9CF8644ECA5BD53E6B0AAED898E10C398D0AD', 'value1', 'a,c,b,d', b'01101010', '2025-04-25 18:28:30', 90.91, 53.96);
INSERT INTO t2 (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15) VALUES (9219, 8711, 166.61, 'sample_b7C1trecK6yntdY4x3tkM8epFQtYVnoEfz17wiJ0h80', '2025-04-12', 'sample_lM7ywI1JmA9kqk0PwSZZlxesXZdCBedJvwYKBw9dR56w7WO7DzbB1ZVsW2uBiEHEd2wR0zfA4sx55xrLO89GGMf4F2mz0UofYA4LoqJgyFeasOQ0xqixQuPntbtFFaU0qHyeuRqR7GpKm67SSQeJQd5eZ7q71APzN3n0zFxL9bC0jVQUAA2zi4LuWSd0Py4RHM12FEZBN1KuHU5ZozMhLHirnlRKFd0CHuHyUguieTnEjt89dxMMgaDrETZaKHVR1ScgTZefc8hb2Y5a2zsDfzRCQbzUBuZhyxWPDkLMg5eJaLJRAGHMN71OJrpgGZCWwFkmvr3GquST0vH8CnT59cLY9O9v9udhzAtGCiQXbwB5Lj7KzeYHgjKr8X09e6EGFI4JxrFhFkCd8iyB8xSq8NysRpDP91m9AphkU', 'sample_pNAzvJ4VjAPSdNguloV4eVG6u3SzZdFFAOuhhV8Ossq2cFdieqfnhqXkFI4LI0JGQzZWBzSMVDPHQn0Oe3Nv7stxdJlPAXt4VIQTYH9MOQAhXAyMAoxBstAK6oYPsTItXFJytGz7Oa1izmP5LLD6Y2iqWh4faPfdfuygrPwm5cfs0z0bRCMeY6uz7TyAS0YbrZIi7JkCnI785BsewYQPZo7xjzdS47d1oKj4EPSzrSKsyoWNaBR6C1MRljtVdfaDibv5fO9sj9N4QHy0lP29cySiHWUKbcoGMCWqTOmi2c65M232CKXKPGJ1miY9cIhuTTZD5hGQqKQ6uuNKIYLIoZJ1mXCoZyJ85k02lYVhV3E0tlr01DgEDkpaICmjNTzVw35Zc9sU3JJCVlWKLa83FtS8kX3lvVtmWq4G8OWgzaOQKt5dw0H04Ibqj030OZQDqmj15XiBFAS2nXQunJRD8Kx7EkfsAG7FfyIz4P5wqDFJpSKziR8OmR8TZLmv2EVQUltHdy45PCO2AXC4x1sIfP9dmQ1aiECO4ed7urHtLvAZpow3BBcK8VgBugkQxVFqIrXg3RaziUH5wl5DoIAzZmMowtn0Vu2ZpGH5Zdf0RvhFUlAck0tL497tGQydIpqGp9PjEKf6QUCAB3ls7R2XPJaIWyS9U', X'3E00CE8341C791EE918038EE949521C58A15D0B301D3BBE09EADEBBDA75BE890B0D58D53', X'37', 'value1', 'c,b,a', b'11010111', '2025-01-23 17:58:04', 97.71, 79.57);
CREATE INDEX idx_t1_c4 ON t1 (c4);
SELECT kou57.c9 AS col_1, SIN(txr52.c1) AS col_2, LENGTH(kou57.c10) AS col_3, kou57.c15 AS col_4 FROM t2 AS kou57 INNER JOIN t1 AS txr52 USE INDEX (idx_t1_c4) ON 1 = 1 WHERE txr52.c6 BETWEEN 16 AND 51 UNION ALL SELECT 69 AS col_1, mhe90.c4 AS col_2, mhe90.c1 AS col_3, mhe90.c1 AS col_4 FROM t1 AS mhe90;
SELECT kou57.c9 AS col_1, SIN(txr52.c1) AS col_2, LENGTH(kou57.c10) AS col_3, kou57.c15 AS col_4 FROM t2 AS kou57 INNER JOIN t1 AS txr52 USE INDEX (idx_t1_c4) ON 1 = 1 WHERE '1' = '1' UNION ALL SELECT 69 AS col_1, mhe90.c4 AS col_2, mhe90.c1 AS col_3, mhe90.c1 AS col_4 FROM t1 AS mhe90;
Version:
mysql> select polardb_version();
+---------+--------------+---------------------+
| TYPE | VERSION | RELEASE_DATE |
+---------+--------------+---------------------+
| Product | PolarDB V2.0 | Distributed Edition |
| CN | 2.4.0.5.4.19 | SNAPSHOT |
| DN | 2.4.0.8.4.19 | 20240430 |
| GMS | 2.4.0.8.4.19 | 20240430 |
+---------+--------------+---------------------+
4 rows in set (0.01 sec)
mysql> select @@version;
+-------------------------+
| @@version |
+-------------------------+
| 8.0.32-X-Cluster-8.4.19 |
+-------------------------+
1 row in set (0.00 sec)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Run the two SQL queries from the reproduction on the stated PolarDB-X versions and compare the UNION results, especially col_1 under the constant WHERE condition. Trace the database's query planning and execution for this join and UNION case; done means the second query no longer returns corrupted col_1 values and the regression is covered by a repeatable test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mysql, sql
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100