Commit 5f26429d authored by unknown's avatar unknown

BUG#26976 - Missing table in merge not noted in related error msg +

            SHOW CREATE TABLE fails

After merge fixes.


mysql-test/r/backup.result:
  Fixed test result.
mysql-test/r/sp.result:
  Fixed test result.
sql/sql_table.cc:
  Fixed wrongly merged line. Moved "deprecated" warnings from sql_yacc.yy
  to mysql_backup_tables/mysql_restore_table.
sql/sql_yacc.yy:
  Moved "deprecated" warnings from sql_yacc.yy to
  mysql_backup_tables/mysql_restore_table.
storage/myisam/ha_myisam.cc:
  Do not report the same error twice.
storage/myisammrg/ha_myisammrg.cc:
  Removed wrongly merged line.
parent 97a7a6d4
...@@ -4,28 +4,24 @@ create table t4(n int); ...@@ -4,28 +4,24 @@ create table t4(n int);
backup table t4 to '../bogus'; backup table t4 to '../bogus';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 backup error Failed copying .frm file (errno: X) test.t4 backup error Failed copying .frm file (errno: X)
test.t4 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t4 backup Error Can't create/write to file 'MYSQLTEST_VARDIR/bogus/t4.frm' (Errcode: X)
test.t4 backup status Operation failed test.t4 backup status Operation failed
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
Error 1 Can't create/write to file 'MYSQLTEST_VARDIR/bogus/t4.frm' (Errcode: X)
backup table t4 to '../tmp'; backup table t4 to '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t4 backup status OK test.t4 backup status OK
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
backup table t4 to '../tmp'; backup table t4 to '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 backup error Failed copying .frm file (errno: X) test.t4 backup error Failed copying .frm file (errno: X)
test.t4 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t4 backup Error Can't create/write to file 'MYSQLTEST_VARDIR/tmp/t4.frm' (Errcode: X)
test.t4 backup status Operation failed test.t4 backup status Operation failed
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
Error 1 Can't create/write to file 'MYSQLTEST_VARDIR/tmp/t4.frm' (Errcode: X)
drop table t4; drop table t4;
restore table t4 from '../tmp'; restore table t4 from '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t4 restore Warning The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t4 restore status OK test.t4 restore status OK
Warnings:
Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
select count(*) from t4; select count(*) from t4;
count(*) count(*)
0 0
...@@ -33,9 +29,8 @@ create table t1(n int); ...@@ -33,9 +29,8 @@ create table t1(n int);
insert into t1 values (23),(45),(67); insert into t1 values (23),(45),(67);
backup table t1 to '../tmp'; backup table t1 to '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t1 backup status OK test.t1 backup status OK
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
drop table t1; drop table t1;
restore table t1 from '../bogus'; restore table t1 from '../bogus';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
...@@ -45,9 +40,8 @@ Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MyS ...@@ -45,9 +40,8 @@ Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MyS
Error 29 File 'MYSQLTEST_VARDIR/bogus/t1.frm' not found (Errcode: X) Error 29 File 'MYSQLTEST_VARDIR/bogus/t1.frm' not found (Errcode: X)
restore table t1 from '../tmp'; restore table t1 from '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 restore Warning The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t1 restore status OK test.t1 restore status OK
Warnings:
Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
select n from t1; select n from t1;
n n
23 23
...@@ -59,18 +53,16 @@ insert into t2 values (123),(145),(167); ...@@ -59,18 +53,16 @@ insert into t2 values (123),(145),(167);
insert into t3 values (223),(245),(267); insert into t3 values (223),(245),(267);
backup table t2,t3 to '../tmp'; backup table t2,t3 to '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t2 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t2 backup status OK test.t2 backup status OK
test.t3 backup status OK test.t3 backup status OK
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
drop table t1,t2,t3; drop table t1,t2,t3;
restore table t1,t2,t3 from '../tmp'; restore table t1,t2,t3 from '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 restore Warning The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t1 restore status OK test.t1 restore status OK
test.t2 restore status OK test.t2 restore status OK
test.t3 restore status OK test.t3 restore status OK
Warnings:
Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
select n from t1; select n from t1;
n n
23 23
...@@ -89,32 +81,28 @@ k ...@@ -89,32 +81,28 @@ k
drop table t1,t2,t3,t4; drop table t1,t2,t3,t4;
restore table t1 from '../tmp'; restore table t1 from '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 restore Warning The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t1 restore status OK test.t1 restore status OK
Warnings:
Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
rename table t1 to t5; rename table t1 to t5;
lock tables t5 write; lock tables t5 write;
backup table t5 to '../tmp'; backup table t5 to '../tmp';
unlock tables; unlock tables;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t5 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t5 backup status OK test.t5 backup status OK
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
drop table t5; drop table t5;
DROP TABLE IF EXISTS `t+1`; DROP TABLE IF EXISTS `t+1`;
CREATE TABLE `t+1` (c1 INT); CREATE TABLE `t+1` (c1 INT);
INSERT INTO `t+1` VALUES (1), (2), (3); INSERT INTO `t+1` VALUES (1), (2), (3);
BACKUP TABLE `t+1` TO '../tmp'; BACKUP TABLE `t+1` TO '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t+1 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t+1 backup status OK test.t+1 backup status OK
Warnings:
Warning 1543 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
DROP TABLE `t+1`; DROP TABLE `t+1`;
RESTORE TABLE `t+1` FROM '../tmp'; RESTORE TABLE `t+1` FROM '../tmp';
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t+1 restore Warning The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t+1 restore status OK test.t+1 restore status OK
Warnings:
Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
SELECT * FROM `t+1`; SELECT * FROM `t+1`;
c1 c1
1 1
......
...@@ -4404,8 +4404,10 @@ call bug13012()| ...@@ -4404,8 +4404,10 @@ call bug13012()|
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair status OK test.t1 repair status OK
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 backup Warning The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t1 backup status OK test.t1 backup status OK
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 restore Warning The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
test.t1 restore status OK test.t1 restore status OK
drop procedure bug13012| drop procedure bug13012|
create view v1 as select * from t1| create view v1 as select * from t1|
...@@ -4420,61 +4422,58 @@ Table Op Msg_type Msg_text ...@@ -4420,61 +4422,58 @@ Table Op Msg_type Msg_text
test.t1 repair status OK test.t1 repair status OK
test.t2 repair status OK test.t2 repair status OK
test.t3 repair status OK test.t3 repair status OK
test.v1 repair error 'test.v1' is not BASE TABLE test.v1 repair Error 'test.v1' is not BASE TABLE
test.v1 repair error Corrupt
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 optimize status OK test.t1 optimize status OK
test.t2 optimize status OK test.t2 optimize status OK
test.t3 optimize status OK test.t3 optimize status OK
test.v1 optimize error 'test.v1' is not BASE TABLE test.v1 optimize Error 'test.v1' is not BASE TABLE
test.v1 optimize error Corrupt
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze status Table is already up to date test.t1 analyze status Table is already up to date
test.t2 analyze status Table is already up to date test.t2 analyze status Table is already up to date
test.t3 analyze status Table is already up to date test.t3 analyze status Table is already up to date
test.v1 analyze error 'test.v1' is not BASE TABLE test.v1 analyze Error 'test.v1' is not BASE TABLE
Warnings: test.v1 analyze error Corrupt
Error 1347 'test.v1' is not BASE TABLE
Error 1347 'test.v1' is not BASE TABLE
Error 1347 'test.v1' is not BASE TABLE
call bug13012()| call bug13012()|
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair status OK test.t1 repair status OK
test.t2 repair status OK test.t2 repair status OK
test.t3 repair status OK test.t3 repair status OK
test.v1 repair error 'test.v1' is not BASE TABLE test.v1 repair Error 'test.v1' is not BASE TABLE
test.v1 repair error Corrupt
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 optimize status OK test.t1 optimize status OK
test.t2 optimize status OK test.t2 optimize status OK
test.t3 optimize status OK test.t3 optimize status OK
test.v1 optimize error 'test.v1' is not BASE TABLE test.v1 optimize Error 'test.v1' is not BASE TABLE
test.v1 optimize error Corrupt
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze status Table is already up to date test.t1 analyze status Table is already up to date
test.t2 analyze status Table is already up to date test.t2 analyze status Table is already up to date
test.t3 analyze status Table is already up to date test.t3 analyze status Table is already up to date
test.v1 analyze error 'test.v1' is not BASE TABLE test.v1 analyze Error 'test.v1' is not BASE TABLE
Warnings: test.v1 analyze error Corrupt
Error 1347 'test.v1' is not BASE TABLE
Error 1347 'test.v1' is not BASE TABLE
Error 1347 'test.v1' is not BASE TABLE
call bug13012()| call bug13012()|
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 repair status OK test.t1 repair status OK
test.t2 repair status OK test.t2 repair status OK
test.t3 repair status OK test.t3 repair status OK
test.v1 repair error 'test.v1' is not BASE TABLE test.v1 repair Error 'test.v1' is not BASE TABLE
test.v1 repair error Corrupt
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 optimize status OK test.t1 optimize status OK
test.t2 optimize status OK test.t2 optimize status OK
test.t3 optimize status OK test.t3 optimize status OK
test.v1 optimize error 'test.v1' is not BASE TABLE test.v1 optimize Error 'test.v1' is not BASE TABLE
test.v1 optimize error Corrupt
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze status Table is already up to date test.t1 analyze status Table is already up to date
test.t2 analyze status Table is already up to date test.t2 analyze status Table is already up to date
test.t3 analyze status Table is already up to date test.t3 analyze status Table is already up to date
test.v1 analyze error 'test.v1' is not BASE TABLE test.v1 analyze Error 'test.v1' is not BASE TABLE
Warnings: test.v1 analyze error Corrupt
Error 1347 'test.v1' is not BASE TABLE
Error 1347 'test.v1' is not BASE TABLE
Error 1347 'test.v1' is not BASE TABLE
drop procedure bug13012| drop procedure bug13012|
drop view v1| drop view v1|
select * from t1 order by data| select * from t1 order by data|
......
...@@ -4175,7 +4175,9 @@ send_result: ...@@ -4175,7 +4175,9 @@ send_result:
protocol->prepare_for_resend(); protocol->prepare_for_resend();
protocol->store(table_name, system_charset_info); protocol->store(table_name, system_charset_info);
protocol->store((char*) operator_name, system_charset_info); protocol->store((char*) operator_name, system_charset_info);
protocol->store(warning_level_names[err->level], system_charset_info); protocol->store(warning_level_names[err->level].str,
warning_level_names[err->level].length,
system_charset_info);
protocol->store(err->msg, system_charset_info); protocol->store(err->msg, system_charset_info);
if (protocol->write()) if (protocol->write())
goto err; goto err;
...@@ -4387,6 +4389,8 @@ send_result_message: ...@@ -4387,6 +4389,8 @@ send_result_message:
bool mysql_backup_table(THD* thd, TABLE_LIST* table_list) bool mysql_backup_table(THD* thd, TABLE_LIST* table_list)
{ {
DBUG_ENTER("mysql_backup_table"); DBUG_ENTER("mysql_backup_table");
WARN_DEPRECATED(thd, "5.2", "BACKUP TABLE",
"MySQL Administrator (mysqldump, mysql)");
DBUG_RETURN(mysql_admin_table(thd, table_list, 0, DBUG_RETURN(mysql_admin_table(thd, table_list, 0,
"backup", TL_READ, 0, 0, 0, 0, "backup", TL_READ, 0, 0, 0, 0,
&handler::backup, 0)); &handler::backup, 0));
...@@ -4396,6 +4400,8 @@ bool mysql_backup_table(THD* thd, TABLE_LIST* table_list) ...@@ -4396,6 +4400,8 @@ bool mysql_backup_table(THD* thd, TABLE_LIST* table_list)
bool mysql_restore_table(THD* thd, TABLE_LIST* table_list) bool mysql_restore_table(THD* thd, TABLE_LIST* table_list)
{ {
DBUG_ENTER("mysql_restore_table"); DBUG_ENTER("mysql_restore_table");
WARN_DEPRECATED(thd, "5.2", "RESTORE TABLE",
"MySQL Administrator (mysqldump, mysql)");
DBUG_RETURN(mysql_admin_table(thd, table_list, 0, DBUG_RETURN(mysql_admin_table(thd, table_list, 0,
"restore", TL_WRITE, 1, 1, 0, "restore", TL_WRITE, 1, 1, 0,
&prepare_for_restore, &prepare_for_restore,
......
...@@ -5751,8 +5751,6 @@ restore: ...@@ -5751,8 +5751,6 @@ restore:
RESTORE_SYM table_or_tables RESTORE_SYM table_or_tables
{ {
Lex->sql_command = SQLCOM_RESTORE_TABLE; Lex->sql_command = SQLCOM_RESTORE_TABLE;
WARN_DEPRECATED(yythd, "5.2", "RESTORE TABLE",
"MySQL Administrator (mysqldump, mysql)");
} }
table_list FROM TEXT_STRING_sys table_list FROM TEXT_STRING_sys
{ {
...@@ -5763,8 +5761,6 @@ backup: ...@@ -5763,8 +5761,6 @@ backup:
BACKUP_SYM table_or_tables BACKUP_SYM table_or_tables
{ {
Lex->sql_command = SQLCOM_BACKUP_TABLE; Lex->sql_command = SQLCOM_BACKUP_TABLE;
WARN_DEPRECATED(yythd, "5.2", "BACKUP TABLE",
"MySQL Administrator (mysqldump, mysql)");
} }
table_list TO_SYM TEXT_STRING_sys table_list TO_SYM TEXT_STRING_sys
{ {
......
...@@ -1224,11 +1224,7 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -1224,11 +1224,7 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt)
table->keys_in_use_for_query.clear_all(); table->keys_in_use_for_query.clear_all();
if (table_list->process_index_hints(table)) if (table_list->process_index_hints(table))
{ DBUG_RETURN(HA_ADMIN_FAILED);
errmsg= thd->net.last_error;
error= HA_ADMIN_FAILED;
goto err;
}
map= ~(ulonglong) 0; map= ~(ulonglong) 0;
if (!table->keys_in_use_for_query.is_clear_all()) if (!table->keys_in_use_for_query.is_clear_all())
/* use all keys if there's no list specified by the user through hints */ /* use all keys if there's no list specified by the user through hints */
...@@ -1243,7 +1239,6 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -1243,7 +1239,6 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt)
error= HA_ADMIN_CORRUPT; error= HA_ADMIN_CORRUPT;
} }
err:
if (error != HA_ADMIN_OK) if (error != HA_ADMIN_OK)
{ {
/* Send error to user */ /* Send error to user */
...@@ -1278,11 +1273,7 @@ int ha_myisam::preload_keys(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -1278,11 +1273,7 @@ int ha_myisam::preload_keys(THD* thd, HA_CHECK_OPT *check_opt)
table->keys_in_use_for_query.clear_all(); table->keys_in_use_for_query.clear_all();
if (table_list->process_index_hints(table)) if (table_list->process_index_hints(table))
{ DBUG_RETURN(HA_ADMIN_FAILED);
errmsg= thd->net.last_error;
error= HA_ADMIN_FAILED;
goto err;
}
map= ~(ulonglong) 0; map= ~(ulonglong) 0;
/* Check validity of the index references */ /* Check validity of the index references */
......
...@@ -129,7 +129,6 @@ int ha_myisammrg::open(const char *name, int mode, uint test_if_locked) ...@@ -129,7 +129,6 @@ int ha_myisammrg::open(const char *name, int mode, uint test_if_locked)
u_table->table->s->base.keys, u_table->table->s->base.keys,
u_table->table->s->base.fields, false)) u_table->table->s->base.fields, false))
{ {
my_free((uchar*) recinfo, MYF(0));
error= HA_ERR_WRONG_MRG_TABLE_DEF; error= HA_ERR_WRONG_MRG_TABLE_DEF;
if (test_if_locked & HA_OPEN_FOR_REPAIR) if (test_if_locked & HA_OPEN_FOR_REPAIR)
myrg_print_wrong_table(u_table->table->filename); myrg_print_wrong_table(u_table->table->filename);
......
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