pingcap / pingcap/tidb

runtime error: index out of range in HAVING clause with tuple IN condition

Open
#67,451 7 comments 0 reactions 1 assignee Claimed by @0xPoe View on GitHub
affects-8.5 contribution severity/major sig/planner type/bug
Dominant language
Go
Stars
40.5k
Forks
6.2k
PR merge metrics
PR metrics pending

Description

## Bug Report

Please answer these questions before submitting your issue. Thanks!

### 1. Minimal reproduce step (Required)

```
;SET SQL_MODE= CONCAT(@@sql_mode,',NO_ENGINE_SUBSTITUTION') /* QNO 1 CON_ID 2099608 */
;USE test /* QNO 2 CON_ID 2099608 */
;SHOW TABLES /* QNO 3 CON_ID 2099608 */
;DROP VIEW IF EXISTS mysql_1 /* QNO 4 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_1 /* QNO 5 CON_ID 2099608 */
;DROP VIEW IF EXISTS mysql_2 /* QNO 6 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_2 /* QNO 7 CON_ID 2099608 */
;DROP VIEW IF EXISTS mysql_3 /* QNO 8 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_3 /* QNO 9 CON_ID 2099608 */
;DROP VIEW IF EXISTS mysql_4 /* QNO 10 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_4 /* QNO 11 CON_ID 2099608 */
;DROP VIEW IF EXISTS mysql_5 /* QNO 12 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_5 /* QNO 13 CON_ID 2099608 */
;DROP VIEW IF EXISTS mysql_6 /* QNO 14 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_6 /* QNO 15 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp1 /* QNO 16 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp1 /* QNO 17 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp10 /* QNO 18 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp10 /* QNO 19 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp2 /* QNO 20 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp2 /* QNO 21 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp3 /* QNO 22 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp3 /* QNO 23 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp4 /* QNO 24 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp4 /* QNO 25 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp5 /* QNO 26 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp5 /* QNO 27 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp6 /* QNO 28 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp6 /* QNO 29 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp7 /* QNO 30 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp7 /* QNO 31 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp8 /* QNO 32 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp8 /* QNO 33 CON_ID 2099608 */
;DROP VIEW IF EXISTS tmp9 /* QNO 34 CON_ID 2099608 */
;DROP TABLE IF EXISTS tmp9 /* QNO 35 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_1 /* QNO 36 CON_ID 2099608 */
;CREATE TABLE mysql_1 (
col_int int,
col_varchar varchar(2000),
col_date date,
col_timestamp timestamp ,
col_numeric numeric,
/*Indices*/
KEY k2 (col_int,col_date),
KEY k1 (col_numeric)) /* Indices QNO 37 CON_ID 2099608 */
;ALTER TABLE mysql_1 DISABLE KEYS /* QNO 38 CON_ID 2099608 */
;INSERT IGNORE INTO mysql_1 (col_int,col_varchar,col_date,col_timestamp,col_numeric) VALUES (NULL, 'english', '2005-06-06', '1985-07-25', 1) , (3, NULL, '2010-03-08', '1971-07-16', b'0') , (7, 'english', '2034-08-22 11:42:48.008442', '2031-08-04', 3) , (b'0', 'english', '1990-04-21 16:05:45.014469', '2001-06-21', 8) , (5, 'english', '2029-09-18', '1995-03-04', NULL) , (NULL, NULL, '1989-11-10 14:50:09.047083', '1979-08-04', b'0') , (NULL, NULL, '2006-05-14', '2033-01-10 12:34:44.010788', NULL) , (8, 'c', '2012-10-17', '1982-06-07', NULL) , (2, NULL, '1994-09-17', '1992-05-22 07:23:27.036673', NULL) , (NULL, NULL, '2026-05-02', '1987-01-28', 9) /* QNO 39 CON_ID 2099608 */
;COMMIT /* QNO 40 CON_ID 2099608 */
;ALTER TABLE mysql_1 ENABLE KEYS /* QNO 41 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_2 /* QNO 42 CON_ID 2099608 */
;CREATE TABLE mysql_2 (
col_int int,
col_varchar varchar(2000),
col_date date,
col_timestamp timestamp ,
col_numeric numeric,
/*Indices*/
KEY k2 (col_int,col_date),
KEY k1 (col_numeric)) /* Indices QNO 43 CON_ID 2099608 */
;ALTER TABLE mysql_2 DISABLE KEYS /* QNO 44 CON_ID 2099608 */
;INSERT IGNORE INTO mysql_2 (col_int,col_varchar,col_date,col_timestamp,col_numeric) VALUES (b'1', 'english', '2004-04-10 20:24:41.040771', '2004-09-21 08:29:47.061432', NULL) , (7, NULL, '1973-09-14 20:59:07.017898', '2023-01-14 20:53:17.053521', b'1') , (NULL, 'fo', '1986-10-04 19:07:50.016292', '2033-11-22', b'1') , (b'0', 'english', '1994-01-18', '2005-02-09 23:19:29.005305', 0) , (1, NULL, '1986-07-07 11:12:22.042279', '2029-05-12 16:32:11.064918', 4) , (6, 'oxmkl', '2002-09-21 18:55:01.014651', '2016-05-20 19:24:03.010942', 9) , (9, 'english', '1979-04-14 23:56:59.020320', '1973-12-15 03:27:05.033879', b'0') , (b'1', 'd', '1985-01-16 09:47:12.064352', '2013-07-03 06:45:46.013980', 5) , (1, NULL, '1998-08-13 01:29:29.061439', '2025-11-15 05:34:33.040511', 8) , (4, NULL, '1971-11-20 17:15:12.029212', '1979-08-16', NULL) /* QNO 45 CON_ID 2099608 */
;COMMIT /* QNO 46 CON_ID 2099608 */
;ALTER TABLE mysql_2 ENABLE KEYS /* QNO 47 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_3 /* QNO 48 CON_ID 2099608 */
;CREATE TABLE mysql_3 (
col_int int,
col_varchar varchar(2000),
col_date date,
col_timestamp timestamp ,
col_numeric numeric,
/*Indices*/
KEY k2 (col_int,col_date),
KEY k1 (col_numeric)) /* Indices QNO 49 CON_ID 2099608 */
;ALTER TABLE mysql_3 DISABLE KEYS /* QNO 50 CON_ID 2099608 */
;INSERT IGNORE INTO mysql_3 (col_int,col_varchar,col_date,col_timestamp,col_numeric) VALUES (b'0', NULL, '2025-08-25 01:35:03.012982', '2007-04-01 11:46:00.042236', NULL) , (8, 'i', '1999-06-05 03:15:39.046561', '1991-11-09', NULL) , (6, 'xmkli', '2027-01-02 22:16:14.002595', '1988-06-19 23:00:38.030441', NULL) , (NULL, 'english', '2026-05-25 14:58:29.062623', '1992-02-17 23:11:32.001699', NULL) , (NULL, NULL, '1988-10-12', '1976-05-18', NULL) , (NULL, 'j', '2003-12-26', '2020-07-09', 0) , (NULL, 'english', '2035-05-21', '1984-12-16 10:36:55.003131', NULL) , (NULL, 'mkli', '2034-05-25', '2013-07-01', 9) , (NULL, NULL, '2011-07-10 13:36:01.055700', '1977-11-23 02:39:56.058774', b'1') , (3, 'b', '1980-08-28 04:08:30.036514', '2018-05-07 09:35:30.036608', 9) /* QNO 51 CON_ID 2099608 */
;COMMIT /* QNO 52 CON_ID 2099608 */
;ALTER TABLE mysql_3 ENABLE KEYS /* QNO 53 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_4 /* QNO 54 CON_ID 2099608 */
;CREATE TABLE mysql_4 (
col_int int,
col_varchar varchar(2000),
col_date date,
col_timestamp timestamp ,
col_numeric numeric,
/*Indices*/
KEY k2 (col_int,col_date),
KEY k1 (col_numeric)) /* Indices QNO 55 CON_ID 2099608 */
;ALTER TABLE mysql_4 DISABLE KEYS /* QNO 56 CON_ID 2099608 */
;INSERT IGNORE INTO mysql_4 (col_int,col_varchar,col_date,col_timestamp,col_numeric) VALUES (NULL, NULL, '1989-06-03 18:14:36.036317', '1997-12-22 15:54:51.012518', b'0') , (6, NULL, '1997-06-13 20:04:48.023695', '1983-06-06', b'1') , (3, NULL, '1989-01-20 18:16:27.013174', '2008-11-11 01:28:43.023251', 3) , (NULL, 'g', '1975-07-13', '2004-04-17', b'0') , (b'1', 'klix', '2026-03-25', '1989-08-05', 7) , (0, 'lixx', '2025-11-04 02:35:17.038897', '1988-08-13 12:26:13.056268', 8) , (1, 'u', '2014-06-18', '1995-09-15', NULL) , (NULL, 'english', '1981-04-04', '1976-06-21 07:32:58.006015', NULL) , (b'0', 'h', '2022-05-28 22:14:38.030151', '2034-04-26', 4) , (9, 'english', '2004-07-07', '1986-10-16', NULL) /* QNO 57 CON_ID 2099608 */
;COMMIT /* QNO 58 CON_ID 2099608 */
;ALTER TABLE mysql_4 ENABLE KEYS /* QNO 59 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_5 /* QNO 60 CON_ID 2099608 */
;CREATE TABLE mysql_5 (
col_int int,
col_varchar varchar(2000),
col_date date,
col_timestamp timestamp ,
col_numeric numeric,
/*Indices*/
KEY k2 (col_int,col_date),
KEY k1 (col_numeric)) /* Indices QNO 61 CON_ID 2099608 */
;ALTER TABLE mysql_5 DISABLE KEYS /* QNO 62 CON_ID 2099608 */
;INSERT IGNORE INTO mysql_5 (col_int,col_varchar,col_date,col_timestamp,col_numeric) VALUES (NULL, 'ixx', '2001-08-10', '1978-12-17 07:31:23.016710', 2) , (0, 'x', '2003-06-14', '2017-05-10 12:43:45.047214', 7) , (NULL, 'english', '2016-09-02 10:41:06.045150', '2006-05-01 17:26:29.011667', b'0') , (b'1', 'xsmpp', '1977-06-04', '2029-10-16', 7) , (4, NULL, '2001-04-16 22:04:12.037682', '1999-04-21', 4) , (NULL, NULL, '2004-03-28', '2018-01-25', 0) , (NULL, NULL, '2035-04-05 03:05:30.039071', '2001-12-20', 0) , (NULL, NULL, '1999-08-17 20:44:37.001303', '2005-07-09 08:06:27.057334', 9) , (5, 'e', '1997-06-19', '2030-11-08 09:08:57.054465', 5) , (1, 'english', '2009-06-13 04:42:00.026116', '1989-01-15 19:46:42.003565', 4) /* QNO 63 CON_ID 2099608 */
;COMMIT /* QNO 64 CON_ID 2099608 */
;ALTER TABLE mysql_5 ENABLE KEYS /* QNO 65 CON_ID 2099608 */
;DROP TABLE IF EXISTS mysql_6 /* QNO 66 CON_ID 2099608 */
;CREATE TABLE mysql_6 (
col_int int,
col_varchar varchar(2000),
col_date date,
col_timestamp timestamp ,
col_numeric numeric,
/*Indices*/
KEY k2 (col_int,col_date),
KEY k1 (col_numeric)) /* Indices QNO 67 CON_ID 2099608 */
;ALTER TABLE mysql_6 DISABLE KEYS /* QNO 68 CON_ID 2099608 */
;INSERT IGNORE INTO mysql_6 (col_int,col_varchar,col_date,col_timestamp,col_numeric) VALUES (NULL, 'sm', '2020-07-16 18:02:16.050289', '2006-12-06', NULL) , (7, 'english', '2031-04-18 08:13:26.054366', '1973-03-02 19:35:34.002148', b'0') , (4, 'english', '1990-03-09 08:38:04.058169', '1975-02-15', 1) , (0, 'l', '2028-11-27', '1991-04-27 21:03:24.000826', 0) , (b'0', NULL, '1989-12-13 01:42:59.032966', '2026-01-15', 8) , (4, 'g', '2012-05-28', '2002-04-08 15:59:28.057535', b'0') , (9, 'mp', '2006-05-09', '1991-08-24', NULL) , (5, 'pp', '1990-10-14', '1999-12-01 21:53:07.060092', b'0') , (b'1', 'english', '1988-05-14', '2025-09-19 14:59:51.023820', 3) , (NULL, 'english', '1979-08-18 06:16:43.061715', '2030-04-02 15:06:42.006804', 2) /* QNO 69 CON_ID 2099608 */
;COMMIT /* QNO 70 CON_ID 2099608 */
;ALTER TABLE mysql_6 ENABLE KEYS /* QNO 71 CON_ID 2099608 */
;COMMIT /* QNO 72 CON_ID 2099608 */
;USE test /* QNO 73 CON_ID 2099608 */
;SHOW VARIABLES LIKE 'datadir' /* QNO 147 CON_ID 2099612 */
;SET SESSION sort_buffer_size = 262144 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 149 CON_ID 2099616 */
;SET SESSION tmp_table_size = 33554432 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 151 CON_ID 2099616 */
;SET SESSION optimizer_search_depth = 10 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 153 CON_ID 2099616 */
;SET SESSION innodb_lock_wait_timeout = 10 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 155 CON_ID 2099616 */
;SET SESSION max_execution_time = 10000 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 157 CON_ID 2099616 */
;SET SESSION max_statement_time = 10 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 159 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp1 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 161 CON_ID 2099616 */
;CREATE TABLE tmp1 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 163 CON_ID 2099616 */
;INSERT INTO tmp1 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_5 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 165 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp2 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 167 CON_ID 2099616 */
;CREATE TABLE tmp2 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 169 CON_ID 2099616 */
;INSERT INTO tmp2 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_5 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 171 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp3 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 173 CON_ID 2099616 */
;CREATE TABLE tmp3 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 175 CON_ID 2099616 */
;INSERT INTO tmp3 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_2 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 177 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp7 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 179 CON_ID 2099616 */
;CREATE TABLE tmp7 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 181 CON_ID 2099616 */
;INSERT INTO tmp7 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_1 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 183 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp8 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 185 CON_ID 2099616 */
;CREATE TABLE tmp8 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 187 CON_ID 2099616 */
;INSERT INTO tmp8 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_6 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 189 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp9 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 191 CON_ID 2099616 */
;CREATE TABLE tmp9 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 193 CON_ID 2099616 */
;INSERT INTO tmp9 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_2 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 195 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp10 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 197 CON_ID 2099616 */
;CREATE TABLE tmp10 (COL_INT INT, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 199 CON_ID 2099616 */
;INSERT INTO tmp10 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_6 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 201 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp4 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 203 CON_ID 2099616 */
;CREATE TABLE tmp4 (COL_INT INT NOT NULL, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB PARTITION BY RANGE (COL_INT) (PARTITION p0 VALUES LESS THAN (0), PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LESS THAN (1000), PARTITION p3 VALUES LESS THAN MAXVALUE) /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 205 CON_ID 2099616 */
;INSERT INTO tmp4 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_1 WHERE COL_INT IS NOT NULL /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 207 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp5 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 209 CON_ID 2099616 */
;CREATE TABLE tmp5 (COL_INT INT NOT NULL, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB PARTITION BY LIST (ABS(COL_INT) MOD 10) (PARTITION p0 VALUES IN (0,1,2), PARTITION p1 VALUES IN (3,4,5), PARTITION p2 VALUES IN (6,7,8,9)) /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 211 CON_ID 2099616 */
;INSERT INTO tmp5 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_3 WHERE COL_INT IS NOT NULL /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 213 CON_ID 2099616 */
;DROP TABLE IF EXISTS tmp6 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 215 CON_ID 2099616 */
;CREATE TABLE tmp6 (COL_INT INT NOT NULL, COL_VARCHAR VARCHAR(2000), COL_DATE DATE, COL_TIMESTAMP TIMESTAMP, COL_NUMERIC NUMERIC) ENGINE=InnoDB PARTITION BY HASH(COL_INT) PARTITIONS 4 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 217 CON_ID 2099616 */
;INSERT INTO tmp6 SELECT COL_INT, COL_VARCHAR, COL_DATE, COL_TIMESTAMP, COL_NUMERIC FROM mysql_6 WHERE COL_INT IS NOT NULL /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 219 CON_ID 2099616 */
;DROP INDEX IF EXISTS idx_prefix_varchar_10 ON tmp3 /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 221 CON_ID 2099616 */
;CREATE INDEX idx_prefix_varchar_10 ON tmp3(col_varchar(10)) /* DSN1 SQL INIT */ /* DSN1 SQL INIT QNO 223 CON_ID 2099616 */
;SELECT HIGH_PRIORITY * FROM mysql_1 t11 GROUP BY 1,2,3,4,5 HAVING ( 815202304, 'acmucpmekyktejytzemrphuwawcujzrdjbuzvypbxiffnoiygsygbhryulz', t11.col_date, t11.col_timestamp, 0 ) IN ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM mysql_6 a1 WHERE EXISTS ( SELECT MIN( col_varchar ) FROM ( WITH cte1 AS ( SELECT a2.col_int, a2.col_varchar, a2.col_date, a2.col_timestamp, a2.col_numeric FROM mysql_5 a1 NATURAL LEFT JOIN tmp1 a2 WHERE a2.col_int IS NULL ), cte2 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp6 a1 WHERE NOT ( t11.col_numeric = '0.197967529296875' ) AND a1.col_int NOT IN ( a1.col_int, 9, 1, 5, 3,8, 9, 3 ) GROUP BY a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric HAVING NOT ( a1.col_timestamp NOT BETWEEN '1976-06-03 12:02:05.015573' AND '1976-06-03 12:02:05.015573' + interval '1' day ) ) SELECT * FROM cte1 JOIN cte2 ON cte1.col_int = cte2.col_int GROUP BY col_int ) mm ) GROUP BY a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric HAVING NOT ( a1.col_varchar not LIKE 'N9%' ) UNION SELECT DISTINCT a2.col_int, a2.col_varchar, a2.col_date, a2.col_timestamp, a1.col_numeric FROM mysql_3 a1 RIGHT OUTER JOIN mysql_2 a2 ON ( a1.col_int IS NULL OR a2.col_varchar LIKE 'C%' ) WHERE a1.col_date >= t11.col_date AND t11.col_varchar LIKE 'C%' ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 225 CON_ID 2099616 */
;SELECT HIGH_PRIORITY * FROM tmp8 t11 GROUP BY 1,2,3,4,5 HAVING ( -187695104, trim('q'), '1988-09-18', '2000-01-01 19:57:33.047144', t11.col_numeric ) IN ( WITH cte1 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM mysql_1 a1 WHERE a1.col_timestamp NOT BETWEEN '2007-03-08 12:08:38.017484' AND '2007-03-08 12:08:38.017484' + interval '1' day AND ( a1.col_int <> ( SELECT MIN( col_int ) FROM ( WITH cte1 AS ( SELECT a1.col_int, a2.col_varchar, a2.col_date, a1.col_timestamp, a2.col_numeric FROM tmp8 a1 NATURAL RIGHT JOIN mysql_3 a2 WHERE a2.col_varchar IN ( 'cmucp', 'mu','ucpmek', 'cpmek','pmekyktej', 'm','ekyktejytzemr' ) AND a2.col_timestamp NOT BETWEEN '2007-03-08 12:08:38.017484' AND '2007-03-08 12:08:38.017484' + interval '1' day ), cte2 AS ( SELECT DISTINCT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp7 a1 WHERE ( a1.col_date IN ( a1.col_date, '1994-07-09', '2016-07-25', '1989-08-18' ) ) OR ( a1.col_date NOT BETWEEN '1975-02-07' AND '1975-02-07' + 1 ) AND t11.col_timestamp >= a1.col_timestamp ) SELECT DISTINCT * FROM cte2 JOIN tmp7 ON cte2.col_varchar = mysql_4.col_varchar ) mm ) AND t11.col_int != a1.col_int ) AND ( t11.col_numeric BETWEEN '0.1807861328125' AND '0.1807861328125' + 10 ) ), cte2 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp10 a1 WHERE ( t11.col_timestamp NOT BETWEEN '2007-03-08 12:08:38.017484' AND '2007-03-08 12:08:38.017484' + interval '1' day ) OR ( t11.col_int NOT BETWEEN 6 AND 6 + 10 ) AND t11.col_numeric <> '0.0937652587890625' ) SELECT * FROM cte1 JOIN cte2 ON cte1.col_varchar = cte2.col_varchar WHERE cte2.col_varchar LIKE 'u' ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 227 CON_ID 2099616 */
;SELECT HIGH_PRIORITY * FROM tmp10 t11 GROUP BY 1,2,3,4,5 HAVING ( octet_length( 'm' ), cast((CASE WHEN FALSE THEN COALESCE(case when FALSE then t11.col_varchar else format('Hello %s','r') end,'kyktej') ELSE CASE WHEN FALSE THEN t11.col_varchar ELSE 'yktejytzem' END END) as char), '1979-09-01', '1992-10-27 06:50:22.032694', 0 ) IN ( SELECT a2.col_int, a1.col_varchar, a2.col_date, a2.col_timestamp, a2.col_numeric FROM tmp7 a1 RIGHT OUTER JOIN tmp8 a2 ON (( a2.col_numeric IS NOT NULL ) OR ( 9 != 0 ) AND a2.col_date >= '1999-07-03' ) WHERE NOT EXISTS ( SELECT a1.col_int, a1.col_varchar, a2.col_date, a1.col_timestamp, a2.col_numeric FROM tmp3 a1 LEFT OUTER JOIN tmp5 a2 ON ( a2.col_int NOT IN ( 2, 0, 4,8, 4, 0 ) ) WHERE a2.col_timestamp IN ( '1979-11-20 09:35:44.045234', '1996-06-14 16:31:53.040159', '1991-07-02 15:47:06.017349','2005-09-17 09:31:14.046893', '1983-10-11 06:48:52.039613','1988-10-28 13:49:27.046704','1984-08-16 21:52:07.060991','1990-05-26 21:17:07.050515' ) OR a1.col_numeric IS NOT NULL ) ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 229 CON_ID 2099616 */
;
-- 2026-03-26T23:16:18 [3448611] SQL_5
;SELECT HIGH_PRIORITY * FROM tmp8 t11 GROUP BY 1,2,3,4,5 HAVING ( GREATEST( LEAST(0, 10 ),20), 'ktejytzemrphuwawcujzrdjbuzvypbxif', LEAST('2021-01-27', CASE WHEN FALSE THEN CASE WHEN FALSE THEN '2004-02-28' ELSE t11.col_date END ELSE t11.col_date END), current_timestamp(), 0 ) IN ( WITH cte1 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM ( SELECT DISTINCT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp4 a1 WHERE a1.col_date NOT BETWEEN '1997-01-13' AND '1997-01-13' + 1 AND ( ( t11.col_varchar = t11.col_varchar ) OR ( t11.col_date IS NOT NULL ) AND a1.col_int > 13284 ) AND ( t11.col_numeric < '0.875244140625' ) ) a1 WHERE a1.col_varchar IS NULL ), cte2 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a2.col_timestamp, a1.col_numeric FROM ( tmp5 a1 RIGHT OUTER JOIN mysql_6 a2 ON ( a2.col_date < '1991-10-19' AND a1.col_int IS NULL ) ) RIGHT OUTER JOIN mysql_6 a3 ON ( a2.col_date NOT BETWEEN '1997-01-13' AND '1997-01-13' + 1 ) WHERE a2.col_timestamp IN ( t11.col_timestamp,'1973-08-24 20:11:40.058216', a2.col_timestamp, a2.col_timestamp ) ) SELECT DISTINCT * FROM cte2 GROUP BY col_int ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 231 CON_ID 2099616 */
;
-- 2026-03-26T23:16:18 [3448611] SQL_6
SELECT HIGH_PRIORITY * FROM mysql_3 t11 GROUP BY 1,2,3,4,5 HAVING ( t11.col_int, t11.col_varchar, LEAST(t11.col_date, '2000-09-14'), '2007-05-01 06:58:54.000136', abs(-1198129152) ) IN ( WITH cte1 AS ( SELECT DISTINCT a2.col_int, a2.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp7 a1 LEFT OUTER JOIN mysql_1 a2 ON (a1.col_int = a2.col_int AND t11.col_varchar LIKE 'C%' ) WHERE a2.col_timestamp = '1971-10-26 05:33:56.056055' ), cte2 AS ( SELECT a2.col_int, a2.col_varchar, a2.col_date, a1.col_timestamp, a2.col_numeric FROM mysql_6 a1 LEFT OUTER JOIN tmp9 a2 ON (a1.col_int = a2.col_int +1 AND a2.col_date NOT IN ( '2012-02-06', '1990-09-03' ) ) WHERE a1.col_date IS NOT NULL AND ( a1.col_int BETWEEN 6 AND 6 + 10 ) AND ( t11.col_numeric IS NOT NULL ) ) SELECT DISTINCT * FROM cte2 ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 233 CON_ID 2099616 */
;

-- 2026-03-26T23:16:18 [3448611] SQL_9
SELECT HIGH_PRIORITY * FROM tmp1 t11 GROUP BY 1,2,3,4,5 HAVING ( (select RANK() OVER (PARTITION BY -1532755968 ORDER BY 'rphuwawc' ASC) from tmp8 t1 limit 1), replace(t11.col_varchar,'r','q'), '2032-12-06', '1994-07-24 19:14:09.035681', COALESCE(case when TRUE then case when FALSE then t11.col_numeric else 0 end else t11.col_numeric end,NULLIF(0, radians(468647936))) ) IN ( SELECT a1.col_int, a2.col_varchar, a1.col_date, a1.col_timestamp, a2.col_numeric FROM tmp1 a1 JOIN mysql_4 a2 ON (( a2.col_date IS NOT NULL AND ( t11.col_date IS NOT NULL ) AND ( a1.col_timestamp IS NOT NULL ) ) OR ( t11.col_numeric != 0.12345678912345678912345678912345678912345678 ) AND a1.col_timestamp NOT BETWEEN '2027-08-18 21:46:03.010997' AND '2027-08-18 21:46:03.010997' + interval '1' day ) WHERE a2.col_date NOT IN ( '1981-02-03', t11.col_date, '2013-03-02', a2.col_date, t11.col_date ) GROUP BY a1.col_int, a2.col_varchar, a1.col_date, a1.col_timestamp, a2.col_numeric HAVING a1.col_timestamp IS NOT NULL INTERSECT SELECT DISTINCT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp7 a1 WHERE t11.col_varchar IS NOT NULL AND ( t11.col_int NOT BETWEEN 7 AND 7 + 10 OR a1.col_int IS NOT NULL ) AND ( t11.col_numeric IS NOT NULL ) ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 239 CON_ID 2099616 */
;

```
### 2. What did you expect to see? (Required)
Mysql/Mariadb works well.

### 3. What did you see instead (Required)

```

mysql> SELECT HIGH_PRIORITY * FROM tmp8 t11 GROUP BY 1,2,3,4,5 HAVING ( GREATEST( LEAST(0, 10 ),20), 'ktejytzemrphuwawcujzrdjbuzvypbxif', LEAST('2021-01-27', CASE WHEN FALSE THEN CASE WHEN FALSE THEN '2004-02-28' ELSE t11.col_date END ELSE t11.col_date END), current_timestamp(), 0 ) IN ( WITH cte1 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM ( SELECT DISTINCT a1.col_int, a1.col_varchar, a1.col_date, a1.col_timestamp, a1.col_numeric FROM tmp4 a1 WHERE a1.col_date NOT BETWEEN '1997-01-13' AND '1997-01-13' + 1 AND ( ( t11.col_varchar = t11.col_varchar ) OR ( t11.col_date IS NOT NULL ) AND a1.col_int > 13284 ) AND ( t11.col_numeric < '0.875244140625' ) ) a1 WHERE a1.col_varchar IS NULL ), cte2 AS ( SELECT a1.col_int, a1.col_varchar, a1.col_date, a2.col_timestamp, a1.col_numeric FROM ( tmp5 a1 RIGHT OUTER JOIN mysql_6 a2 ON ( a2.col_date < '1991-10-19' AND a1.col_int IS NULL ) ) RIGHT OUTER JOIN mysql_6 a3 ON ( a2.col_date NOT BETWEEN '1997-01-13' AND '1997-01-13' + 1 ) WHERE a2.col_timestamp IN ( t11.col_timestamp,'1973-08-24 20:11:40.058216', a2.col_timestamp, a2.col_timestamp ) ) SELECT DISTINCT * FROM cte2 GROUP BY col_int ) ORDER BY 1 /* DSN1 */ /* DSN1 QNO 231 CON_ID 2099616 */
-> ;
ERROR 1105 (HY000): runtime error: index out of range [5] with length 5
```

### 4. What is your TiDB version? (Required)
```
mysql> select version();
ERROR 2013 (HY000): Lost connection to MySQL server during query
No connection. Trying to reconnect...
Connection id: 2097526
Current database: test

+------------------------------------------+
| version() |
+------------------------------------------+
| 8.0.11-TiDB-v8.4.0-this-is-a-placeholder |
+------------------------------------------+
1 row in set (0.00 sec)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.