Commit d235a559 authored by unknown's avatar unknown
Browse files

Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1

into  mysql.com:/home/svoj/devel/mysql/BUG26238/mysql-5.1-engines


storage/myisam/mi_open.c:
  Auto merged
parents 793a137d d9dbd4ca
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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;
+9 −0
Original line number Diff line number Diff line
@@ -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;
+4 −3
Original line number Diff line number Diff line
@@ -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;
}
+8 −16
Original line number Diff line number Diff line
@@ -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);
@@ -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
  {