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 Kalimullin | 24 Oct |