mariadb/mysql-test/main/max_session_mem_used.result
2025-11-06 07:29:30 +01:00

130 lines
5.2 KiB
Text

#
# MDEV-23836: Assertion `! is_set() || m_can_overwrite_status' in
# Diagnostics_area::set_error_status (interrupted ALTER TABLE under LOCK)
#
CREATE TABLE t1 (a INT);
SELECT * FROM t1;
a
ALTER TABLE x MODIFY xx INT;
ERROR 42S02: Table 'test.x' doesn't exist
SET SESSION max_session_mem_used= 8192;
LOCK TABLE t1 WRITE;
ALTER TABLE t1 CHANGE COLUMN IF EXISTS b c INT;
SET SESSION max_session_mem_used = DEFAULT;
UNLOCK TABLES;
DROP TABLE t1;
#
# MDEV-27978 wrong option name in error when exceeding max_session_mem_used
#
SET SESSION max_session_mem_used = 8192;
SELECT * FROM information_schema.processlist;
ERROR HY000: The MariaDB server is running with the --max-session-mem-used=8192 option so it cannot execute this statement
SET SESSION max_session_mem_used = DEFAULT;
set max_session_mem_used = 50000;
select * from seq_1_to_1000;
set max_session_mem_used = 8192;
select * from seq_1_to_1000;
set max_session_mem_used = DEFAULT;
#
# MDEV-35828: Assertion fails in alloc_root() when memory causes it to call itself
#
CREATE TEMPORARY TABLE t1 (a INT,b INT);
INSERT INTO t1 VALUES (1,1),(2,2);
SET max_session_mem_used=8192;
SELECT * FROM (t1 AS t2 LEFT JOIN t1 AS t3 USING (a)),t1;
ERROR HY000: The MariaDB server is running with the --max-session-mem-used=8192 option so it cannot execute this statement
SET max_session_mem_used=DEFAULT;
DROP TABLE t1;
#
# MDEV-23824 SIGSEGV in end_io_cache on REPAIR LOCAL TABLE for Aria table
#
CREATE TABLE t1 (i INT) ENGINE=Aria;
INSERT INTO t1 VALUES (1);
SET max_session_mem_used=50000;
REPAIR LOCAL TABLE t1 USE_FRM;
REPAIR LOCAL TABLE t1;
DROP TABLE t1;
SET max_session_mem_used=default;
# End of 10.6 tests
#
# MDEV-37489: SIGSEGV in get_param_default_value | store_schema_params
#
CREATE OR REPLACE PROCEDURE p0 (x INT DEFAULT func())
BEGIN
SELECT x;
END;
//
SET SESSION max_session_mem_used=8192;
CALL p0();
ERROR HY000: The MariaDB server is running with the --max-session-mem-used=8192 option so it cannot execute this statement
SET @@max_session_mem_used=DEFAULT;
CALL p0();
ERROR 42000: FUNCTION test.func does not exist
SELECT * FROM information_schema.PARAMETERS where specific_name = 'p0';
SPECIFIC_CATALOG SPECIFIC_SCHEMA SPECIFIC_NAME ORDINAL_POSITION PARAMETER_MODE PARAMETER_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_TYPE PARAMETER_DEFAULT
def test p0 1 IN x int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE `func`()
# with func() defined
CREATE FUNCTION func(x INT DEFAULT 10) RETURNS INT
BEGIN
RETURN x;
END;
//
CREATE OR REPLACE PROCEDURE p0 (x INT DEFAULT func())
BEGIN
SELECT x;
END;
//
SET SESSION max_session_mem_used=8192;
CALL p0();
ERROR HY000: The MariaDB server is running with the --max-session-mem-used=8192 option so it cannot execute this statement
SET @@max_session_mem_used=DEFAULT;
CALL p0();
x
10
SELECT * FROM information_schema.PARAMETERS where specific_name = 'p0';
SPECIFIC_CATALOG SPECIFIC_SCHEMA SPECIFIC_NAME ORDINAL_POSITION PARAMETER_MODE PARAMETER_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_TYPE PARAMETER_DEFAULT
def test p0 1 IN x int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE `func`()
# with multiple functions
CREATE FUNCTION func2(x INT DEFAULT 10) RETURNS INT
BEGIN
RETURN x;
END;
//
CREATE OR REPLACE PROCEDURE p0 (x INT DEFAULT func(), y INT DEFAULT func2())
BEGIN
SELECT x, y;
END;
//
SET SESSION max_session_mem_used=8192;
CALL p0();
ERROR HY000: The MariaDB server is running with the --max-session-mem-used=8192 option so it cannot execute this statement
SET @@max_session_mem_used=DEFAULT;
CALL p0();
x y
10 10
SELECT * FROM information_schema.PARAMETERS where specific_name = 'p0';
SPECIFIC_CATALOG SPECIFIC_SCHEMA SPECIFIC_NAME ORDINAL_POSITION PARAMETER_MODE PARAMETER_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_TYPE PARAMETER_DEFAULT
def test p0 1 IN x int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE `func`()
def test p0 2 IN y int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE `func2`()
# with function and constant default param
CREATE OR REPLACE PROCEDURE p0 (x INT DEFAULT func(), y INT DEFAULT func2(), z INT DEFAULT 10)
BEGIN
SELECT x, y, z;
END;
//
SET SESSION max_session_mem_used=8192;
CALL p0();
ERROR HY000: The MariaDB server is running with the --max-session-mem-used=8192 option so it cannot execute this statement
SET @@max_session_mem_used=DEFAULT;
CALL p0();
x y z
10 10 10
SELECT * FROM information_schema.PARAMETERS where specific_name = 'p0';
SPECIFIC_CATALOG SPECIFIC_SCHEMA SPECIFIC_NAME ORDINAL_POSITION PARAMETER_MODE PARAMETER_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_TYPE PARAMETER_DEFAULT
def test p0 1 IN x int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE `func`()
def test p0 2 IN y int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE `func2`()
def test p0 3 IN z int NULL NULL 10 0 NULL NULL NULL int(11) PROCEDURE 10
DROP PROCEDURE p0;
DROP FUNCTION func;
DROP FUNCTION func2;
# End of 11.8 tests