Description:
We found an inconsistency during the test and got an unexpected error. During the query using the left join keyword, we expected to get four pieces of data, but returned an error:
SELECT t0.c0 AS ref0 FROM t0 LEFT OUTER JOIN t1 ON (t0.c0) > (t1.c0);
expected: Return with data
actual: ERROR 34 (HY000): Memory capacity exceeded (capacity 8388608 bytes)
How to repeat:
DROP DATABASE IF EXISTS database294;
CREATE DATABASE database294;
USE database294;
CREATE TABLE IF NOT EXISTS t0(c0 FLOAT UNIQUE KEY COMMENT 'asdf' ) ; -- 21ms;
CREATE TABLE t1(c0 FLOAT ZEROFILL COLUMN_FORMAT FIXED STORAGE DISK) ; -- 11ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
INSERT LOW_PRIORITY IGNORE INTO t1(c0) VALUES(NULL), (NULL), (-1020385509); -- 3ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
REPLACE INTO t1(c0) VALUES(NULL); -- 2ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
DELETE LOW_PRIORITY FROM t1 WHERE CAST(t1.c0 AS SIGNED); -- 1ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
REPLACE LOW_PRIORITY INTO t0(c0) VALUES(1480839002); -- 2ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
INSERT DELAYED IGNORE INTO t1(c0) VALUES(740155359), (-1115927935), (NULL); -- 1ms;
CHECKSUM TABLE t1, t0; -- 0ms;
SET SESSION bulk_insert_buffer_size = 1964680379541625914; -- 0ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
DELETE QUICK IGNORE FROM t1 WHERE ( EXISTS (SELECT 1 wHERE FALSE)) XOR ((NULL) IS NOT TRUE); -- 2ms;
ALTER TABLE t0 DELAY_KEY_WRITE 0, STATS_PERSISTENT 1, RENAME t0, COMPRESSION 'ZLIB', ROW_FORMAT DEFAULT; -- 37ms;
ANALYZE LOCAL TABLE t1, t0; -- 4ms;
select TABLE_NAME, ENGINE from information_schema.TABLES where table_schema = 'database294'; -- 1ms;
DELETE QUICK FROM t1; -- 0ms;
INSERT INTO t0(c0) VALUES(NULL); -- 2ms;
INSERT HIGH_PRIORITY INTO t0(c0) VALUES(NULL); -- 1ms;
REPLACE DELAYED INTO t0(c0) VALUES(NULL); -- 2ms;
CREATE INDEX i0 ON t1(c0 ASC); -- 47ms;
Error-causing statement:
SELECT t0.c0 AS ref0 FROM t0 LEFT OUTER JOIN t1 ON (t0.c0) > (t1.c0);
Suggested fix:
We don't know whether this is a problem, but when we use comparison operators and left join operations to query, this phenomenon is inconsistent with our expectations