Commit ed6bd84f authored by unknown's avatar unknown

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

into  mysql.com:/home/marty/MySQL/mysql-5.1


sql/sql_table.cc:
  Auto merged
parents 9df1f385 708740c8
...@@ -28,6 +28,9 @@ ...@@ -28,6 +28,9 @@
#ifndef yaSSL_NEW_HPP #ifndef yaSSL_NEW_HPP
#define yaSSL_NEW_HPP #define yaSSL_NEW_HPP
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef __sun #ifdef __sun
......
...@@ -4709,6 +4709,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list, ...@@ -4709,6 +4709,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
At the moment we can't handle altering temporary tables without a copy. At the moment we can't handle altering temporary tables without a copy.
We also test if OPTIMIZE TABLE was given and was mapped to alter table. We also test if OPTIMIZE TABLE was given and was mapped to alter table.
In that case we always do full copy. In that case we always do full copy.
There was a bug prior to mysql-4.0.25. Number of null fields was
calculated incorrectly. As a result frm and data files gets out of
sync after fast alter table. There is no way to determine by which
mysql version (in 4.0 and 4.1 branches) table was created, thus we
disable fast alter table for all tables created by mysql versions
prior to 5.0 branch.
See BUG#6236.
*/ */
if (table->s->fields != create_list->elements || if (table->s->fields != create_list->elements ||
table->s->db_type != create_info->db_type || table->s->db_type != create_info->db_type ||
...@@ -4718,6 +4726,7 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list, ...@@ -4718,6 +4726,7 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
create_info->used_fields & HA_CREATE_USED_DEFAULT_CHARSET || create_info->used_fields & HA_CREATE_USED_DEFAULT_CHARSET ||
(alter_info->flags & (ALTER_RECREATE | ALTER_FOREIGN_KEY)) || (alter_info->flags & (ALTER_RECREATE | ALTER_FOREIGN_KEY)) ||
order_num || order_num ||
!table->s->mysql_version ||
(table->s->frm_version < FRM_VER_TRUE_VARCHAR && varchar)) (table->s->frm_version < FRM_VER_TRUE_VARCHAR && varchar))
DBUG_RETURN(ALTER_TABLE_DATA_CHANGED); DBUG_RETURN(ALTER_TABLE_DATA_CHANGED);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment