From 0141da0444ede35ff5a52dda2e6ffbef9cb95003 Mon Sep 17 00:00:00 2001 From: Narayanan V Date: Tue, 14 Apr 2009 16:32:55 +0530 Subject: [PATCH 1/2] Importing test cases for IBMDB2I The current patch -- Adds the ibmdb2i suite -- related include(.inc) files -- tests for Bug#44020 and Bug#44025 --- mysql-test/suite/ibmdb2i/include/have_i61.inc | 20 +++++++++++++++++++ .../suite/ibmdb2i/include/have_ibmdb2i.inc | 6 ++++++ .../suite/ibmdb2i/r/ibmdb2i_bug_44020.result | 11 ++++++++++ .../suite/ibmdb2i/r/ibmdb2i_bug_44025.result | 4 ++++ .../suite/ibmdb2i/t/ibmdb2i_bug_44020.test | 9 +++++++++ .../suite/ibmdb2i/t/ibmdb2i_bug_44025.test | 9 +++++++++ 6 files changed, 59 insertions(+) create mode 100644 mysql-test/suite/ibmdb2i/include/have_i61.inc create mode 100644 mysql-test/suite/ibmdb2i/include/have_ibmdb2i.inc create mode 100644 mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44020.result create mode 100644 mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44025.result create mode 100644 mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44020.test create mode 100644 mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44025.test diff --git a/mysql-test/suite/ibmdb2i/include/have_i61.inc b/mysql-test/suite/ibmdb2i/include/have_i61.inc new file mode 100644 index 00000000000..84b9a17c1d8 --- /dev/null +++ b/mysql-test/suite/ibmdb2i/include/have_i61.inc @@ -0,0 +1,20 @@ +# Check for IBM i 6.1 or later +--disable_query_log +system uname -rv > $MYSQLTEST_VARDIR/tmp/version; +--disable_warnings +drop table if exists uname_vr; +--enable_warnings +create temporary table uname_vr (r int, v int); +--disable_warnings +eval LOAD DATA INFILE "$MYSQLTEST_VARDIR/tmp/version" into table uname_vr fields terminated by ' '; +--enable_warnings +let $ok = `select count(*) from uname_vr where v > 5`; +drop table uname_vr; +remove_file $MYSQLTEST_VARDIR/tmp/version; +--enable_query_log +if (!$ok) +{ + skip "Need IBM i 6.1 or later"; +} + + diff --git a/mysql-test/suite/ibmdb2i/include/have_ibmdb2i.inc b/mysql-test/suite/ibmdb2i/include/have_ibmdb2i.inc new file mode 100644 index 00000000000..f3ef0b4f1ac --- /dev/null +++ b/mysql-test/suite/ibmdb2i/include/have_ibmdb2i.inc @@ -0,0 +1,6 @@ +if (!`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'ibmdb2i'`) +{ + skip Need ibmdb2i engine; +} diff --git a/mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44020.result b/mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44020.result new file mode 100644 index 00000000000..ddf92db6bca --- /dev/null +++ b/mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44020.result @@ -0,0 +1,11 @@ +create schema `A12345_@$#`; +create table `A12345_@$#`.t1 (i int) engine=ibmdb2i; +show create table `A12345_@$#`.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `i` int(11) DEFAULT NULL +) ENGINE=IBMDB2I DEFAULT CHARSET=latin1 +select * from `A12345_@$#`.t1; +i +drop table `A12345_@$#`.t1; +drop schema `A12345_@$#`; diff --git a/mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44025.result b/mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44025.result new file mode 100644 index 00000000000..10a3070fcc4 --- /dev/null +++ b/mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44025.result @@ -0,0 +1,4 @@ +create table t1 (c char(10) collate utf8_swedish_ci, index(c)) engine=ibmdb2i; +drop table t1; +create table t1 (c char(10) collate ucs2_swedish_ci, index(c)) engine=ibmdb2i; +drop table t1; diff --git a/mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44020.test b/mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44020.test new file mode 100644 index 00000000000..09a7c75cfc0 --- /dev/null +++ b/mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44020.test @@ -0,0 +1,9 @@ +source suite/ibmdb2i/include/have_ibmdb2i.inc; +source include/have_case_sensitive_file_system.inc; + +create schema `A12345_@$#`; +create table `A12345_@$#`.t1 (i int) engine=ibmdb2i; +show create table `A12345_@$#`.t1; +select * from `A12345_@$#`.t1; +drop table `A12345_@$#`.t1; +drop schema `A12345_@$#`; diff --git a/mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44025.test b/mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44025.test new file mode 100644 index 00000000000..9b033a2298f --- /dev/null +++ b/mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44025.test @@ -0,0 +1,9 @@ +source suite/ibmdb2i/include/have_ibmdb2i.inc; +source suite/ibmdb2i/include/have_i61.inc; + + +create table t1 (c char(10) collate utf8_swedish_ci, index(c)) engine=ibmdb2i; +drop table t1; + +create table t1 (c char(10) collate ucs2_swedish_ci, index(c)) engine=ibmdb2i; +drop table t1; From 5156c2d294574444de112d80c87414afce063bc0 Mon Sep 17 00:00:00 2001 From: Gleb Shchepa Date: Tue, 14 Apr 2009 19:19:15 +0500 Subject: [PATCH 2/2] Bug #42563: Message tells me to repair table though Storage Engine doesn't allow me to. In case of incompatible changes between old and new table versions, the mysqlcheck program prints error messages like this: error: Table upgrade required. Please do "REPAIR TABLE `table_name`" to fix it! However, InnoDB doesn't support REPAIR TABLE query, so the message is confusing. Error message text has been changed to: Table upgrade required. Please do "REPAIR TABLE `table_name`" or dump/reload to fix it!" mysql-test/r/repair.result: Updated test case for bug #42563. mysql-test/r/varbinary.result: Updated test case for bug #42563. sql/share/errmsg.txt: Bug #42563: Message tells me to repair table though Storage Engine doesn't allow me to. The ER_TABLE_NEEDS_UPGRADE error message has been changed to: Table upgrade required. Please do "REPAIR TABLE ``%-.32s`" or dump/reload to fix it!" --- mysql-test/r/repair.result | 2 +- mysql-test/r/varbinary.result | 2 +- sql/share/errmsg.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/repair.result b/mysql-test/r/repair.result index 0cb2dff6f64..5bb3dd76fed 100644 --- a/mysql-test/r/repair.result +++ b/mysql-test/r/repair.result @@ -126,7 +126,7 @@ id # Run CHECK TABLE, it should indicate table need a REPAIR TABLE CHECK TABLE t1 FOR UPGRADE; Table Op Msg_type Msg_text -test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" to fix it! +test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it! # REPAIR old table USE_FRM should fail REPAIR TABLE t1 USE_FRM; Table Op Msg_type Msg_text diff --git a/mysql-test/r/varbinary.result b/mysql-test/r/varbinary.result index 271d7a0fe8d..b623ea1d86e 100644 --- a/mysql-test/r/varbinary.result +++ b/mysql-test/r/varbinary.result @@ -38,7 +38,7 @@ length(a) length(b) 255 3 CHECK TABLE t1 FOR UPGRADE; Table Op Msg_type Msg_text -test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" to fix it! +test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it! REPAIR TABLE t1; Table Op Msg_type Msg_text test.t1 repair status OK diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index aa1521acab6..f9b66990e93 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5614,7 +5614,7 @@ ER_SP_WRONG_NAME 42000 eng "Incorrect routine name '%-.192s'" ger "Ungültiger Routinenname '%-.192s'" ER_TABLE_NEEDS_UPGRADE - eng "Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" to fix it!" + eng "Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" or dump/reload to fix it!" ger "Tabellenaktualisierung erforderlich. Bitte zum Reparieren \"REPAIR TABLE `%-.32s`\" eingeben!" ER_SP_NO_AGGREGATE 42000 eng "AGGREGATE is not supported for stored functions"