Loading mysql-test/r/alter_table.result +42 −0 Original line number Diff line number Diff line Loading @@ -854,3 +854,45 @@ Table Create Table `c1` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE `#sql2`, `@0023sql1`; DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; CREATE TABLE t1 ( int_field INTEGER UNSIGNED NOT NULL, char_field CHAR(10), INDEX(`int_field`) ); DESCRIBE t1; Field Type Null Key Default Extra int_field int(10) unsigned NO MUL char_field char(10) YES NULL SHOW INDEXES FROM t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment t1 1 int_field 1 int_field A NULL NULL NULL BTREE INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet"); "Non-copy data change - new frm, but old data and index files" ALTER TABLE t1 CHANGE int_field unsigned_int_field INTEGER UNSIGNED NOT NULL, RENAME t2; SELECT * FROM t1 ORDER BY int_field; ERROR 42S02: Table 'test.t1' doesn't exist SELECT * FROM t2 ORDER BY unsigned_int_field; unsigned_int_field char_field 1 edno 1 edno 2 dve 3 tri 5 pet DESCRIBE t2; Field Type Null Key Default Extra unsigned_int_field int(10) unsigned NO MUL char_field char(10) YES NULL DESCRIBE t2; Field Type Null Key Default Extra unsigned_int_field int(10) unsigned NO MUL char_field char(10) YES NULL ALTER TABLE t2 MODIFY unsigned_int_field BIGINT UNSIGNED NOT NULL; DESCRIBE t2; Field Type Null Key Default Extra unsigned_int_field bigint(20) unsigned NO MUL char_field char(10) YES NULL DROP TABLE t2; mysql-test/r/grant.result +65 −0 Original line number Diff line number Diff line Loading @@ -948,6 +948,71 @@ DROP USER 'mysqltest_1'@'localhost'; use test; create user mysqltest1_thisisreallytoolong; ERROR HY000: String 'mysqltest1_thisisreallytoolong' is too long for user name (should be no longer than 16) CREATE DATABASE mysqltest1; CREATE TABLE mysqltest1.t1 ( int_field INTEGER UNSIGNED NOT NULL, char_field CHAR(10), INDEX(`int_field`) ); CREATE TABLE mysqltest1.t2 (int_field INT); "Now check that we require equivalent grants for " "RENAME TABLE and ALTER TABLE" CREATE USER mysqltest_1@localhost; GRANT SELECT ON mysqltest1.t1 TO mysqltest_1@localhost; SELECT USER(); USER() mysqltest_1@localhost SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ALTER TABLE t1 RENAME TO t2; ERROR 42000: DROP,ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' GRANT DROP ON mysqltest1.t1 TO mysqltest_1@localhost; RENAME TABLE t1 TO t2; ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ALTER TABLE t1 RENAME TO t2; ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' GRANT ALTER ON mysqltest1.t1 TO mysqltest_1@localhost; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, DROP, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; ERROR 42000: INSERT,CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' ALTER TABLE t1 RENAME TO t2; ERROR 42000: INSERT,CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' GRANT INSERT, CREATE ON mysqltest1.t1 TO mysqltest_1@localhost; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT, CREATE, DROP, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' GRANT INSERT, SELECT, CREATE, ALTER, DROP ON mysqltest1.t2 TO mysqltest_1@localhost; DROP TABLE mysqltest1.t2; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT, CREATE, DROP, ALTER ON `mysqltest1`.`t2` TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT, CREATE, DROP, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; RENAME TABLE t2 TO t1; ALTER TABLE t1 RENAME TO t2; ALTER TABLE t2 RENAME TO t1; REVOKE DROP, INSERT ON mysqltest1.t1 FROM mysqltest_1@localhost; REVOKE DROP, INSERT ON mysqltest1.t2 FROM mysqltest_1@localhost; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t2` TO 'mysqltest_1'@'localhost' GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table 't2' ALTER TABLE t1 RENAME TO t2; ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' DROP USER mysqltest_1@localhost; DROP DATABASE mysqltest1; GRANT CREATE ON mysqltest.* TO 1234567890abcdefGHIKL@localhost; ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16) GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY; Loading mysql-test/t/alter_table.test +45 −9 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ create table mysqltest.t1 (name char(15)); insert into mysqltest.t1 (name) values ("mysqltest"); select * from t1; select * from mysqltest.t1; --error 1050 --error ER_TABLE_EXISTS_ERROR alter table t1 rename mysqltest.t1; select * from t1; select * from mysqltest.t1; Loading Loading @@ -231,9 +231,9 @@ DROP TABLE t1; # BUG#4717 - check for valid table names # create table t1 (a int); --error 1103 --error ER_WRONG_TABLE_NAME alter table t1 rename to ``; --error 1103 --error ER_WRONG_TABLE_NAME rename table t1 to ``; drop table t1; Loading Loading @@ -325,14 +325,14 @@ drop table t1; CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE); ALTER TABLE t1 DROP PRIMARY KEY; SHOW CREATE TABLE t1; --error 1091 --error ER_CANT_DROP_FIELD_OR_KEY ALTER TABLE t1 DROP PRIMARY KEY; DROP TABLE t1; # BUG#3899 create table t1 (a int, b int, key(a)); insert into t1 values (1,1), (2,2); --error 1091 --error ER_CANT_DROP_FIELD_OR_KEY alter table t1 drop key no_such_key; alter table t1 drop key a; drop table t1; Loading @@ -343,7 +343,7 @@ drop table t1; # Some platforms (Mac OS X, Windows) will send the error message using small letters. CREATE TABLE T12207(a int) ENGINE=MYISAM; --replace_result t12207 T12207 --error 1031 --error ER_ILLEGAL_HA ALTER TABLE T12207 DISCARD TABLESPACE; DROP TABLE T12207; Loading @@ -367,7 +367,7 @@ drop table t1; # shorter than packed field length. # create table t1 ( a timestamp ); --error 1089 --error ER_WRONG_SUB_KEY alter table t1 add unique ( a(1) ); drop table t1; Loading Loading @@ -477,7 +477,7 @@ create table t1 (c1 int); # Move table to other database. alter table t1 rename mysqltest.t1; # Assure that it has moved. --error 1051 --error ER_BAD_TABLE_ERROR drop table t1; # Move table back. alter table mysqltest.t1 rename t1; Loading @@ -491,7 +491,7 @@ use mysqltest; # Drop the current db. This de-selects any db. drop database mysqltest; # Now test for correct message. --error 1046 --error ER_NO_DB_ERROR alter table test.t1 rename t1; # Check that explicit qualifying works even with no selected db. alter table test.t1 rename test.t1; Loading Loading @@ -650,3 +650,39 @@ INSERT INTO `@0023sql1` VALUES (2); SHOW CREATE TABLE `#sql2`; SHOW CREATE TABLE `@0023sql1`; DROP TABLE `#sql2`, `@0023sql1`; # # Bug #22369: Alter table rename combined with other alterations causes lost tables # # This problem happens if the data change is compatible. # Changing to the same type is compatible for example. # --disable_warnings DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; --enable_warnings CREATE TABLE t1 ( int_field INTEGER UNSIGNED NOT NULL, char_field CHAR(10), INDEX(`int_field`) ); DESCRIBE t1; SHOW INDEXES FROM t1; INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet"); --echo "Non-copy data change - new frm, but old data and index files" ALTER TABLE t1 CHANGE int_field unsigned_int_field INTEGER UNSIGNED NOT NULL, RENAME t2; --error ER_NO_SUCH_TABLE SELECT * FROM t1 ORDER BY int_field; SELECT * FROM t2 ORDER BY unsigned_int_field; DESCRIBE t2; DESCRIBE t2; ALTER TABLE t2 MODIFY unsigned_int_field BIGINT UNSIGNED NOT NULL; DESCRIBE t2; DROP TABLE t2; mysql-test/t/disabled.def +3 −0 Original line number Diff line number Diff line Loading @@ -35,3 +35,6 @@ synchronization : Bug#24529 Test 'synchronization' fails on Mac pushb #ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events ndb_binlog_discover : bug#21806 2006-08-24 ndb_autodiscover3 : bug#21806 flush2 : Bug#24805 Pushbuild can't handle test with --disable-log-bin mysql-test/t/distinct.test +67 −0 Original line number Diff line number Diff line Loading @@ -437,3 +437,70 @@ EXPLAIN SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a; SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a; DROP TABLE t1; # The test case for bug#20836 should be re-enabled when bug#16861 is resolved # The results for the test should be the same as in 4.1. # #Bug #20836: Selecting into variables results in wrong results being returned # #--disable_warnings #DROP TABLE IF EXISTS t1; #--enable_warnings # #CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20) #default NULL); # #INSERT INTO t1 VALUES (1,1,'ORANGE'); #INSERT INTO t1 VALUES (2,2,'APPLE'); #INSERT INTO t1 VALUES (3,2,'APPLE'); #INSERT INTO t1 VALUES (4,3,'PEAR'); # #SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name = #'APPLE'; #SELECT @v1, @v2; # #SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id, #fruit_name HAVING fruit_name = 'APPLE'; #SELECT @v3, @v4; # #SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE #fruit_name = 'APPLE'; #SELECT @v5, @v6, @v7, @v8; # #SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1 #WHERE fruit_name = 'APPLE'; #SELECT @v5, @v6, @v7, @v8, @v9, @v10; # #SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO #@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE'; #SELECT @v11, @v12, @v13, @v14; # #SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE'; #SELECT @v15, @v16; # #SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name = #'APPLE'; #SELECT @v17, @v18; # #--disable_warnings #DROP TABLE IF EXISTS t2; #--enable_warnings # #CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20) #default NULL); # #SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE #'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE'; #LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2; #--exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp # #SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE #'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE'; #LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2; #--exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp # #SELECT @v19, @v20; #SELECT * FROM t2; # #DROP TABLE t1; #DROP TABLE t2; Loading
mysql-test/r/alter_table.result +42 −0 Original line number Diff line number Diff line Loading @@ -854,3 +854,45 @@ Table Create Table `c1` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE `#sql2`, `@0023sql1`; DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; CREATE TABLE t1 ( int_field INTEGER UNSIGNED NOT NULL, char_field CHAR(10), INDEX(`int_field`) ); DESCRIBE t1; Field Type Null Key Default Extra int_field int(10) unsigned NO MUL char_field char(10) YES NULL SHOW INDEXES FROM t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment t1 1 int_field 1 int_field A NULL NULL NULL BTREE INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet"); "Non-copy data change - new frm, but old data and index files" ALTER TABLE t1 CHANGE int_field unsigned_int_field INTEGER UNSIGNED NOT NULL, RENAME t2; SELECT * FROM t1 ORDER BY int_field; ERROR 42S02: Table 'test.t1' doesn't exist SELECT * FROM t2 ORDER BY unsigned_int_field; unsigned_int_field char_field 1 edno 1 edno 2 dve 3 tri 5 pet DESCRIBE t2; Field Type Null Key Default Extra unsigned_int_field int(10) unsigned NO MUL char_field char(10) YES NULL DESCRIBE t2; Field Type Null Key Default Extra unsigned_int_field int(10) unsigned NO MUL char_field char(10) YES NULL ALTER TABLE t2 MODIFY unsigned_int_field BIGINT UNSIGNED NOT NULL; DESCRIBE t2; Field Type Null Key Default Extra unsigned_int_field bigint(20) unsigned NO MUL char_field char(10) YES NULL DROP TABLE t2;
mysql-test/r/grant.result +65 −0 Original line number Diff line number Diff line Loading @@ -948,6 +948,71 @@ DROP USER 'mysqltest_1'@'localhost'; use test; create user mysqltest1_thisisreallytoolong; ERROR HY000: String 'mysqltest1_thisisreallytoolong' is too long for user name (should be no longer than 16) CREATE DATABASE mysqltest1; CREATE TABLE mysqltest1.t1 ( int_field INTEGER UNSIGNED NOT NULL, char_field CHAR(10), INDEX(`int_field`) ); CREATE TABLE mysqltest1.t2 (int_field INT); "Now check that we require equivalent grants for " "RENAME TABLE and ALTER TABLE" CREATE USER mysqltest_1@localhost; GRANT SELECT ON mysqltest1.t1 TO mysqltest_1@localhost; SELECT USER(); USER() mysqltest_1@localhost SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ALTER TABLE t1 RENAME TO t2; ERROR 42000: DROP,ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' GRANT DROP ON mysqltest1.t1 TO mysqltest_1@localhost; RENAME TABLE t1 TO t2; ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ALTER TABLE t1 RENAME TO t2; ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' GRANT ALTER ON mysqltest1.t1 TO mysqltest_1@localhost; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, DROP, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; ERROR 42000: INSERT,CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' ALTER TABLE t1 RENAME TO t2; ERROR 42000: INSERT,CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' GRANT INSERT, CREATE ON mysqltest1.t1 TO mysqltest_1@localhost; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT, CREATE, DROP, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' GRANT INSERT, SELECT, CREATE, ALTER, DROP ON mysqltest1.t2 TO mysqltest_1@localhost; DROP TABLE mysqltest1.t2; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT, CREATE, DROP, ALTER ON `mysqltest1`.`t2` TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT, CREATE, DROP, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; RENAME TABLE t2 TO t1; ALTER TABLE t1 RENAME TO t2; ALTER TABLE t2 RENAME TO t1; REVOKE DROP, INSERT ON mysqltest1.t1 FROM mysqltest_1@localhost; REVOKE DROP, INSERT ON mysqltest1.t2 FROM mysqltest_1@localhost; SHOW GRANTS; Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t2` TO 'mysqltest_1'@'localhost' GRANT SELECT, CREATE, ALTER ON `mysqltest1`.`t1` TO 'mysqltest_1'@'localhost' RENAME TABLE t1 TO t2; ERROR 42000: INSERT command denied to user 'mysqltest_1'@'localhost' for table 't2' ALTER TABLE t1 RENAME TO t2; ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' DROP USER mysqltest_1@localhost; DROP DATABASE mysqltest1; GRANT CREATE ON mysqltest.* TO 1234567890abcdefGHIKL@localhost; ERROR HY000: String '1234567890abcdefGHIKL' is too long for user name (should be no longer than 16) GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY; Loading
mysql-test/t/alter_table.test +45 −9 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ create table mysqltest.t1 (name char(15)); insert into mysqltest.t1 (name) values ("mysqltest"); select * from t1; select * from mysqltest.t1; --error 1050 --error ER_TABLE_EXISTS_ERROR alter table t1 rename mysqltest.t1; select * from t1; select * from mysqltest.t1; Loading Loading @@ -231,9 +231,9 @@ DROP TABLE t1; # BUG#4717 - check for valid table names # create table t1 (a int); --error 1103 --error ER_WRONG_TABLE_NAME alter table t1 rename to ``; --error 1103 --error ER_WRONG_TABLE_NAME rename table t1 to ``; drop table t1; Loading Loading @@ -325,14 +325,14 @@ drop table t1; CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE); ALTER TABLE t1 DROP PRIMARY KEY; SHOW CREATE TABLE t1; --error 1091 --error ER_CANT_DROP_FIELD_OR_KEY ALTER TABLE t1 DROP PRIMARY KEY; DROP TABLE t1; # BUG#3899 create table t1 (a int, b int, key(a)); insert into t1 values (1,1), (2,2); --error 1091 --error ER_CANT_DROP_FIELD_OR_KEY alter table t1 drop key no_such_key; alter table t1 drop key a; drop table t1; Loading @@ -343,7 +343,7 @@ drop table t1; # Some platforms (Mac OS X, Windows) will send the error message using small letters. CREATE TABLE T12207(a int) ENGINE=MYISAM; --replace_result t12207 T12207 --error 1031 --error ER_ILLEGAL_HA ALTER TABLE T12207 DISCARD TABLESPACE; DROP TABLE T12207; Loading @@ -367,7 +367,7 @@ drop table t1; # shorter than packed field length. # create table t1 ( a timestamp ); --error 1089 --error ER_WRONG_SUB_KEY alter table t1 add unique ( a(1) ); drop table t1; Loading Loading @@ -477,7 +477,7 @@ create table t1 (c1 int); # Move table to other database. alter table t1 rename mysqltest.t1; # Assure that it has moved. --error 1051 --error ER_BAD_TABLE_ERROR drop table t1; # Move table back. alter table mysqltest.t1 rename t1; Loading @@ -491,7 +491,7 @@ use mysqltest; # Drop the current db. This de-selects any db. drop database mysqltest; # Now test for correct message. --error 1046 --error ER_NO_DB_ERROR alter table test.t1 rename t1; # Check that explicit qualifying works even with no selected db. alter table test.t1 rename test.t1; Loading Loading @@ -650,3 +650,39 @@ INSERT INTO `@0023sql1` VALUES (2); SHOW CREATE TABLE `#sql2`; SHOW CREATE TABLE `@0023sql1`; DROP TABLE `#sql2`, `@0023sql1`; # # Bug #22369: Alter table rename combined with other alterations causes lost tables # # This problem happens if the data change is compatible. # Changing to the same type is compatible for example. # --disable_warnings DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; --enable_warnings CREATE TABLE t1 ( int_field INTEGER UNSIGNED NOT NULL, char_field CHAR(10), INDEX(`int_field`) ); DESCRIBE t1; SHOW INDEXES FROM t1; INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet"); --echo "Non-copy data change - new frm, but old data and index files" ALTER TABLE t1 CHANGE int_field unsigned_int_field INTEGER UNSIGNED NOT NULL, RENAME t2; --error ER_NO_SUCH_TABLE SELECT * FROM t1 ORDER BY int_field; SELECT * FROM t2 ORDER BY unsigned_int_field; DESCRIBE t2; DESCRIBE t2; ALTER TABLE t2 MODIFY unsigned_int_field BIGINT UNSIGNED NOT NULL; DESCRIBE t2; DROP TABLE t2;
mysql-test/t/disabled.def +3 −0 Original line number Diff line number Diff line Loading @@ -35,3 +35,6 @@ synchronization : Bug#24529 Test 'synchronization' fails on Mac pushb #ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events ndb_binlog_discover : bug#21806 2006-08-24 ndb_autodiscover3 : bug#21806 flush2 : Bug#24805 Pushbuild can't handle test with --disable-log-bin
mysql-test/t/distinct.test +67 −0 Original line number Diff line number Diff line Loading @@ -437,3 +437,70 @@ EXPLAIN SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a; SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a; DROP TABLE t1; # The test case for bug#20836 should be re-enabled when bug#16861 is resolved # The results for the test should be the same as in 4.1. # #Bug #20836: Selecting into variables results in wrong results being returned # #--disable_warnings #DROP TABLE IF EXISTS t1; #--enable_warnings # #CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20) #default NULL); # #INSERT INTO t1 VALUES (1,1,'ORANGE'); #INSERT INTO t1 VALUES (2,2,'APPLE'); #INSERT INTO t1 VALUES (3,2,'APPLE'); #INSERT INTO t1 VALUES (4,3,'PEAR'); # #SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name = #'APPLE'; #SELECT @v1, @v2; # #SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id, #fruit_name HAVING fruit_name = 'APPLE'; #SELECT @v3, @v4; # #SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE #fruit_name = 'APPLE'; #SELECT @v5, @v6, @v7, @v8; # #SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1 #WHERE fruit_name = 'APPLE'; #SELECT @v5, @v6, @v7, @v8, @v9, @v10; # #SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO #@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE'; #SELECT @v11, @v12, @v13, @v14; # #SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE'; #SELECT @v15, @v16; # #SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name = #'APPLE'; #SELECT @v17, @v18; # #--disable_warnings #DROP TABLE IF EXISTS t2; #--enable_warnings # #CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20) #default NULL); # #SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE #'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE'; #LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2; #--exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp # #SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE #'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE'; #LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2; #--exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp # #SELECT @v19, @v20; #SELECT * FROM t2; # #DROP TABLE t1; #DROP TABLE t2;