** Setup ** SET @session_max_join_size = @@SESSION.sql_max_join_size; SET @global_max_join_size = @@GLOBAL.sql_max_join_size; SET @session_sql_big_selects = @@SESSION.sql_big_selects; CREATE TEMPORARY TABLE t1(a varchar(20) not null, b varchar(20)); CREATE TEMPORARY TABLE t2(a varchar(20) null, b varchar(20)); INSERT INTO t1 VALUES('aa','bb'); INSERT INTO t1 VALUES('aa1','bb'); INSERT INTO t1 VALUES('aa2','bb'); INSERT INTO t1 VALUES('aa3','bb'); INSERT INTO t1 VALUES('aa4','bb'); INSERT INTO t2 VALUES('aa','bb'); INSERT INTO t2 VALUES('aa1','bb'); INSERT INTO t2 VALUES('aa2','bb'); INSERT INTO t2 VALUES('aa3','bb'); INSERT INTO t2 VALUES('aa4','bb'); '#--------------------FN_DYNVARS_161_01-------------------------#' SET SESSION sql_max_join_size=9; SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a; ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay Expected error The SELECT would examine more than MAX_JOIN_SIZE rows. '#--------------------FN_DYNVARS_161_02-------------------------#' SET SESSION SQL_BIG_SELECTS = 1; SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a; a b a b aa bb aa bb aa1 bb aa1 bb aa2 bb aa2 bb aa3 bb aa3 bb aa4 bb aa4 bb This should work SET SESSION sql_max_join_size=DEFAULT; DELETE FROM t2 WHERE a = 'aa4'; SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a; a b a b aa bb aa bb aa1 bb aa1 bb aa2 bb aa2 bb aa3 bb aa3 bb This should work '#----------------------------FN_DYNVARS_136_05-------------------------#' SET GLOBAL sql_max_join_size = 4; ** Connecting con_int1 using root ** ** Connection con_int1 ** SELECT @@SESSION.sql_max_join_size; @@SESSION.sql_max_join_size 4 4 Expected SET SESSION sql_max_join_size = 2; ** Connecting con_int2 using root ** ** Connection con_int2 ** SELECT @@SESSION.sql_max_join_size; @@SESSION.sql_max_join_size 4 4 Expected SET SESSION sql_max_join_size = 10; ** Connection con_int2 ** SELECT @@SESSION.sql_max_join_size; @@SESSION.sql_max_join_size 10 10 Expected ** Connection con_int1 ** SELECT @@SESSION.sql_max_join_size; @@SESSION.sql_max_join_size 2 2 Expected SELECT @@GLOBAL.sql_max_join_size; @@GLOBAL.sql_max_join_size 4 4 Expected ** Connection default ** Disconnecting Connections con_int1, con_int2 SET @@SESSION.sql_max_join_size = @session_max_join_size; SET @@GLOBAL.sql_max_join_size = @global_max_join_size ; SET @@SESSION.sql_big_selects = @session_sql_big_selects; DROP TABLE t1; DROP TABLE t2;