Loading include/my_base.h +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ #define HA_OPEN_ABORT_IF_CRASHED 16 #define HA_OPEN_FOR_REPAIR 32 /* open even if crashed */ #define HA_OPEN_FROM_SQL_LAYER 64 #define HA_OPEN_MMAP 128 /* open memory mapped */ /* The following is parameter to ha_rkey() how to use key */ Loading mysql-test/r/keywords.result +13 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,19 @@ select events.binlog from events; binlog 1 drop table events; create table t1 (connection int, b int); create procedure p1() begin declare connection int; select max(t1.connection) into connection from t1; select concat("max=",connection) 'p1'; end| insert into t1 (connection) values (1); call p1(); p1 max=1 drop procedure p1; drop table t1; create procedure p1() begin declare n int default 2; Loading mysql-test/t/keywords.test +22 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,28 @@ drop table events; # End of 4.1 tests # # Bug#12204 - CONNECTION should not be a reserved word # create table t1 (connection int, b int); delimiter |; create procedure p1() begin declare connection int; select max(t1.connection) into connection from t1; select concat("max=",connection) 'p1'; end| delimiter ;| insert into t1 (connection) values (1); call p1(); drop procedure p1; drop table t1; # End of 5.0 tests # # Bug#19939 "AUTHORS is not a keyword" # Loading sql/sql_yacc.yy +1 −0 Original line number Diff line number Diff line Loading @@ -9667,6 +9667,7 @@ keyword_sp: | COMPLETION_SYM {} | COMPRESSED_SYM {} | CONCURRENT {} | CONNECTION_SYM {} | CONSISTENT_SYM {} | CONTRIBUTORS_SYM {} | CUBE_SYM {} Loading storage/myisam/ha_myisam.cc +19 −3 Original line number Diff line number Diff line Loading @@ -598,15 +598,31 @@ bool ha_myisam::check_if_locking_is_allowed(uint sql_command, int ha_myisam::open(const char *name, int mode, uint test_if_locked) { uint i; /* If the user wants to have memory mapped data files, add an open_flag. Do not memory map temporary tables because they are expected to be inserted and thus extended a lot. Memory mapping is efficient for files that keep their size, but very inefficient for growing files. Using an open_flag instead of calling mi_extra(... HA_EXTRA_MMAP ...) after mi_open() has the advantage that the mapping is not repeated for every open, but just done on the initial open, when the MyISAM share is created. Everytime the server requires to open a new instance of a table it calls this method. We will always supply HA_OPEN_MMAP for a permanent table. However, the MyISAM storage engine will ignore this flag if this is a secondary open of a table that is in use by other threads already (if the MyISAM share exists already). */ if (!(test_if_locked & HA_OPEN_TMP_TABLE) && opt_myisam_use_mmap) test_if_locked|= HA_OPEN_MMAP; if (!(file=mi_open(name, mode, test_if_locked | HA_OPEN_FROM_SQL_LAYER))) return (my_errno ? my_errno : -1); if (test_if_locked & (HA_OPEN_IGNORE_IF_LOCKED | HA_OPEN_TMP_TABLE)) VOID(mi_extra(file, HA_EXTRA_NO_WAIT_LOCK, 0)); if (!(test_if_locked & HA_OPEN_TMP_TABLE) && opt_myisam_use_mmap) VOID(mi_extra(file, HA_EXTRA_MMAP, 0)); info(HA_STATUS_NO_LOCK | HA_STATUS_VARIABLE | HA_STATUS_CONST); if (!(test_if_locked & HA_OPEN_WAIT_IF_LOCKED)) VOID(mi_extra(file, HA_EXTRA_WAIT_LOCK, 0)); Loading Loading
include/my_base.h +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ #define HA_OPEN_ABORT_IF_CRASHED 16 #define HA_OPEN_FOR_REPAIR 32 /* open even if crashed */ #define HA_OPEN_FROM_SQL_LAYER 64 #define HA_OPEN_MMAP 128 /* open memory mapped */ /* The following is parameter to ha_rkey() how to use key */ Loading
mysql-test/r/keywords.result +13 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,19 @@ select events.binlog from events; binlog 1 drop table events; create table t1 (connection int, b int); create procedure p1() begin declare connection int; select max(t1.connection) into connection from t1; select concat("max=",connection) 'p1'; end| insert into t1 (connection) values (1); call p1(); p1 max=1 drop procedure p1; drop table t1; create procedure p1() begin declare n int default 2; Loading
mysql-test/t/keywords.test +22 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,28 @@ drop table events; # End of 4.1 tests # # Bug#12204 - CONNECTION should not be a reserved word # create table t1 (connection int, b int); delimiter |; create procedure p1() begin declare connection int; select max(t1.connection) into connection from t1; select concat("max=",connection) 'p1'; end| delimiter ;| insert into t1 (connection) values (1); call p1(); drop procedure p1; drop table t1; # End of 5.0 tests # # Bug#19939 "AUTHORS is not a keyword" # Loading
sql/sql_yacc.yy +1 −0 Original line number Diff line number Diff line Loading @@ -9667,6 +9667,7 @@ keyword_sp: | COMPLETION_SYM {} | COMPRESSED_SYM {} | CONCURRENT {} | CONNECTION_SYM {} | CONSISTENT_SYM {} | CONTRIBUTORS_SYM {} | CUBE_SYM {} Loading
storage/myisam/ha_myisam.cc +19 −3 Original line number Diff line number Diff line Loading @@ -598,15 +598,31 @@ bool ha_myisam::check_if_locking_is_allowed(uint sql_command, int ha_myisam::open(const char *name, int mode, uint test_if_locked) { uint i; /* If the user wants to have memory mapped data files, add an open_flag. Do not memory map temporary tables because they are expected to be inserted and thus extended a lot. Memory mapping is efficient for files that keep their size, but very inefficient for growing files. Using an open_flag instead of calling mi_extra(... HA_EXTRA_MMAP ...) after mi_open() has the advantage that the mapping is not repeated for every open, but just done on the initial open, when the MyISAM share is created. Everytime the server requires to open a new instance of a table it calls this method. We will always supply HA_OPEN_MMAP for a permanent table. However, the MyISAM storage engine will ignore this flag if this is a secondary open of a table that is in use by other threads already (if the MyISAM share exists already). */ if (!(test_if_locked & HA_OPEN_TMP_TABLE) && opt_myisam_use_mmap) test_if_locked|= HA_OPEN_MMAP; if (!(file=mi_open(name, mode, test_if_locked | HA_OPEN_FROM_SQL_LAYER))) return (my_errno ? my_errno : -1); if (test_if_locked & (HA_OPEN_IGNORE_IF_LOCKED | HA_OPEN_TMP_TABLE)) VOID(mi_extra(file, HA_EXTRA_NO_WAIT_LOCK, 0)); if (!(test_if_locked & HA_OPEN_TMP_TABLE) && opt_myisam_use_mmap) VOID(mi_extra(file, HA_EXTRA_MMAP, 0)); info(HA_STATUS_NO_LOCK | HA_STATUS_VARIABLE | HA_STATUS_CONST); if (!(test_if_locked & HA_OPEN_WAIT_IF_LOCKED)) VOID(mi_extra(file, HA_EXTRA_WAIT_LOCK, 0)); Loading