Commit fc1f5942 authored by unknown's avatar unknown
Browse files

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

into  mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new


sql/field.cc:
  Auto merged
parents 08dd4932 3ee4e5f2
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -6,17 +6,6 @@ DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7;
drop database if exists mysqltest;
--enable_warnings

# workaround for bug#16445
# remove to reproduce bug and run tests drom ndb start
# and with ndb_autodiscover disabled
CREATE TABLE t1 (
  pk1 INT NOT NULL PRIMARY KEY,
  attr1 INT NOT NULL,
  attr2 INT,
  attr3 VARCHAR(10)
) ENGINE=ndbcluster;
drop table t1;

#
# Basic test to show that the NDB 
# table handler is working
+5 −5
Original line number Diff line number Diff line
@@ -5989,7 +5989,7 @@ int Field_str::store(double nr)

uint Field::is_equal(create_field *new_field)
{
  return (new_field->sql_type == type());
  return (new_field->sql_type == real_type());
}


@@ -6001,7 +6001,7 @@ uint Field_str::is_equal(create_field *new_field)
	(flags & (BINCMP_FLAG | BINARY_FLAG))))
    return 0; /* One of the fields is binary and the other one isn't */

  return ((new_field->sql_type == type()) &&
  return ((new_field->sql_type == real_type()) &&
	  new_field->charset == field_charset &&
	  new_field->length == max_length());
}
@@ -6798,7 +6798,7 @@ Field *Field_varstring::new_key_field(MEM_ROOT *root,

uint Field_varstring::is_equal(create_field *new_field)
{
  if (new_field->sql_type == type() &&
  if (new_field->sql_type == real_type() &&
      new_field->charset == field_charset)
  {
    if (new_field->length == max_length())
@@ -7957,12 +7957,12 @@ bool Field_num::eq_def(Field *field)

uint Field_num::is_equal(create_field *new_field)
{
  return ((new_field->sql_type == type()) &&
  return ((new_field->sql_type == real_type()) &&
	  ((new_field->flags & UNSIGNED_FLAG) == (uint) (flags &
							 UNSIGNED_FLAG)) &&
	  ((new_field->flags & AUTO_INCREMENT_FLAG) ==
	   (uint) (flags & AUTO_INCREMENT_FLAG)) &&
	  (new_field->length >= max_length()));
	  (new_field->length <= max_length()));
}


+60 −59
Original line number Diff line number Diff line
@@ -1373,6 +1373,9 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp,
                         NDB_SHARE *share)
{
  DBUG_ENTER("ndb_handle_schema_change");
  TABLE* table= share->table;
  TABLE_SHARE *table_share= table->s;
  const char *dbname= table_share->db.str;
  bool do_close_cached_tables= FALSE;
  bool is_online_alter_table= FALSE;
  bool is_rename_table= FALSE;
@@ -1392,14 +1395,9 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp,
    }
  }

  if (is_remote_change) /* includes CLUSTER_FAILURE */
  {
    TABLE* table= share->table;
    TABLE_SHARE *table_share= table->s;
    const char *dbname= table_share->db.str;
    
  /*
       Invalidate table and all it's indexes
    Refresh local dictionary cache by
    invalidating table and all it's indexes
  */
  ndb->setDatabaseName(dbname);
  Thd_ndb *thd_ndb= get_thd_ndb(thd);
@@ -1413,7 +1411,11 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp,
  table_handler.invalidate_dictionary_cache(TRUE);
  thd_ndb->ndb= old_ndb;
  
    if (is_online_alter_table)
  /*
    Refresh local frm file and dictionary cache if
    remote on-line alter table
  */
  if (is_remote_change && is_online_alter_table)
  {
    const char *tabname= table_share->table_name.str;
    char key[FN_REFLEN];
@@ -1457,7 +1459,6 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp,
      pthread_mutex_unlock(&LOCK_open);
    }
  }
  }

  // If only frm was changed continue replicating
  if (is_online_alter_table)