with other alterations causes lost tables
Using RENAME clause combined with other clauses of ALTER TABLE led to
data loss (the data was there but not accessible). This could happen if the
changes do not change the table much. Adding and droppping of fields and
indices was safe. Renaming a column with MODIFY or CHANGE was unsafe operation,
if the actual column didn't change (changing from int to int, which is a noop)
Depending on the storage engine (SE) the behavior is different:
1)MyISAM/MEMORY - the ALTER TABLE statement completes
without any error but next SELECT against the new table fails.
2)InnoDB (and every other transactional table) - The ALTER TABLE statement
fails. There are the the following files in the db dir -
`new_table_name.frm` and a temporary table's frm. If the SE is file
based, then the data and index files will be present but with the old
names. What happens is that for InnoDB the table is not renamed in the
internal DDIC.
Fixed by adding additional call to mysql_rename_table() method, which should
not include FRM file rename, because it has been already done during file
names juggling.
mysql-test/r/alter_table.result:
update result
mysql-test/r/grant.result:
update result
mysql-test/t/alter_table.test:
2006/11/29 11:46:23+01:00 andrey@example.com +44 -9
Error to bug number
Added test case for #22369: Alter table rename combined
with other alterations causes lost tables
mysql-test/t/grant.test:
add test for bug#22369 - alter table was missing check
for DROP_ACL when ALTER_RENAME clause is specified. Synchronise
with RENAME TABLE DDL.
sql/mysql_priv.h:
Add a new flag for mysql_rename_table()
sql/sql_parse.cc:
To be consistent with SQLCOM_RENAME_TABLE, SQLCOM_ALTER_TABLE has
to check for DROP_ACL if there is ALTER_RENAME flag set.
sql/sql_table.cc:
ALTER_RENAME, the data and index files weren't renamed in the engine
but only the FRM was new, when the tables old and new tables are compatible.
In the chain of FRM renames we add a call to mysql_rename_table() which should
instruct the engine to rename the table but not rename the FRM.
This bug was there only in 5.1 branch. 4.1 and 5.0 always do copy data on RENAME
if there are more clauses than just rename.
into mysql.com:/usr/home/ram/work/bug22229/my51-bug22229
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
BitKeeper/deleted/.del-CMakeLists.txt~14:
Auto merged
BitKeeper/deleted/.del-CMakeLists.txt~7:
Auto merged
client/mysql_upgrade.c:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/mysql-test-run-shell.sh:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysys/Makefile.am:
Auto merged
mysys/my_mmap.c:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/udf_example.c:
Auto merged
support-files/mysql.spec.sh:
Use local
client/Makefile.am:
Manual merge
include/my_sys.h:
Manual merge
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
mysql-test/mysql-test-run.pl:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
into ymer.(none):/usr/local/mysql/tmp/mysql-5.1-new-maint
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
into ymer.(none):/usr/local/mysql/tmp/mysql-5.0-gca
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
traces in Valgrind (broken libc6-dbg).
Installing libc6-dbg on Debian will still provide proper bactraces, even
without setting LD_LIBRARY_PATH explicitly.
mysql-test/lib/mtr_io.pl:
Do not link /usr/lib/debug/* on Debian <=3.1, as it causes broken stack
traces in Valgrind.
mysql-test/mysql-test-run.pl:
Do not link /usr/lib/debug/* on Debian <=3.1, as it causes broken stack
traces in Valgrind.
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
BitKeeper/etc/collapsed:
auto-union
configure.in:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/extra/rpl_tests/rpl_deadlock.test:
Auto merged
mysql-test/mysql-test-run-shell.sh:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/r/windows.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/ps.test:
Auto merged
mysql-test/t/windows.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_parse.cc:
Auto merged
BitKeeper/deleted/.del-ps_not_windows.result:
Delete: mysql-test/r/ps_not_windows.result
BitKeeper/deleted/.del-ps_not_windows.test:
Delete: mysql-test/t/ps_not_windows.test
mysql-test/mysql-test-run.pl:
Manual merge
mysql-test/r/rpl_deadlock_innodb.result:
Manual merge
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql_upgrade.c:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/mysql-test-run-shell.sh:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/mysql-test-run.pl:
Merge
into mysql.com:/usr/home/ram/work/bug22029/my41-bug22029
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
into mysql.com:/usr/home/ram/work/bug22029/my50-bug22029
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
- Use more appropriate test case.
mysql-test/r/mysql.result:
Bug#19799 delimiter command not working correctly when sourcing a sql file
- Alt. Result.
mysql-test/t/mysql_delimiter.sql:
Bug#19799 delimiter command not working correctly when sourcing a sql file
- Alt. Test
into mysql.com:/usr/home/ram/work/bug22029/my51-bug22029
mysql-test/t/date_formats.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/date_formats.result:
merging
into mysql.com:/usr/home/ram/work/bug22029/my50-bug22029
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql/item_timefunc.cc:
merging
- Client side readline functions unconditionally search for Unix '\n' line
endings. In this case, the delimiter statement was set to '//\r' instead
of the intended '//'. When removing the '\n' check for and remove
preceeding '\r' character as well.
client/readline.cc:
Bug#19799 delimiter command not working correctly when sourcing a sql file
- When removing the '\n' character, check for and remove preceeding '\r'
character as well.
mysql-test/r/mysql.result:
Bug#19799 delimiter command not working correctly when sourcing a sql file
- Added Results.
mysql-test/t/mysql_delimiter.sql:
Bug#19799 delimiter command not working correctly when sourcing a sql file
- Added Tests.
mysql-test/t/mysql_delimiter_19799.sql:
Bug#19799 delimiter command not working correctly when sourcing a sql file
- File containing delimiter statement followed by '\r\n' line ending.
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
mysql-test/mysql-test-run.pl:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
old upgrade behaviour.
Add test for upgrade from 5.0.30
mysql-test/t/system_mysql_db_fix40123.test:
Drop alos the new 5.1 tables after test
scripts/mysql_fix_privilege_tables.sql:
Update 5.1 version of mysql_fix_privilege_tables.sql to also do
an "ALTER TABLE MODIFY" on the new column(s) it adds. This allows us to
make sure that both new and already existing columsn get the right type.
mysql-test/t/system_mysql_db_fix50030-master.opt:
New BitKeeper file ``mysql-test/t/system_mysql_db_fix50030-master.opt''
mysql-test/t/system_mysql_db_fix50030.test:
New BitKeeper file ``mysql-test/t/system_mysql_db_fix50030.test''
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
client/mysql_upgrade.c:
Auto merged
client/mysqltest.c:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
client/mysql_upgrade.c:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/t/system_mysql_db_fix30020.test:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged