List:Commits« Previous MessageNext Message »
From:Ramil Kalimullin Date:October 24 2008 8:49am
Subject:bzr push into mysql-6.0 branch (ramil:2880 to 2881)
View as plain text  
 2881 Ramil Kalimullin	2008-10-24 [merge]
      Merge
modified:
  mysql-test/r/alter_table.result
  mysql-test/t/alter_table.test
  sql/field.cc
  sql/field.h

 2880 Georgi Kodinov	2008-10-23 [merge]
      merged 6.0-main -> 6.0-5.1.29-rc
added:
  mysql-test/suite/backup/
  mysql-test/suite/backup/r/
  mysql-test/suite/backup/r/backup_commit_backup.result
  mysql-test/suite/backup/t/
  mysql-test/suite/backup/t/backup_commit_backup.test
  mysql-test/suite/backup/t/disabled.def
  mysql-test/suite/backup_engines/include/backup_ptr.inc
  mysql-test/suite/backup_engines/include/backup_ptr_commit.inc
  mysql-test/suite/backup_engines/include/backup_ptr_objects.inc
  mysql-test/suite/backup_engines/include/not_have_falcon.inc
  mysql-test/suite/backup_engines/include/not_have_innodb.inc
  mysql-test/suite/backup_engines/include/not_have_memory.inc
  mysql-test/suite/backup_engines/include/not_have_myisam.inc
  mysql-test/suite/backup_engines/r/backup_ptr_commit_mixed.result
  mysql-test/suite/backup_engines/r/backup_ptr_commit_row.result
  mysql-test/suite/backup_engines/r/backup_ptr_commit_stmt.result
  mysql-test/suite/backup_engines/r/backup_ptr_mixed.result
  mysql-test/suite/backup_engines/r/backup_ptr_objects_mixed.result
  mysql-test/suite/backup_engines/r/backup_ptr_objects_row.result
  mysql-test/suite/backup_engines/r/backup_ptr_objects_stmt.result
  mysql-test/suite/backup_engines/r/backup_ptr_row.result
  mysql-test/suite/backup_engines/r/backup_ptr_stmt.result
  mysql-test/suite/backup_engines/t/backup_ptr_commit_mixed.test
  mysql-test/suite/backup_engines/t/backup_ptr_commit_row.test
  mysql-test/suite/backup_engines/t/backup_ptr_commit_stmt.test
  mysql-test/suite/backup_engines/t/backup_ptr_mixed.test
  mysql-test/suite/backup_engines/t/backup_ptr_objects_mixed.test
  mysql-test/suite/backup_engines/t/backup_ptr_objects_row.test
  mysql-test/suite/backup_engines/t/backup_ptr_objects_stmt.test
  mysql-test/suite/backup_engines/t/backup_ptr_row.test
  mysql-test/suite/backup_engines/t/backup_ptr_stmt.test
renamed:
  mysql-test/r/backup.result => mysql-test/suite/backup/r/backup.result
  mysql-test/r/backup_backupdir.result => mysql-test/suite/backup/r/backup_backupdir.result
  mysql-test/r/backup_blob.result => mysql-test/suite/backup/r/backup_blob.result
  mysql-test/r/backup_charsets.result => mysql-test/suite/backup/r/backup_charsets.result
  mysql-test/r/backup_commit_blocker.result => mysql-test/suite/backup/r/backup_commit_blocker.result
  mysql-test/r/backup_commit_restore.result => mysql-test/suite/backup/r/backup_commit_restore.result
  mysql-test/r/backup_compression.result => mysql-test/suite/backup/r/backup_compression.result
  mysql-test/r/backup_concurrent.result => mysql-test/suite/backup/r/backup_concurrent.result
  mysql-test/r/backup_db_grants.result => mysql-test/suite/backup/r/backup_db_grants.result
  mysql-test/r/backup_ddl_blocker.result => mysql-test/suite/backup/r/backup_ddl_blocker.result
  mysql-test/r/backup_default.result => mysql-test/suite/backup/r/backup_default.result
  mysql-test/r/backup_errors.result => mysql-test/suite/backup/r/backup_errors.result
  mysql-test/r/backup_fkey.result => mysql-test/suite/backup/r/backup_fkey.result
  mysql-test/r/backup_lock_myisam.result => mysql-test/suite/backup/r/backup_lock_myisam.result
  mysql-test/r/backup_logs.result => mysql-test/suite/backup/r/backup_logs.result
  mysql-test/r/backup_logs_output.result => mysql-test/suite/backup/r/backup_logs_output.result
  mysql-test/r/backup_many_dbs.result => mysql-test/suite/backup/r/backup_many_dbs.result
  mysql-test/r/backup_multi_blocks.result => mysql-test/suite/backup/r/backup_multi_blocks.result
  mysql-test/r/backup_myisam1.result => mysql-test/suite/backup/r/backup_myisam1.result
  mysql-test/r/backup_myisam2.result => mysql-test/suite/backup/r/backup_myisam2.result
  mysql-test/r/backup_no_be.result => mysql-test/suite/backup/r/backup_no_be.result
  mysql-test/r/backup_no_data.result => mysql-test/suite/backup/r/backup_no_data.result
  mysql-test/r/backup_no_engine.result => mysql-test/suite/backup/r/backup_no_engine.result
  mysql-test/r/backup_nodata_driver.result => mysql-test/suite/backup/r/backup_nodata_driver.result
  mysql-test/r/backup_objects.result => mysql-test/suite/backup/r/backup_objects.result
  mysql-test/r/backup_procedures.result => mysql-test/suite/backup/r/backup_procedures.result
  mysql-test/r/backup_securefilepriv.result => mysql-test/suite/backup/r/backup_securefilepriv.result
  mysql-test/r/backup_security.result => mysql-test/suite/backup/r/backup_security.result
  mysql-test/r/backup_snapshot.result => mysql-test/suite/backup/r/backup_snapshot.result
  mysql-test/r/backup_tablespace.result => mysql-test/suite/backup/r/backup_tablespace.result
  mysql-test/r/backup_timeout.result => mysql-test/suite/backup/r/backup_timeout.result
  mysql-test/r/backup_triggers_and_events.result => mysql-test/suite/backup/r/backup_triggers_and_events.result
  mysql-test/r/backup_view_on_view.result => mysql-test/suite/backup/r/backup_view_on_view.result
  mysql-test/r/backup_views.result => mysql-test/suite/backup/r/backup_views.result
  mysql-test/suite/backup => mysql-test/suite/backup_engines
  mysql-test/t/backup.test => mysql-test/suite/backup/t/backup.test
  mysql-test/t/backup_backupdir.test => mysql-test/suite/backup/t/backup_backupdir.test
  mysql-test/t/backup_blob.test => mysql-test/suite/backup/t/backup_blob.test
  mysql-test/t/backup_charsets.test => mysql-test/suite/backup/t/backup_charsets.test
  mysql-test/t/backup_commit_blocker.test => mysql-test/suite/backup/t/backup_commit_blocker.test
  mysql-test/t/backup_commit_restore.test => mysql-test/suite/backup/t/backup_commit_restore.test
  mysql-test/t/backup_compression.test => mysql-test/suite/backup/t/backup_compression.test
  mysql-test/t/backup_concurrent.test => mysql-test/suite/backup/t/backup_concurrent.test
  mysql-test/t/backup_db_grants.test => mysql-test/suite/backup/t/backup_db_grants.test
  mysql-test/t/backup_ddl_blocker.test => mysql-test/suite/backup/t/backup_ddl_blocker.test
  mysql-test/t/backup_default.test => mysql-test/suite/backup/t/backup_default.test
  mysql-test/t/backup_errors.test => mysql-test/suite/backup/t/backup_errors.test
  mysql-test/t/backup_fkey.test => mysql-test/suite/backup/t/backup_fkey.test
  mysql-test/t/backup_lock_myisam.test => mysql-test/suite/backup/t/backup_lock_myisam.test
  mysql-test/t/backup_logs.test => mysql-test/suite/backup/t/backup_logs.test
  mysql-test/t/backup_logs_output.test => mysql-test/suite/backup/t/backup_logs_output.test
  mysql-test/t/backup_many_dbs.test => mysql-test/suite/backup/t/backup_many_dbs.test
  mysql-test/t/backup_multi_blocks.test => mysql-test/suite/backup/t/backup_multi_blocks.test
  mysql-test/t/backup_myisam1-master.opt => mysql-test/suite/backup/t/backup_myisam1-master.opt
  mysql-test/t/backup_myisam1.test => mysql-test/suite/backup/t/backup_myisam1.test
  mysql-test/t/backup_myisam2.test => mysql-test/suite/backup/t/backup_myisam2.test
  mysql-test/t/backup_no_be.test => mysql-test/suite/backup/t/backup_no_be.test
  mysql-test/t/backup_no_data.test => mysql-test/suite/backup/t/backup_no_data.test
  mysql-test/t/backup_no_engine.test => mysql-test/suite/backup/t/backup_no_engine.test
  mysql-test/t/backup_nodata_driver.test => mysql-test/suite/backup/t/backup_nodata_driver.test
  mysql-test/t/backup_objects.test => mysql-test/suite/backup/t/backup_objects.test
  mysql-test/t/backup_procedures.test => mysql-test/suite/backup/t/backup_procedures.test
  mysql-test/t/backup_securefilepriv-master.opt => mysql-test/suite/backup/t/backup_securefilepriv-master.opt
  mysql-test/t/backup_securefilepriv.test => mysql-test/suite/backup/t/backup_securefilepriv.test
  mysql-test/t/backup_security.test => mysql-test/suite/backup/t/backup_security.test
  mysql-test/t/backup_snapshot.opt => mysql-test/suite/backup/t/backup_snapshot.opt
  mysql-test/t/backup_snapshot.test => mysql-test/suite/backup/t/backup_snapshot.test
  mysql-test/t/backup_tablespace.test => mysql-test/suite/backup/t/backup_tablespace.test
  mysql-test/t/backup_timeout.test => mysql-test/suite/backup/t/backup_timeout.test
  mysql-test/t/backup_triggers_and_events.test => mysql-test/suite/backup/t/backup_triggers_and_events.test
  mysql-test/t/backup_view_on_view.test => mysql-test/suite/backup/t/backup_view_on_view.test
  mysql-test/t/backup_views.test => mysql-test/suite/backup/t/backup_views.test
modified:
  .bzrignore
  include/errmsg.h
  libmysql/Makefile.am
  libmysql/Makefile.shared
  libmysql/errmsg.c
  libmysql/libmysql.c
  libmysqld/libmysqld.c
  mysql-test/lib/mtr_report.pl
  mysql-test/r/create.result
  mysql-test/r/log_tables.result
  mysql-test/r/mysql.result
  mysql-test/r/partition.result
  mysql-test/r/partition_innodb.result
  mysql-test/r/plugin.result
  mysql-test/r/sp.result
  mysql-test/r/storage_engine_basic.result
  mysql-test/r/variables.result
  mysql-test/suite/backup_engines/t/backup_functions.test
  mysql-test/suite/backup_engines/t/backup_procedures.test
  mysql-test/suite/backup_engines/t/backup_triggers.test
  mysql-test/suite/falcon/r/falcon_bugs.result
  mysql-test/suite/falcon/t/falcon_bugs.test
  mysql-test/t/ps.test
  mysql-test/t/ps_1general.test
  mysql-test/t/query_cache.test
  mysql-test/t/sp.test
  mysql-test/t/subselect3.test
  mysys/my_largepage.c
  scripts/make_win_bin_dist
  sql-common/client.c
  sql/Makefile.am
  sql/backup/backup_info.cc
  sql/backup/backup_info.h
  sql/backup/backup_kernel.h
  sql/backup/backup_test.cc
  sql/backup/data_backup.cc
  sql/backup/error.h
  sql/backup/image_info.h
  sql/backup/kernel.cc
  sql/backup/logger.cc
  sql/backup/logger.h
  sql/backup/stream_v1.c
  sql/backup/stream_v1_transport.c
  sql/filesort.cc
  sql/handler.cc
  sql/log.cc
  sql/mysql_priv.h
  sql/mysqld.cc
  sql/net_serv.cc
  sql/probes.d
  sql/probes.h
  sql/scheduler.cc
  sql/share/errmsg.txt
  sql/si_logs.cc
  sql/si_logs.h
  sql/si_objects.cc
  sql/si_objects.h
  sql/sp_head.cc
  sql/sql_cache.cc
  sql/sql_connect.cc
  sql/sql_cursor.cc
  sql/sql_delete.cc
  sql/sql_insert.cc
  sql/sql_parse.cc
  sql/sql_prepare.cc
  sql/sql_select.cc
  sql/sql_table.cc
  sql/sql_update.cc
  storage/falcon/NNode.h
  storage/falcon/Types.h
  storage/falcon/ha_falcon.cpp
  storage/falcon/plug.in
  support-files/my-huge.cnf.sh
  support-files/my-large.cnf.sh
  support-files/my-medium.cnf.sh
  support-files/my-small.cnf.sh
  support-files/mysql.spec.sh
  tests/mysql_client_test.c
  mysql-test/suite/backup/r/backup.result
  mysql-test/suite/backup/r/backup_errors.result
  mysql-test/suite/backup/t/backup.test
  mysql-test/suite/backup/t/backup_errors.test
  mysql-test/suite/backup/t/backup_no_data.test

=== modified file 'mysql-test/r/alter_table.result'
--- a/mysql-test/r/alter_table.result	2008-06-26 18:21:15 +0000
+++ b/mysql-test/r/alter_table.result	2008-10-24 08:42:06 +0000
@@ -1222,4 +1222,16 @@ ALTER TABLE t1 CHANGE d c varchar(10);
 affected rows: 0
 info: Records: 0  Duplicates: 0  Warnings: 0
 DROP TABLE t1;
+CREATE TABLE t1(a INT AUTO_INCREMENT PRIMARY KEY, 
+b ENUM('a', 'b', 'c') NOT NULL);
+INSERT INTO t1 (b) VALUES ('a'), ('c'), ('b'), ('b'), ('a');
+ALTER TABLE t1 MODIFY b ENUM('a', 'z', 'b', 'c') NOT NULL;
+SELECT * FROM t1;
+a	b
+1	a
+2	c
+3	b
+4	b
+5	a
+DROP TABLE t1;
 End of 5.1 tests

=== modified file 'mysql-test/t/alter_table.test'
--- a/mysql-test/t/alter_table.test	2008-06-26 18:21:15 +0000
+++ b/mysql-test/t/alter_table.test	2008-10-24 08:42:06 +0000
@@ -947,4 +947,16 @@ ALTER TABLE t1 CHANGE d c varchar(10);
 --disable_info
 DROP TABLE t1;
 
+
+#
+# Bug #23113: Different behavior on altering ENUM fields between 5.0 and 5.1
+#
+CREATE TABLE t1(a INT AUTO_INCREMENT PRIMARY KEY, 
+  b ENUM('a', 'b', 'c') NOT NULL);
+INSERT INTO t1 (b) VALUES ('a'), ('c'), ('b'), ('b'), ('a');
+ALTER TABLE t1 MODIFY b ENUM('a', 'z', 'b', 'c') NOT NULL;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+
 --echo End of 5.1 tests

=== modified file 'sql/field.cc'
--- a/sql/field.cc	2008-10-01 12:02:28 +0000
+++ b/sql/field.cc	2008-10-24 08:42:06 +0000
@@ -8619,28 +8619,43 @@ bool Field::eq_def(Field *field)
   return 1;
 }
 
+
 /**
   @return
   returns 1 if the fields are equally defined
 */
+
 bool Field_enum::eq_def(Field *field)
 {
   if (!Field::eq_def(field))
     return 0;
-  TYPELIB *from_lib=((Field_enum*) field)->typelib;
+  return compare_enum_values(((Field_enum*) field)->typelib);
+}
 
-  if (typelib->count < from_lib->count)
-    return 0;
-  for (uint i=0 ; i < from_lib->count ; i++)
+
+bool Field_enum::compare_enum_values(TYPELIB *values)
+{
+  if (typelib->count != values->count)
+    return FALSE;
+  for (uint i= 0; i < typelib->count; i++)
     if (my_strnncoll(field_charset,
-                     (const uchar*)typelib->type_names[i],
-                     strlen(typelib->type_names[i]),
-                     (const uchar*)from_lib->type_names[i],
-                     strlen(from_lib->type_names[i])))
-      return 0;
-  return 1;
+                     (const uchar*) typelib->type_names[i],
+                     typelib->type_lengths[i],
+                     (const uchar*) values->type_names[i],
+                     values->type_lengths[i]))
+      return FALSE;
+  return TRUE;
 }
 
+
+uint Field_enum::is_equal(Create_field *new_field)
+{
+  if (!Field_str::is_equal(new_field))
+    return 0;
+  return compare_enum_values(new_field->interval);
+}
+
+
 /**
   @return
   returns 1 if the fields are equally defined

=== modified file 'sql/field.h'
--- a/sql/field.h	2008-10-01 12:02:28 +0000
+++ b/sql/field.h	2008-10-24 08:42:06 +0000
@@ -1916,6 +1916,8 @@ public:
   CHARSET_INFO *sort_charset(void) const { return &my_charset_bin; }
 private:
   int do_save_field_metadata(uchar *first_byte);
+  bool compare_enum_values(TYPELIB *values);
+  uint is_equal(Create_field *new_field);
 };
 
 

Thread
bzr push into mysql-6.0 branch (ramil:2880 to 2881)Ramil Kalimullin24 Oct