Loading mysql-test/r/heap.result +7 −0 Original line number Diff line number Diff line Loading @@ -731,3 +731,10 @@ SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); COUNT(*) 2 DROP TABLE t1; CREATE TABLE t1(c1 VARCHAR(100), c2 INT) ENGINE=MEMORY; INSERT INTO t1 VALUES('', 0); ALTER TABLE t1 MODIFY c1 VARCHAR(101); SELECT c2 FROM t1; c2 0 DROP TABLE t1; mysql-test/t/heap.test +9 −0 Original line number Diff line number Diff line Loading @@ -471,3 +471,12 @@ SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); DROP TABLE t1; # End of 5.0 tests # # BUG#26080 - Memory Storage engine not working properly # CREATE TABLE t1(c1 VARCHAR(100), c2 INT) ENGINE=MEMORY; INSERT INTO t1 VALUES('', 0); ALTER TABLE t1 MODIFY c1 VARCHAR(101); SELECT c2 FROM t1; DROP TABLE t1; storage/heap/ha_heap.cc +4 −3 Original line number Diff line number Diff line Loading @@ -703,9 +703,10 @@ bool ha_heap::check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes) { /* Check that auto_increment value was not changed */ if ((table_changes != IS_EQUAL_YES && info->used_fields & HA_CREATE_USED_AUTO) && info->auto_increment_value != 0) if ((info->used_fields & HA_CREATE_USED_AUTO && info->auto_increment_value != 0) || table_changes == IS_EQUAL_NO || table_changes & IS_EQUAL_PACK_LENGTH) // Not implemented yet return COMPATIBLE_DATA_NO; return COMPATIBLE_DATA_YES; } Loading storage/myisam/mi_open.c +8 −16 Original line number Diff line number Diff line Loading @@ -506,22 +506,6 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) share->data_file_type = DYNAMIC_RECORD; my_afree((gptr) disk_cache); mi_setup_functions(share); if (open_flags & HA_OPEN_MMAP) { info.s= share; if (mi_dynmap_file(&info, share->state.state.data_file_length)) { /* purecov: begin inspected */ /* Ignore if mmap fails. Use file I/O instead. */ DBUG_PRINT("warning", ("mmap failed: errno: %d", errno)); /* purecov: end */ } else { share->file_read= mi_mmap_pread; share->file_write= mi_mmap_pwrite; } } share->is_log_table= FALSE; #ifdef THREAD thr_lock_init(&share->lock); Loading Loading @@ -552,6 +536,14 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) } } #endif /* Memory mapping can only be requested after initializing intern_lock. */ if (open_flags & HA_OPEN_MMAP) { info.s= share; mi_extra(&info, HA_EXTRA_MMAP, 0); } } else { Loading Loading
mysql-test/r/heap.result +7 −0 Original line number Diff line number Diff line Loading @@ -731,3 +731,10 @@ SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); COUNT(*) 2 DROP TABLE t1; CREATE TABLE t1(c1 VARCHAR(100), c2 INT) ENGINE=MEMORY; INSERT INTO t1 VALUES('', 0); ALTER TABLE t1 MODIFY c1 VARCHAR(101); SELECT c2 FROM t1; c2 0 DROP TABLE t1;
mysql-test/t/heap.test +9 −0 Original line number Diff line number Diff line Loading @@ -471,3 +471,12 @@ SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); DROP TABLE t1; # End of 5.0 tests # # BUG#26080 - Memory Storage engine not working properly # CREATE TABLE t1(c1 VARCHAR(100), c2 INT) ENGINE=MEMORY; INSERT INTO t1 VALUES('', 0); ALTER TABLE t1 MODIFY c1 VARCHAR(101); SELECT c2 FROM t1; DROP TABLE t1;
storage/heap/ha_heap.cc +4 −3 Original line number Diff line number Diff line Loading @@ -703,9 +703,10 @@ bool ha_heap::check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes) { /* Check that auto_increment value was not changed */ if ((table_changes != IS_EQUAL_YES && info->used_fields & HA_CREATE_USED_AUTO) && info->auto_increment_value != 0) if ((info->used_fields & HA_CREATE_USED_AUTO && info->auto_increment_value != 0) || table_changes == IS_EQUAL_NO || table_changes & IS_EQUAL_PACK_LENGTH) // Not implemented yet return COMPATIBLE_DATA_NO; return COMPATIBLE_DATA_YES; } Loading
storage/myisam/mi_open.c +8 −16 Original line number Diff line number Diff line Loading @@ -506,22 +506,6 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) share->data_file_type = DYNAMIC_RECORD; my_afree((gptr) disk_cache); mi_setup_functions(share); if (open_flags & HA_OPEN_MMAP) { info.s= share; if (mi_dynmap_file(&info, share->state.state.data_file_length)) { /* purecov: begin inspected */ /* Ignore if mmap fails. Use file I/O instead. */ DBUG_PRINT("warning", ("mmap failed: errno: %d", errno)); /* purecov: end */ } else { share->file_read= mi_mmap_pread; share->file_write= mi_mmap_pwrite; } } share->is_log_table= FALSE; #ifdef THREAD thr_lock_init(&share->lock); Loading Loading @@ -552,6 +536,14 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) } } #endif /* Memory mapping can only be requested after initializing intern_lock. */ if (open_flags & HA_OPEN_MMAP) { info.s= share; mi_extra(&info, HA_EXTRA_MMAP, 0); } } else { Loading