mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 06:44:16 +01:00
c2ebb0ac88
Item_hex_string::Item_hex_string The status of memory allocation in the Lex_input_stream (called from the Parser_state constructor) was not checked which led to a parser crash in case of the out-of-memory error. The solution is to introduce new init() member function in Parser_state and Lex_input_stream so that status of memory allocation can be returned to the caller. mysql-test/r/error_simulation.result: Added a test case for bug #42064. mysql-test/t/error_simulation.test: Added a test case for bug #42064. mysys/my_alloc.c: Added error injection code for the regression test. mysys/my_malloc.c: Added error injection code for the regression test. mysys/safemalloc.c: Added error injection code for the regression test. sql/event_data_objects.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/mysqld.cc: Added error injection code for the regression test. sql/sp.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_lex.cc: Moved memory allocation from constructor to the separate init() member function. Added error injection code for the regression test. sql/sql_lex.h: Moved memory allocation from constructor to the separate init() member function. sql/sql_parse.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_partition.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_prepare.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_trigger.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_view.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures.. sql/thr_malloc.cc: Added error injection code for the regression test.
52 lines
1.5 KiB
Text
52 lines
1.5 KiB
Text
DROP TABLE IF EXISTS t1;
|
|
Warnings:
|
|
Note 1051 Unknown table 't1'
|
|
CREATE TABLE t1 (
|
|
a varchar(32) character set utf8 collate utf8_bin NOT NULL,
|
|
b varchar(32) character set utf8 collate utf8_bin NOT NULL )
|
|
ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
|
INSERT INTO t1 VALUES
|
|
('AAAAAAAAAA','AAAAAAAAAA'), ('AAAAAAAAAB','AAAAAAAAAB '),
|
|
('AAAAAAAAAB','AAAAAAAAAB'), ('AAAAAAAAAC','AAAAAAAAAC'),
|
|
('AAAAAAAAAD','AAAAAAAAAD'), ('AAAAAAAAAE','AAAAAAAAAE'),
|
|
('AAAAAAAAAF','AAAAAAAAAF'), ('AAAAAAAAAG','AAAAAAAAAG'),
|
|
('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'),
|
|
('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK');
|
|
set tmp_table_size=1024;
|
|
set session debug="d,raise_error";
|
|
SELECT MAX(a) FROM t1 GROUP BY a,b;
|
|
ERROR 23000: Can't write; duplicate key in table 'tmp_table'
|
|
set tmp_table_size=default;
|
|
DROP TABLE t1;
|
|
#
|
|
# Bug #50946: fast index creation still seems to copy the table
|
|
#
|
|
CREATE TABLE t1 (a INT(100) NOT NULL);
|
|
INSERT INTO t1 VALUES (1), (0), (2);
|
|
SET SESSION debug='+d,alter_table_only_index_change';
|
|
ALTER TABLE t1 ADD INDEX a(a);
|
|
SET SESSION debug=DEFAULT;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(100) NOT NULL,
|
|
KEY `a` (`a`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
SELECT * FROM t1;
|
|
a
|
|
0
|
|
1
|
|
2
|
|
DROP TABLE t1;
|
|
#
|
|
# Bug#42064: low memory crash when importing hex strings, in Item_hex_string::Item_hex_string
|
|
#
|
|
CREATE TABLE t1(a BLOB);
|
|
SET SESSION debug="+d,bug42064_simulate_oom";
|
|
INSERT INTO t1 VALUES("");
|
|
Got one of the listed errors
|
|
SET SESSION debug=DEFAULT;
|
|
DROP TABLE t1;
|
|
#
|
|
# End of 5.1 tests
|
|
#
|