Commit 309db598 authored by msvensson@neptunus.(none)'s avatar msvensson@neptunus.(none)

Merge bk-internal:/home/bk/mysql-5.1-new-maint

into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
parents e8431818 81cf15ae
...@@ -264,7 +264,7 @@ enum enum_commands { ...@@ -264,7 +264,7 @@ enum enum_commands {
Q_IF, Q_IF,
Q_DISABLE_PARSING, Q_ENABLE_PARSING, Q_DISABLE_PARSING, Q_ENABLE_PARSING,
Q_REPLACE_REGEX, Q_REMOVE_FILE, Q_FILE_EXIST, Q_REPLACE_REGEX, Q_REMOVE_FILE, Q_FILE_EXIST,
Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_EXIT,
Q_UNKNOWN, /* Unknown command. */ Q_UNKNOWN, /* Unknown command. */
Q_COMMENT, /* Comments, ignored. */ Q_COMMENT, /* Comments, ignored. */
...@@ -345,6 +345,8 @@ const char *command_names[]= ...@@ -345,6 +345,8 @@ const char *command_names[]=
"copy_file", "copy_file",
"perl", "perl",
"die", "die",
/* Don't execute any more commands, compare result */
"exit",
0 0
}; };
...@@ -5429,7 +5431,7 @@ void mark_progress(struct st_command* command __attribute__((unused)), ...@@ -5429,7 +5431,7 @@ void mark_progress(struct st_command* command __attribute__((unused)),
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
struct st_command *command; struct st_command *command;
my_bool q_send_flag= 0; my_bool q_send_flag= 0, abort_flag= 0;
uint command_executed= 0, last_command_executed= 0; uint command_executed= 0, last_command_executed= 0;
char save_file[FN_REFLEN]; char save_file[FN_REFLEN];
MY_STAT res_info; MY_STAT res_info;
...@@ -5549,7 +5551,7 @@ int main(int argc, char **argv) ...@@ -5549,7 +5551,7 @@ int main(int argc, char **argv)
open_file(opt_include); open_file(opt_include);
} }
while (!read_command(&command)) while (!read_command(&command) && !abort_flag)
{ {
int current_line_inc = 1, processed = 0; int current_line_inc = 1, processed = 0;
if (command->type == Q_UNKNOWN || command->type == Q_COMMENT_WITH_COMMAND) if (command->type == Q_UNKNOWN || command->type == Q_COMMENT_WITH_COMMAND)
...@@ -5777,8 +5779,13 @@ int main(int argc, char **argv) ...@@ -5777,8 +5779,13 @@ int main(int argc, char **argv)
die("Parsing is already enabled"); die("Parsing is already enabled");
break; break;
case Q_DIE: case Q_DIE:
/* Abort test with error code and error message */
die("%s", command->first_argument); die("%s", command->first_argument);
break; break;
case Q_EXIT:
/* Stop processing any more commands */
abort_flag= 1;
break;
case Q_RESULT: case Q_RESULT:
die("result, deprecated command"); die("result, deprecated command");
......
...@@ -342,6 +342,12 @@ SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id ...@@ -342,6 +342,12 @@ SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
DROP TABLE t1,t2; DROP TABLE t1,t2;
# #
# Bug#17530: Incorrect key truncation on table creation caused server crash.
#
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
character set utf8 collate utf8_general_ci;
insert into t1 values('aaa');
drop table t1;
# Test of behaviour with CREATE ... SELECT # Test of behaviour with CREATE ... SELECT
# #
......
...@@ -300,6 +300,12 @@ id select_type table type possible_keys key key_len ref rows Extra ...@@ -300,6 +300,12 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index 1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where
DROP TABLE t1,t2; DROP TABLE t1,t2;
create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
character set utf8 collate utf8_general_ci;
Warnings:
Warning 1071 Specified key was too long; max key length is 765 bytes
insert into t1 values('aaa');
drop table t1;
CREATE TABLE t1 (a int, b int); CREATE TABLE t1 (a int, b int);
insert into t1 values (1,1),(1,2); insert into t1 values (1,1),(1,2);
CREATE TABLE t2 (primary key (a)) select * from t1; CREATE TABLE t2 (primary key (a)) select * from t1;
......
...@@ -518,4 +518,6 @@ hello ...@@ -518,4 +518,6 @@ hello
mysqltest: At line 1: Max delimiter length(16) exceeded mysqltest: At line 1: Max delimiter length(16) exceeded
hello hello
hello hello
mysqltest: At line 1: test of die
Some output
End of tests End of tests
...@@ -244,7 +244,10 @@ DROP DATABASE mysqltest_1; ...@@ -244,7 +244,10 @@ DROP DATABASE mysqltest_1;
# Bug #17264: MySQL Server freeze # Bug #17264: MySQL Server freeze
# #
connection locker; connection locker;
# Disable warnings to allow test to run also without InnoDB
--disable_warnings
create table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb; create table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb;
--enable_warnings
lock tables t1 write; lock tables t1 write;
connection writer; connection writer;
--sleep 2 --sleep 2
......
...@@ -1548,5 +1548,19 @@ perl; ...@@ -1548,5 +1548,19 @@ perl;
print "hello\n"; print "hello\n";
EOF EOF
# ----------------------------------------------------------------------------
# test for die
# ----------------------------------------------------------------------------
--error 1
--exec echo "die test of die;" | $MYSQL_TEST 2>&1
# ----------------------------------------------------------------------------
# test for exit
# ----------------------------------------------------------------------------
--exec echo "echo Some output; exit; echo Not this;" | $MYSQL_TEST 2>&1
--echo End of tests --echo End of tests
--skip-external-locking --force-restart
--ssl-cert=std_data/server-cert-des.pem --ssl-key=std_data/server-key-des.pem --loose_ssl-cert=std_data/server-cert-des.pem --loose_ssl-key=std_data/server-key-des.pem
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