Bug #110346 Error caused by left join keyword
Submitted: 12 Mar 2023 9:04 Modified: 13 Mar 2023 13:47
Reporter: Chenglin Tian Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: DML Severity:S3 (Non-critical)
Version:8.0.29 OS:Linux
Assigned to: CPU Architecture:x86

[12 Mar 2023 9:04] Chenglin Tian
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
[13 Mar 2023 13:47] MySQL Verification Team
Hi Mr. Tian,

Thank you for your bug report.

However, this is not a bug.

We could not repeat it.

You simply have not configured our MySQL server correctly. You should increase values of all startup variables whose value is set to 8 Mb.

Not a bug.