Current Path : /home/usr.opt/mysql57/mysql-test/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : /home/usr.opt/mysql57/mysql-test/r/create.result |
SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. drop table if exists t1,t2,t3,t4,t5; drop database if exists mysqltest; drop view if exists v1; create table t1 (b char(0)); insert into t1 values (""),(null); select * from t1; b NULL drop table if exists t1; create table t1 (b char(0) not null); create table if not exists t1 (b char(0) not null); Warnings: Note 1050 Table 't1' already exists insert into t1 values (""),(null); Warnings: Warning 1048 Column 'b' cannot be null select * from t1; b drop table t1; create table t1 (a int not null auto_increment,primary key (a)) engine=heap; drop table t1; create table t2 engine=heap select * from t1; ERROR 42S02: Table 'test.t1' doesn't exist create table t2 select auto+1 from t1; ERROR 42S02: Table 'test.t1' doesn't exist drop table if exists t1,t2; Warnings: Note 1051 Unknown table 'test.t1' Note 1051 Unknown table 'test.t2' create table t1 (b char(0) not null, index(b)); ERROR 42000: The used storage engine can't index column 'b' create table t1 (a int not null,b text) engine=heap; ERROR 42000: The used table type doesn't support BLOB/TEXT columns drop table if exists t1; Warnings: Note 1051 Unknown table 'test.t1' create table t1 (ordid int(8) not null auto_increment, ord varchar(50) not null, primary key (ord,ordid)) engine=heap; ERROR 42000: Incorrect table definition; there can be only one auto column and it must be defined as a key create table not_existing_database.test (a int); ERROR 42000: Unknown database 'not_existing_database' create table `a/a` (a int); show create table `a/a`; Table Create Table a/a CREATE TABLE `a/a` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 create table t1 like `a/a`; drop table `a/a`; drop table `t1`; create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa int); ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int); ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long create table t1 (a int default 100 auto_increment); ERROR 42000: Invalid default value for 'a' create table t1 (a tinyint default 1000); ERROR 42000: Invalid default value for 'a' create table t1 (a varchar(5) default 'abcdef'); ERROR 42000: Invalid default value for 'a' create table t1 (a varchar(5) default 'abcde'); insert into t1 values(); select * from t1; a abcde alter table t1 alter column a set default 'abcdef'; ERROR 42000: Invalid default value for 'a' drop table t1; create table 1ea10 (1a20 int,1e int); insert into 1ea10 values(1,1); select 1ea10.1a20,1e+ 1e+10 from 1ea10; 1a20 1e+ 1e+10 1 10000000001 drop table 1ea10; create table t1 (t1.index int); drop table t1; drop database if exists mysqltest; Warnings: Note 1008 Can't drop database 'mysqltest'; database doesn't exist create database mysqltest; create table mysqltest.$test1 (a$1 int, $b int, c$ int); insert into mysqltest.$test1 values (1,2,3); select a$1, $b, c$ from mysqltest.$test1; a$1 $b c$ 1 2 3 create table mysqltest.test2$ (a int); drop table mysqltest.test2$; drop database mysqltest; create table `` (a int); ERROR 42000: Incorrect table name '' drop table if exists ``; ERROR 42000: Incorrect table name '' create table t1 (`` int); ERROR 42000: Incorrect column name '' create table t1 (i int, index `` (i)); ERROR 42000: Incorrect index name '' create table t1 (i int); lock tables t1 read; create table t2 (j int); ERROR HY000: Table 't2' was not locked with LOCK TABLES create temporary table t2 (j int); drop temporary table t2; unlock tables; drop table t1; create table t1 (a int auto_increment not null primary key, B CHAR(20)); insert into t1 (b) values ("hello"),("my"),("world"); create table t2 (key (b)) select * from t1; explain select * from t2 where b="world"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL ref B B 21 const 1 100.00 NULL Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`B` AS `B` from `test`.`t2` where (`test`.`t2`.`B` = 'world') select * from t2 where b="world"; a B 3 world drop table t1,t2; create table t1(x varchar(50) ); create table t2 select x from t1 where 1=2; describe t1; Field Type Null Key Default Extra x varchar(50) YES NULL describe t2; Field Type Null Key Default Extra x varchar(50) YES NULL drop table t2; create table t2 select now() as a , curtime() as b, curdate() as c , 1+1 as d , 1.0 + 1 as e , 33333333333333333 + 3 as f; describe t2; Field Type Null Key Default Extra a datetime NO 0000-00-00 00:00:00 b time NO 00:00:00 c date NO 0000-00-00 d int(3) NO 0 e decimal(3,1) NO 0.0 f bigint(19) NO 0 drop table t2; create table t2 select CAST("2001-12-29" AS DATE) as d, CAST("20:45:11" AS TIME) as t, CAST("2001-12-29 20:45:11" AS DATETIME) as dt; describe t2; Field Type Null Key Default Extra d date YES NULL t time YES NULL dt datetime YES NULL drop table t1,t2; create table t1 (a tinyint); create table t2 (a int) select * from t1; describe t1; Field Type Null Key Default Extra a tinyint(4) YES NULL describe t2; Field Type Null Key Default Extra a int(11) YES NULL drop table if exists t2; create table t2 (a int, a float) select * from t1; ERROR 42S21: Duplicate column name 'a' drop table if exists t2; Warnings: Note 1051 Unknown table 'test.t2' create table t2 (a int) select a as b, a+1 as b from t1; ERROR 42S21: Duplicate column name 'b' drop table if exists t2; Warnings: Note 1051 Unknown table 'test.t2' create table t2 (b int) select a as b, a+1 as b from t1; ERROR 42S21: Duplicate column name 'b' drop table if exists t1,t2; Warnings: Note 1051 Unknown table 'test.t2' CREATE TABLE t1 (a int not null); INSERT INTO t1 values (1),(2),(1); CREATE TABLE t2 (primary key(a)) SELECT * FROM t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' SELECT * from t2; ERROR 42S02: Table 'test.t2' doesn't exist DROP TABLE t1; DROP TABLE IF EXISTS t2; Warnings: Note 1051 Unknown table 'test.t2' create table t1 (a int not null, b int, primary key(a), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b)); Warnings: Warning 1831 Duplicate index 'b_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_5' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_6' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_7' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_8' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_9' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_10' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_11' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_12' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_13' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_14' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_15' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_16' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_17' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_18' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_19' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_20' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_21' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_22' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_23' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_24' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_25' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_26' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_27' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_28' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_29' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_30' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. Warning 1831 Duplicate index 'b_31' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`a`), KEY `b` (`b`), KEY `b_2` (`b`), KEY `b_3` (`b`), KEY `b_4` (`b`), KEY `b_5` (`b`), KEY `b_6` (`b`), KEY `b_7` (`b`), KEY `b_8` (`b`), KEY `b_9` (`b`), KEY `b_10` (`b`), KEY `b_11` (`b`), KEY `b_12` (`b`), KEY `b_13` (`b`), KEY `b_14` (`b`), KEY `b_15` (`b`), KEY `b_16` (`b`), KEY `b_17` (`b`), KEY `b_18` (`b`), KEY `b_19` (`b`), KEY `b_20` (`b`), KEY `b_21` (`b`), KEY `b_22` (`b`), KEY `b_23` (`b`), KEY `b_24` (`b`), KEY `b_25` (`b`), KEY `b_26` (`b`), KEY `b_27` (`b`), KEY `b_28` (`b`), KEY `b_29` (`b`), KEY `b_30` (`b`), KEY `b_31` (`b`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; create table t1 select if(1,'1','0'), month("2002-08-02"); drop table t1; create table t1 select if('2002'='2002','Y','N'); select * from t1; if('2002'='2002','Y','N') Y drop table if exists t1; SET SESSION default_storage_engine="heap"; SELECT @@default_storage_engine; @@default_storage_engine MEMORY CREATE TABLE t1 (a int not null); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 drop table t1; SET SESSION default_storage_engine="gemini"; ERROR 42000: Unknown storage engine 'gemini' SELECT @@default_storage_engine; @@default_storage_engine MEMORY CREATE TABLE t1 (a int not null); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 SET SESSION default_storage_engine=default; drop table t1; create table t1 ( k1 varchar(2), k2 int, primary key(k1,k2)); insert into t1 values ("a", 1), ("b", 2); insert into t1 values ("c", NULL); ERROR 23000: Column 'k2' cannot be null insert into t1 values (NULL, 3); ERROR 23000: Column 'k1' cannot be null insert into t1 values (NULL, NULL); ERROR 23000: Column 'k1' cannot be null drop table t1; create table t1 select x'4132'; drop table t1; create table t1 select 1,2,3; create table if not exists t1 select 1,2; Warnings: Note 1050 Table 't1' already exists create table if not exists t1 select 1,2,3,4; Warnings: Note 1050 Table 't1' already exists create table if not exists t1 select 1; Warnings: Note 1050 Table 't1' already exists select * from t1; 1 2 3 1 2 3 drop table t1; flush status; create table t1 (a int not null, b int, primary key (a)); insert into t1 values (1,1); create table if not exists t1 select 2; Warnings: Note 1050 Table 't1' already exists select * from t1; a b 1 1 create table if not exists t1 select 3 as 'a',4 as 'b'; Warnings: Note 1050 Table 't1' already exists show warnings; Level Code Message Note 1050 Table 't1' already exists show status like "Opened_tables"; Variable_name Value Opened_tables 1 select * from t1; a b 1 1 drop table t1; create table `t1 `(a int); ERROR 42000: Incorrect table name 't1 ' create database `db1 `; ERROR 42000: Incorrect database name 'db1 ' create table t1(`a ` int); ERROR 42000: Incorrect column name 'a ' create table t1 (a int,); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 create table t1 (a int,,b int); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'b int)' at line 1 create table t1 (,b int); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'b int)' at line 1 create table t1 (a int, key(a)); create table t2 (b int, foreign key(b) references t1(a), key(b)); drop table if exists t2,t1; create table t1(id int not null, name char(20)); insert into t1 values(10,'mysql'),(20,'monty- the creator'); create table t2(id int not null); insert into t2 values(10),(20); create table t3 like t1; show create table t3; Table Create Table t3 CREATE TABLE `t3` ( `id` int(11) NOT NULL, `name` char(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 select * from t3; id name create table if not exists t3 like t1; Warnings: Note 1050 Table 't3' already exists select @@warning_count; @@warning_count 1 create temporary table t3 like t2; show create table t3; Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `id` int(11) NOT NULL ) ENGINE=TMP_TABLE_ENGINE DEFAULT CHARSET=latin1 select * from t3; id drop table t3; show create table t3; Table Create Table t3 CREATE TABLE `t3` ( `id` int(11) NOT NULL, `name` char(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 select * from t3; id name drop table t2, t3; create database mysqltest; create table mysqltest.t3 like t1; create temporary table t3 like mysqltest.t3; show create table t3; Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `id` int(11) NOT NULL, `name` char(20) DEFAULT NULL ) ENGINE=TMP_TABLE_ENGINE DEFAULT CHARSET=latin1 create table t2 like t3; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `name` char(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 select * from t2; id name create table t3 like t1; create table t3 like mysqltest.t3; ERROR 42S01: Table 't3' already exists create table non_existing_database.t1 like t1; ERROR 42000: Unknown database 'non_existing_database' create table t3 like non_existing_table; ERROR 42S02: Table 'test.non_existing_table' doesn't exist create temporary table t3 like t1; ERROR 42S01: Table 't3' already exists drop table t1, t2, t3; drop table t3; drop database mysqltest; create table t1 (i int); create table t2 (j int); lock tables t1 read; create table t3 like t1; ERROR HY000: Table 't3' was not locked with LOCK TABLES create temporary table t3 like t1; drop temporary table t3; create temporary table t3 like t2; ERROR HY000: Table 't2' was not locked with LOCK TABLES unlock tables; drop tables t1, t2; SET SESSION default_storage_engine="heap"; SELECT @@default_storage_engine; @@default_storage_engine MEMORY CREATE TABLE t1 (a int not null); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 drop table t1; SET SESSION default_storage_engine="gemini"; ERROR 42000: Unknown storage engine 'gemini' SELECT @@default_storage_engine; @@default_storage_engine MEMORY CREATE TABLE t1 (a int not null); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 SET SESSION default_storage_engine=default; drop table t1; create table t1(a int,b int,c int unsigned,d date,e char,f datetime,g time,h blob); insert into t1(a)values(1); insert into t1(a,b,c,d,e,f,g,h) values(2,-2,2,'1825-12-14','a','2003-1-1 3:2:1','4:3:2','binary data'); select * from t1; a b c d e f g h 1 NULL NULL NULL NULL NULL NULL NULL 2 -2 2 1825-12-14 a 2003-01-01 03:02:01 04:03:02 binary data select a, ifnull(b,cast(-7 as signed)) as b, ifnull(c,cast(7 as unsigned)) as c, ifnull(d,cast('2000-01-01' as date)) as d, ifnull(e,cast('b' as char)) as e, ifnull(f,cast('2000-01-01' as datetime)) as f, ifnull(g,cast('5:4:3' as time)) as g, ifnull(h,cast('yet another binary data' as binary)) as h, addtime(cast('1:0:0' as time),cast('1:0:0' as time)) as dd from t1; a b c d e f g h dd 1 -7 7 2000-01-01 b 2000-01-01 00:00:00 05:04:03 yet another binary data 02:00:00 2 -2 2 1825-12-14 a 2003-01-01 03:02:01 04:03:02 binary data 02:00:00 create table t2 select a, ifnull(b,cast(-7 as signed)) as b, ifnull(c,cast(7 as unsigned)) as c, ifnull(d,cast('2000-01-01' as date)) as d, ifnull(e,cast('b' as char)) as e, ifnull(f,cast('2000-01-01' as datetime)) as f, ifnull(g,cast('5:4:3' as time)) as g, ifnull(h,cast('yet another binary data' as binary)) as h, addtime(cast('1:0:0' as time),cast('1:0:0' as time)) as dd from t1; explain t2; Field Type Null Key Default Extra a int(11) YES NULL b bigint(11) NO 0 c bigint(10) unsigned NO 0 d date YES NULL e varchar(1) NO f datetime YES NULL g time YES NULL h longblob NO NULL dd time YES NULL select * from t2; a b c d e f g h dd 1 -7 7 2000-01-01 b 2000-01-01 00:00:00 05:04:03 yet another binary data 02:00:00 2 -2 2 1825-12-14 a 2003-01-01 03:02:01 04:03:02 binary data 02:00:00 drop table t1, t2; create table t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float(3,2), g double(4,3), h decimal(5,4), i year, j date, k timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, l datetime, m enum('a','b'), n set('a','b'), o char(10)); create table t2 select ifnull(a,a), ifnull(b,b), ifnull(c,c), ifnull(d,d), ifnull(e,e), ifnull(f,f), ifnull(g,g), ifnull(h,h), ifnull(i,i), ifnull(j,j), ifnull(k,k), ifnull(l,l), ifnull(m,m), ifnull(n,n), ifnull(o,o) from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `ifnull(a,a)` tinyint(4) DEFAULT NULL, `ifnull(b,b)` smallint(6) DEFAULT NULL, `ifnull(c,c)` mediumint(9) DEFAULT NULL, `ifnull(d,d)` int(11) DEFAULT NULL, `ifnull(e,e)` bigint(20) DEFAULT NULL, `ifnull(f,f)` float(3,2) DEFAULT NULL, `ifnull(g,g)` double(4,3) DEFAULT NULL, `ifnull(h,h)` decimal(5,4) DEFAULT NULL, `ifnull(i,i)` year(4) DEFAULT NULL, `ifnull(j,j)` date DEFAULT NULL, `ifnull(k,k)` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `ifnull(l,l)` datetime DEFAULT NULL, `ifnull(m,m)` varchar(1) DEFAULT NULL, `ifnull(n,n)` varchar(3) DEFAULT NULL, `ifnull(o,o)` varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1,t2; create table t1(str varchar(10) default 'def',strnull varchar(10),intg int default '10',rel double default '3.14'); insert into t1 values ('','',0,0.0); describe t1; Field Type Null Key Default Extra str varchar(10) YES def strnull varchar(10) YES NULL intg int(11) YES 10 rel double YES 3.14 create table t2 select default(str) as str, default(strnull) as strnull, default(intg) as intg, default(rel) as rel from t1; describe t2; Field Type Null Key Default Extra str varchar(10) YES NULL strnull varchar(10) YES NULL intg int(11) YES NULL rel double YES NULL drop table t1, t2; create table t1(name varchar(10), age smallint default -1); describe t1; Field Type Null Key Default Extra name varchar(10) YES NULL age smallint(6) YES -1 create table t2(name varchar(10), age smallint default - 1); describe t2; Field Type Null Key Default Extra name varchar(10) YES NULL age smallint(6) YES -1 drop table t1, t2; create table t1(cenum enum('a'), cset set('b')); create table t2(cenum enum('a','a'), cset set('b','b')); Warnings: Note 1291 Column 'cenum' has duplicated value 'a' in ENUM Note 1291 Column 'cset' has duplicated value 'b' in SET create table t3(cenum enum('a','A','a','c','c'), cset set('b','B','b','d','d')); Warnings: Note 1291 Column 'cenum' has duplicated value 'a' in ENUM Note 1291 Column 'cenum' has duplicated value 'A' in ENUM Note 1291 Column 'cenum' has duplicated value 'c' in ENUM Note 1291 Column 'cset' has duplicated value 'b' in SET Note 1291 Column 'cset' has duplicated value 'B' in SET Note 1291 Column 'cset' has duplicated value 'd' in SET drop table t1, t2, t3; create database mysqltest; use mysqltest; select database(); database() mysqltest drop database mysqltest; select database(); database() NULL create user mysqltest_1; select database(), user(); database() user() NULL mysqltest_1@localhost drop user mysqltest_1; use test; create table t1 (a int, index `primary` (a)); ERROR 42000: Incorrect index name 'primary' create table t1 (a int, index `PRIMARY` (a)); ERROR 42000: Incorrect index name 'PRIMARY' create table t1 (`primary` int, index(`primary`)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `primary` int(11) DEFAULT NULL, KEY `primary_2` (`primary`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 create table t2 (`PRIMARY` int, index(`PRIMARY`)); show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `PRIMARY` int(11) DEFAULT NULL, KEY `PRIMARY_2` (`PRIMARY`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 create table t3 (a int); alter table t3 add index `primary` (a); ERROR 42000: Incorrect index name 'primary' alter table t3 add index `PRIMARY` (a); ERROR 42000: Incorrect index name 'PRIMARY' create table t4 (`primary` int); alter table t4 add index(`primary`); show create table t4; Table Create Table t4 CREATE TABLE `t4` ( `primary` int(11) DEFAULT NULL, KEY `primary_2` (`primary`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 create table t5 (`PRIMARY` int); alter table t5 add index(`PRIMARY`); show create table t5; Table Create Table t5 CREATE TABLE `t5` ( `PRIMARY` int(11) DEFAULT NULL, KEY `PRIMARY_2` (`PRIMARY`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1, t2, t3, t4, t5; CREATE TABLE t1(id varchar(10) NOT NULL PRIMARY KEY, dsc longtext); INSERT INTO t1 VALUES ('5000000001', NULL),('5000000003', 'Test'),('5000000004', NULL); CREATE TABLE t2(id varchar(15) NOT NULL, proc varchar(100) NOT NULL, runID varchar(16) NOT NULL, start datetime NOT NULL, PRIMARY KEY (id,proc,runID,start)); INSERT INTO t2 VALUES ('5000000001', 'proc01', '20031029090650', '2003-10-29 13:38:40'),('5000000001', 'proc02', '20031029090650', '2003-10-29 13:38:51'),('5000000001', 'proc03', '20031029090650', '2003-10-29 13:38:11'),('5000000002', 'proc09', '20031024013310', '2003-10-24 01:33:11'),('5000000002', 'proc09', '20031024153537', '2003-10-24 15:36:04'),('5000000004', 'proc01', '20031024013641', '2003-10-24 01:37:29'),('5000000004', 'proc02', '20031024013641', '2003-10-24 01:37:39'); CREATE TABLE t3 SELECT t1.dsc,COUNT(DISTINCT t2.id) AS countOfRuns FROM t1 LEFT JOIN t2 ON (t1.id=t2.id) GROUP BY t1.id; SELECT * FROM t3; dsc countOfRuns NULL 1 Test 0 NULL 1 drop table t1, t2, t3; create table t1 (b bool not null default false); create table t2 (b bool not null default true); insert into t1 values (); insert into t2 values (); select * from t1; b 0 select * from t2; b 1 drop table t1,t2; create table t1 (a int); create table t1 select * from t1; ERROR 42S01: Table 't1' already exists create table t2 union = (t1) select * from t1; ERROR HY000: 'test.t2' is not BASE TABLE flush tables with read lock; unlock tables; drop table t1; create table t1(column.name int); ERROR 42000: Incorrect table name 'column' create table t1(test.column.name int); ERROR 42000: Incorrect table name 'column' create table t1(xyz.t1.name int); ERROR 42000: Incorrect database name 'xyz' create table t1(t1.name int); create table t2(test.t2.name int); drop table t1,t2; CREATE TABLE t1 (f1 VARCHAR(255) CHARACTER SET utf8); CREATE TABLE t2 AS SELECT LEFT(f1,171) AS f2 FROM t1 UNION SELECT LEFT(f1,171) AS f2 FROM t1; DESC t2; Field Type Null Key Default Extra f2 varchar(171) YES NULL DROP TABLE t1,t2; CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1; SELECT * FROM t12913; f1 a DROP TABLE t12913; create database mysqltest; use mysqltest; drop database mysqltest; create table test.t1 like x; ERROR 3D000: No database selected drop table if exists test.t1; create database mysqltest; use mysqltest; create view v1 as select 'foo' from dual; create table t1 like v1; ERROR HY000: 'mysqltest.v1' is not BASE TABLE drop view v1; drop database mysqltest; create database mysqltest; create database if not exists mysqltest character set latin2; Warnings: Note 1007 Can't create database 'mysqltest'; database exists show create database mysqltest; Database Create Database mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 */ drop database mysqltest; use test; create table t1 (a int); create table if not exists t1 (a int); Warnings: Note 1050 Table 't1' already exists drop table t1; create table t1 ( a varchar(112) charset utf8 collate utf8_bin not null, primary key (a) ) select 'test' as a ; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(112) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; CREATE TABLE t2 ( a int(11) default NULL ); insert into t2 values(111); create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) ) select a, 1 as b from t2 ; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `b` int(11) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) ) select a, 1 as c from t2 ; Warnings: Warning 1364 Field 'b' doesn't have a default value show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) NOT NULL, `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `c` int(1) NOT NULL DEFAULT '0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int null, primary key (a) ) select a, 1 as c from t2 ; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `c` int(1) NOT NULL DEFAULT '0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) ) select 'a' as a , 1 as b from t2 ; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `b` int(11) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; create table t1 ( a varchar(12) charset utf8 collate utf8_bin, b int not null, primary key (a) ) select 'a' as a , 1 as b from t2 ; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `b` int(11) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1, t2; create table t1 ( a1 int not null, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int ); insert into t1 values (1,1,1, 1,1,1, 1,1,1); create table t2 ( a1 varchar(12) charset utf8 collate utf8_bin not null, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, primary key (a1) ) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ; drop table t2; create table t2 ( a1 varchar(12) charset utf8 collate utf8_bin, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int ) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1; drop table t1, t2; create table t1 ( a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int ); insert into t1 values (1,1,1, 1,1,1, 1,1,1); create table t2 ( a1 varchar(12) charset utf8 collate utf8_bin not null, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, primary key (a1) ) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ; drop table t2; create table t2 ( a int default 3, b int default 3) select a1,a2 from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` int(11) DEFAULT '3', `b` int(11) DEFAULT '3', `a1` int(11) DEFAULT NULL, `a2` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1, t2; create table t1(a set("a,b","c,d") not null); ERROR 22007: Illegal set 'a,b' value found during parsing create table t1 (i int) engine=myisam max_rows=100000000000; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295 alter table t1 max_rows=100; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=100 alter table t1 max_rows=100000000000; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295 drop table t1; create table t1 select * from t2; ERROR 42S02: Table 'test.t2' doesn't exist create table t1 select * from t1; ERROR 42S02: Table 'test.t1' doesn't exist create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin); ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce' create table t1 (primary key(a)) select "b" as b; ERROR 42000: Key column 'a' doesn't exist in table create table t1 (a int); create table if not exists t1 select 1 as a, 2 as b; Warnings: Note 1050 Table 't1' already exists drop table t1; create table t1 (primary key (a)) (select 1 as a) union all (select 1 as a); ERROR 23000: Duplicate entry '1' for key 'PRIMARY' create table t1 (i int); create table t1 select 1 as i; ERROR 42S01: Table 't1' already exists create table if not exists t1 select 1 as i; Warnings: Note 1050 Table 't1' already exists select * from t1; i create table if not exists t1 select * from t1; Warnings: Note 1050 Table 't1' already exists select * from t1; i drop table t1; create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1_bin); ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce' create temporary table t1 (j int); create table if not exists t1 select 1; select * from t1; j drop temporary table t1; select * from t1; 1 1 drop table t1; create table t1 (i int); insert into t1 values (1), (2); lock tables t1 read; create table t2 select * from t1; ERROR HY000: Table 't2' was not locked with LOCK TABLES create table if not exists t2 select * from t1; ERROR HY000: Table 't2' was not locked with LOCK TABLES unlock tables; create table t2 (j int); lock tables t1 read; create table t2 select * from t1; ERROR HY000: Table 't2' was not locked with LOCK TABLES create table if not exists t2 select * from t1; ERROR HY000: Table 't2' was not locked with LOCK TABLES unlock tables; lock table t1 read, t2 read; create table t2 select * from t1; ERROR 42S01: Table 't2' already exists create table if not exists t2 select * from t1; Warnings: Note 1050 Table 't2' already exists unlock tables; lock table t1 read, t2 write; create table t2 select * from t1; ERROR 42S01: Table 't2' already exists create table if not exists t2 select * from t1; Warnings: Note 1050 Table 't2' already exists select * from t1; i 1 2 unlock tables; drop table t2; lock tables t1 read; create temporary table t2 select * from t1; create temporary table if not exists t2 select * from t1; Warnings: Note 1050 Table 't2' already exists select * from t2; i 1 2 unlock tables; drop table t1, t2; create table t1 (upgrade int); drop table t1; Bug #26104 Bug on foreign key class constructor Check that ref_columns is initalized correctly in the constructor and semantic checks in mysql_prepare_table work. We do not need a storage engine that supports foreign keys for this test, as the checks are purely syntax-based, and the syntax is supported for all engines. drop table if exists t1,t2; create table t1(a int not null, b int not null, primary key (a, b)); create table t2(a int not null, b int not null, c int not null, primary key (a), foreign key fk_bug26104 (b,c) references t1(a)); ERROR 42000: Incorrect foreign key definition for 'fk_bug26104': Key reference and table reference don't match drop table t1; create table t1(f1 int,f2 int); insert into t1 value(1,1),(1,2),(1,3),(2,1),(2,2),(2,3); flush status; create table t2 select sql_big_result f1,count(f2) from t1 group by f1; show status like 'handler_read%'; Variable_name Value Handler_read_first 1 Handler_read_key 1 Handler_read_last 0 Handler_read_next 0 Handler_read_prev 0 Handler_read_rnd 0 Handler_read_rnd_next 7 drop table t1,t2; CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1)); DROP TABLE t1; CREATE TABLE t1(c1 VARCHAR(33), KEY (c1) USING BTREE); DROP TABLE t1; CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1) USING HASH) ENGINE=MEMORY; SHOW INDEX FROM t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 1 c1 1 c1 NULL 0 NULL NULL YES HASH DROP TABLE t1; CREATE TABLE t1(c1 VARCHAR(33), KEY USING HASH (c1) USING BTREE) ENGINE=MEMORY; SHOW INDEX FROM t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 1 c1 1 c1 A NULL NULL NULL YES BTREE DROP TABLE t1; create user mysqltest_1@'test@test'; ERROR HY000: Malformed hostname (illegal symbol: '@') CREATE TABLE t1 (a INTEGER AUTO_INCREMENT PRIMARY KEY, b INTEGER NOT NULL); INSERT IGNORE INTO t1 (b) VALUES (5); CREATE TABLE IF NOT EXISTS t2 (a INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) SELECT a FROM t1; INSERT INTO t2 SELECT a FROM t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' INSERT INTO t2 SELECT a FROM t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' DROP TABLE t1, t2; # # BUG#46384 - mysqld segfault when trying to create table with same # name as existing view # CREATE TABLE t1 (a INT); CREATE TABLE t2 (a INT); INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t2 VALUES (1),(2),(3); CREATE VIEW v1 AS SELECT t1.a FROM t1, t2; CREATE TABLE v1 AS SELECT * FROM t1; ERROR 42S01: Table 'v1' already exists DROP VIEW v1; DROP TABLE t1,t2; End of 5.0 tests CREATE TABLE t1 (a int, b int); insert into t1 values (1,1),(1,2); CREATE TABLE t2 (primary key (a)) select * from t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' drop table if exists t2; Warnings: Note 1051 Unknown table 'test.t2' CREATE TEMPORARY TABLE t2 (primary key (a)) select * from t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' drop table if exists t2; Warnings: Note 1051 Unknown table 'test.t2' CREATE TABLE t2 (a int, b int, primary key (a)); INSERT INTO t2 select * from t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' SELECT * from t2; a b TRUNCATE table t2; INSERT INTO t2 select * from t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' SELECT * from t2; a b drop table t2; CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) ENGINE=InnoDB; INSERT INTO t2 SELECT * FROM t1; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' SELECT * from t2; a b drop table t1,t2; CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long DROP DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long USE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long SHOW CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long set names utf8; create database имя_базы_в_кодировке_утф8_длиной_больше_чем_45; use имя_базы_в_кодировке_утф8_длиной_больше_чем_45; select database(); database() имя_базы_в_кодировке_утф8_длиной_больше_чем_45 use test; select SCHEMA_NAME from information_schema.schemata where schema_name='имя_базы_в_кодировке_утф8_длиной_больше_чем_45'; SCHEMA_NAME имя_базы_в_кодировке_утф8_длиной_больше_чем_45 drop database имя_базы_в_кодировке_утф8_длиной_больше_чем_45; create table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 ( имя_поля_в_кодировке_утф8_длиной_больше_чем_45 int, index имя_индекса_в_кодировке_утф8_длиной_больше_чем_48 (имя_поля_в_кодировке_утф8_длиной_больше_чем_45) ); create view имя_вью_кодировке_утф8_длиной_больше_чем_42 as select имя_поля_в_кодировке_утф8_длиной_больше_чем_45 from имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48; select * from имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48; имя_поля_в_кодировке_утф8_длиной_больше_чем_45 select TABLE_NAME from information_schema.tables where table_schema='test'; TABLE_NAME имя_вью_кодировке_утф8_длиной_больше_чем_42 имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 select COLUMN_NAME from information_schema.columns where table_schema='test'; COLUMN_NAME имя_поля_в_кодировке_утф8_длиной_больше_чем_45 имя_поля_в_кодировке_утф8_длиной_больше_чем_45 select INDEX_NAME from information_schema.statistics where table_schema='test'; INDEX_NAME имя_индекса_в_кодировке_утф8_длиной_больше_чем_48 select TABLE_NAME from information_schema.views where table_schema='test'; TABLE_NAME имя_вью_кодировке_утф8_длиной_больше_чем_42 show create table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48; Table Create Table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 CREATE TABLE `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` ( `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` int(11) DEFAULT NULL, KEY `имя_индекса_в_кодировке_утф8_длиной_больше_чем_48` (`имя_поля_в_кодировке_утф8_длиной_больше_чем_45`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 show create view имя_вью_кодировке_утф8_длиной_больше_чем_42; View Create View character_set_client collation_connection имя_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имя_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` AS `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` from `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` utf8 utf8_general_ci create trigger имя_триггера_в_кодировке_утф8_длиной_больше_чем_49 before insert on имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 for each row set @a:=1; select TRIGGER_NAME from information_schema.triggers where trigger_schema='test'; TRIGGER_NAME имя_триггера_в_кодировке_утф8_длиной_больше_чем_49 drop trigger имя_триггера_в_кодировке_утф8_длиной_больше_чем_49; create trigger очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66 before insert on имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 for each row set @a:=1; ERROR 42000: Identifier name 'очень_очень_очень_очень_очень_очень_очень_очень_длинна' is too long drop trigger очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66; ERROR 42000: Identifier name 'очень_очень_очень_очень_очень_очень_очень_очень_длинна' is too long create procedure имя_процедуры_в_кодировке_утф8_длиной_больше_чем_50() begin end; select ROUTINE_NAME from information_schema.routines where routine_schema='test'; ROUTINE_NAME имя_процедуры_в_кодировке_утф8_длиной_больше_чем_50 drop procedure имя_процедуры_в_кодировке_утф8_длиной_больше_чем_50; create procedure очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66() begin end; ERROR 42000: Identifier name 'очень_очень_очень_очень_очень_очень_очень_очень_длинна' is too long create function имя_функции_в_кодировке_утф8_длиной_больше_чем_49() returns int return 0; select ROUTINE_NAME from information_schema.routines where routine_schema='test'; ROUTINE_NAME имя_функции_в_кодировке_утф8_длиной_больше_чем_49 drop function имя_функции_в_кодировке_утф8_длиной_больше_чем_49; create function очень_очень_очень_очень_очень_очень_очень_очень_длинная_строка_66() returns int return 0; ERROR 42000: Identifier name 'очень_очень_очень_очень_очень_очень_очень_очень_длинна' is too long drop view имя_вью_кодировке_утф8_длиной_больше_чем_42; drop table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48; set names default; drop table if exists t1,t2,t3; drop function if exists f1; create function f1() returns int begin declare res int; create temporary table t3 select 1 i; set res:= (select count(*) from t1); drop temporary table t3; return res; end| create table t1 as select 1; create table t2 as select f1() from t1; drop table t1,t2; drop function f1; create table t1 like information_schema.processlist; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `ID` bigint(21) unsigned NOT NULL DEFAULT '0', `USER` varchar(32) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', `TIME` int(7) NOT NULL DEFAULT '0', `STATE` varchar(64) DEFAULT NULL, `INFO` longtext ) ENGINE=TMP_TABLE_ENGINE DEFAULT CHARSET=utf8 drop table t1; create temporary table t1 like information_schema.processlist; show create table t1; Table Create Table t1 CREATE TEMPORARY TABLE `t1` ( `ID` bigint(21) unsigned NOT NULL DEFAULT '0', `USER` varchar(32) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', `TIME` int(7) NOT NULL DEFAULT '0', `STATE` varchar(64) DEFAULT NULL, `INFO` longtext ) ENGINE=TMP_TABLE_ENGINE DEFAULT CHARSET=utf8 drop table t1; create table t1 like information_schema.character_sets; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '', `DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '', `DESCRIPTION` varchar(60) NOT NULL DEFAULT '', `MAXLEN` bigint(3) NOT NULL DEFAULT '0' ) ENGINE=MEMORY DEFAULT CHARSET=utf8 drop table t1; # -- # -- Bug#21380: DEFAULT definition not always transfered by CREATE # -- TABLE/SELECT to the new table. # -- DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; CREATE TABLE t1( c1 INT DEFAULT 12 COMMENT 'column1', c2 INT NULL COMMENT 'column2', c3 INT NOT NULL COMMENT 'column3', c4 VARCHAR(255) CHARACTER SET utf8 NOT NULL DEFAULT 'a', c5 VARCHAR(255) COLLATE utf8_unicode_ci NULL DEFAULT 'b', c6 VARCHAR(255)) COLLATE latin1_bin; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT '12' COMMENT 'column1', `c2` int(11) DEFAULT NULL COMMENT 'column2', `c3` int(11) NOT NULL COMMENT 'column3', `c4` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT 'a', `c5` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'b', `c6` varchar(255) COLLATE latin1_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `c1` int(11) DEFAULT '12' COMMENT 'column1', `c2` int(11) DEFAULT NULL COMMENT 'column2', `c3` int(11) NOT NULL COMMENT 'column3', `c4` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT 'a', `c5` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'b', `c6` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # -- End of test case for Bug#21380. # -- # -- Bug#18834: ALTER TABLE ADD INDEX on table with two timestamp fields # -- DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; DROP TABLE IF EXISTS t3; CREATE TABLE t1(c1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c2 TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'); SET sql_mode = 'NO_ZERO_DATE'; Warnings: Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. CREATE TABLE t2(c1 TIMESTAMP, c2 TIMESTAMP DEFAULT 0); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 DROP TABLE t2; CREATE TABLE t2(c1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c2 TIMESTAMP NOT NULL); ERROR 42000: Invalid default value for 'c2' # -- Check that NULL column still can be created. CREATE TABLE t2(c1 TIMESTAMP NULL); # -- Check ALTER TABLE. ALTER TABLE t1 ADD INDEX(c1); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 # -- Check DATETIME. SET sql_mode = ''; CREATE TABLE t3(c1 DATETIME NOT NULL) ENGINE=MYISAM; INSERT INTO t3 VALUES (0); SET sql_mode = TRADITIONAL; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. ALTER TABLE t3 ADD INDEX(c1); ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'c1' at row 1 # -- Cleanup. SET sql_mode = ''; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; # -- End of Bug#18834. # -- # -- Bug#34274: Invalid handling of 'DEFAULT 0' for YEAR data type. # -- DROP TABLE IF EXISTS t1; CREATE TABLE t1(c1 YEAR DEFAULT 2008, c2 YEAR DEFAULT 0); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` year(4) DEFAULT '2008', `c2` year(4) DEFAULT '0000' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES(); SELECT * FROM t1; c1 c2 2008 0000 ALTER TABLE t1 MODIFY c1 YEAR DEFAULT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` year(4) DEFAULT '0000', `c2` year(4) DEFAULT '0000' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES(); SELECT * FROM t1; c1 c2 2008 0000 0000 0000 DROP TABLE t1; # -- End of Bug#34274 create table `me:i`(id int); drop table `me:i`; # -- # -- Bug#45829: CREATE TABLE TRANSACTIONAL PAGE_CHECKSUM ROW_FORMAT=PAGE accepted, does nothing # -- drop table if exists t1,t2,t3; create table t1 (a int) transactional=0; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'transactional=0' at line 1 create table t2 (a int) page_checksum=1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'page_checksum=1' at line 1 create table t3 (a int) row_format=page; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'page' at line 1 # -- End of Bug#45829 End of 5.1 tests # -- # -- Bug #43054 Assertion `!table->auto_increment_field_not_null' # -- failed when redefining trigger CREATE TABLE B ( pk INTEGER AUTO_INCREMENT, int_key INTEGER NOT NULL, PRIMARY KEY (pk), KEY (int_key) ); INSERT IGNORE INTO B VALUES ('9', '9'); CREATE TABLE IF NOT EXISTS t1 ( `pk` INTEGER NOT NULL AUTO_INCREMENT , `int` INTEGER , PRIMARY KEY ( `pk` ) ) SELECT `pk` , `int_key` FROM B ; CREATE TRIGGER f BEFORE INSERT ON t1 FOR EACH ROW BEGIN INSERT INTO t1 ( `int` ) VALUES (4 ),( 8 ),( 2 ) ; END ; | INSERT INTO t1 (pk, int_key) SELECT `pk` , `int_key` FROM B ; ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. CREATE TRIGGER f BEFORE INSERT ON t1 FOR EACH ROW BEGIN UPDATE A SET `pk`=1 WHERE `pk`=0 ; END ;| ERROR HY000: Trigger already exists DROP TABLE t1; DROP TABLE B; # # Bug #47107 assert in notify_shared_lock on incorrect # CREATE TABLE , HANDLER # DROP TABLE IF EXISTS t1; CREATE TABLE t1(f1 integer); # The following CREATE TABLEs before gave an assert. HANDLER t1 OPEN AS A; CREATE TABLE t1 SELECT 1 AS f2; ERROR 42S01: Table 't1' already exists HANDLER t1 OPEN AS A; CREATE TABLE t1(f1 integer); ERROR 42S01: Table 't1' already exists CREATE TABLE t2(f1 integer); HANDLER t1 OPEN AS A; CREATE TABLE t1 LIKE t2; ERROR 42S01: Table 't1' already exists DROP TABLE t2; DROP TABLE t1; # # Bug #48800 CREATE TABLE t...SELECT fails if t is a # temporary table # CREATE TEMPORARY TABLE t1 (a INT); CREATE TABLE t1 (a INT); CREATE TEMPORARY TABLE t2 (a INT); CREATE VIEW t2 AS SELECT 1; CREATE TABLE t3 (a INT); CREATE TEMPORARY TABLE t3 SELECT 1; CREATE TEMPORARY TABLE t4 (a INT); CREATE TABLE t4 AS SELECT 1; DROP TEMPORARY TABLE t1, t2, t3, t4; DROP TABLE t1, t3, t4; DROP VIEW t2; # # Bug #49193 CREATE TABLE reacts differently depending # on whether data is selected or not # CREATE TEMPORARY TABLE t2 (ID INT); INSERT INTO t2 VALUES (1),(2),(3); CREATE TEMPORARY TABLE t1 (ID INT); CREATE TABLE IF NOT EXISTS t1 (ID INT); INSERT INTO t1 SELECT * FROM t2; SELECT * FROM t1; ID 1 2 3 DROP TEMPORARY TABLE t1; SELECT * FROM t1; ID DROP TABLE t1; CREATE TEMPORARY TABLE t1 (ID INT); CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2; SELECT * FROM t1; ID DROP TEMPORARY TABLE t1; SELECT * FROM t1; ID 1 2 3 DROP TABLE t1; CREATE TEMPORARY TABLE t1 (ID INT); CREATE TABLE t1 SELECT * FROM t2; SELECT * FROM t1; ID DROP TEMPORARY TABLE t1; SELECT * FROM t1; ID 1 2 3 DROP TABLE t1; DROP TEMPORARY TABLE t2; # # Bug #22909 "Using CREATE ... LIKE is possible to create field # with invalid default value" # # Altough original bug report suggests to use older version of MySQL # for producing .FRM with invalid defaults we use sql_mode to achieve # the same effect. drop tables if exists t1, t2; # Attempt to create table with invalid default should fail in normal mode create table t1 (dt datetime default '2008-02-31 00:00:00'); ERROR 42000: Invalid default value for 'dt' set @old_mode= @@sql_mode; set @@sql_mode='ALLOW_INVALID_DATES'; # The same should be possible in relaxed mode create table t1 (dt datetime default '2008-02-31 00:00:00'); set @@sql_mode= @old_mode; # In normal mode attempt to create copy of table with invalid # default should fail create table t2 like t1; ERROR 42000: Invalid default value for 'dt' set @@sql_mode='ALLOW_INVALID_DATES'; # But should work in relaxed mode create table t2 like t1; # Check that table definitions match show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `dt` datetime DEFAULT '2008-02-31 00:00:00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `dt` datetime DEFAULT '2008-02-31 00:00:00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 set @@sql_mode= @old_mode; drop tables t1, t2; CREATE TABLE t1 (id int); CREATE TABLE t2 (id int); INSERT INTO t1 VALUES (1), (1); INSERT INTO t2 VALUES (2), (2); CREATE VIEW v1 AS SELECT id FROM t2; CREATE TABLE IF NOT EXISTS v1(a int, b int) SELECT id, id FROM t1; Warnings: Note 1050 Table 'v1' already exists SHOW CREATE TABLE v1; View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t2`.`id` AS `id` from `t2` latin1 latin1_swedish_ci SELECT * FROM t2; id 2 2 SELECT * FROM v1; id 2 2 DROP VIEW v1; CREATE TEMPORARY TABLE tt1 AS SELECT id FROM t2; CREATE TEMPORARY TABLE IF NOT EXISTS tt1(a int, b int) SELECT id, id FROM t1; Warnings: Note 1050 Table 'tt1' already exists SELECT * FROM t2; id 2 2 SELECT * FROM tt1; id 2 2 DROP TEMPORARY TABLE tt1; DROP TABLE t1, t2; # # WL#5370 "Changing 'CREATE TABLE IF NOT EXISTS ... SELECT' # behaviour. # # # 1. Basic case: a base table. # create table if not exists t1 (a int) select 1 as a; select * from t1; a 1 create table t1 (a int) select 2 as a; ERROR 42S01: Table 't1' already exists select * from t1; a 1 # Produces an essential warning ER_TABLE_EXISTS. create table if not exists t1 (a int) select 2 as a; Warnings: Note 1050 Table 't1' already exists # No new data in t1. select * from t1; a 1 drop table t1; # # 2. A temporary table. # create temporary table if not exists t1 (a int) select 1 as a; select * from t1; a 1 create temporary table t1 (a int) select 2 as a; ERROR 42S01: Table 't1' already exists select * from t1; a 1 # An essential warning. create temporary table if not exists t1 (a int) select 2 as a; Warnings: Note 1050 Table 't1' already exists # No new data in t1. select * from t1; a 1 drop temporary table t1; # # 3. Creating a base table in presence of a temporary table. # create table t1 (a int); # Create a view for convenience of querying t1 shadowed by a temp. create view v1 as select a from t1; drop table t1; create temporary table t1 (a int) select 1 as a; create table if not exists t1 (a int) select 2 as a; select * from t1; a 1 select * from v1; a 2 # Note: an essential warning. create table if not exists t1 (a int) select 3 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 1 select * from v1; a 2 drop temporary table t1; select * from t1; a 2 drop view v1; drop table t1; # # 4. Creating a temporary table in presence of a base table. # create table t1 (a int) select 1 as a; create temporary table if not exists t1 select 2 as a; select * from t1; a 2 # Note: an essential warning. create temporary table if not exists t1 select 3 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 2 drop temporary table t1; select * from t1; a 1 drop table t1; # # 5. Creating a base table in presence of an updatable view. # create table t2 (a int unique); create view t1 as select a from t2; insert into t1 (a) values (1); create table t1 (a int); ERROR 42S01: Table 't1' already exists # Note: an essential warning. create table if not exists t1 (a int); Warnings: Note 1050 Table 't1' already exists create table t1 (a int) select 2 as a; ERROR 42S01: Table 't1' already exists select * from t1; a 1 # Note: an essential warning. create table if not exists t1 (a int) select 2 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 1 select * from t2; a 1 create temporary table if not exists t1 (a int) select 3 as a; select * from t1; a 3 select * from t2; a 1 # Note: an essential warning. create temporary table if not exists t1 (a int) select 4 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 3 select * from t2; a 1 drop temporary table t1; # # Repeating the test with a non-updatable view. # drop view t1; create view t1 as select a + 5 as a from t2; insert into t1 (a) values (1); ERROR HY000: Column 'a' is not updatable update t1 set a=3 where a=2; ERROR HY000: Column 'a' is not updatable create table t1 (a int); ERROR 42S01: Table 't1' already exists # Note: an essential warning. create table if not exists t1 (a int); Warnings: Note 1050 Table 't1' already exists create table t1 (a int) select 2 as a; ERROR 42S01: Table 't1' already exists select * from t1; a 6 # Note: an essential warning. create table if not exists t1 (a int) select 2 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 6 select * from t2; a 1 create temporary table if not exists t1 (a int) select 3 as a; select * from t1; a 3 select * from t2; a 1 # Note: an essential warning. create temporary table if not exists t1 (a int) select 4 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 3 select * from t2; a 1 drop temporary table t1; drop view t1; drop table t2; # # Repeating the test with a view select a constant number # create view t1 as select 1 as a; insert into t1 (a) values (1); ERROR HY000: The target table t1 of the INSERT is not insertable-into update t1 set a=3 where a=2; ERROR HY000: The target table t1 of the UPDATE is not updatable create table t1 (a int); ERROR 42S01: Table 't1' already exists # Note: an essential warning. create table if not exists t1 (a int); Warnings: Note 1050 Table 't1' already exists create table t1 (a int) select 2 as a; ERROR 42S01: Table 't1' already exists select * from t1; a 1 # Note: an essential warning. create table if not exists t1 (a int) select 2 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 1 create temporary table if not exists t1 (a int) select 3 as a; select * from t1; a 3 # Note: an essential warning. create temporary table if not exists t1 (a int) select 4 as a; Warnings: Note 1050 Table 't1' already exists select * from t1; a 3 drop temporary table t1; drop view t1; # # 6. Test of unique_table(). # create table t1 (a int) select 1 as a; create temporary table if not exists t1 (a int) select * from t1; create temporary table if not exists t1 (a int) select * from t1; ERROR HY000: Can't reopen table: 't1' select * from t1; a 1 drop temporary table t1; select * from t1; a 1 drop table t1; create temporary table t1 (a int) select 1 as a; create table if not exists t1 (a int) select * from t1; create table if not exists t1 (a int) select * from t1; Warnings: Note 1050 Table 't1' already exists select * from t1; a 1 drop temporary table t1; select * from t1; a 1 drop table t1; create table if not exists t1 (a int) select * from t1; ERROR 42S02: Table 'test.t1' doesn't exist # # 7. Test of non-matching columns, REPLACE and IGNORE. # create table t1 (a int) select 1 as b, 2 as c; select * from t1; a b c NULL 1 2 drop table t1; create table if not exists t1 (a int, b date, c date) select 1 as b, 2 as c; Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'c' at row 1 select * from t1; a b c NULL 0000-00-00 0000-00-00 drop table t1; set @@session.sql_mode=default; create table if not exists t1 (a int, b date, c date) select 1 as b, 2 as c; ERROR 22007: Incorrect date value: '1' for column 'b' at row 1 select * from t1; ERROR 42S02: Table 'test.t1' doesn't exist create table if not exists t1 (a int, b date, c date) replace select 1 as b, 2 as c; ERROR 22007: Incorrect date value: '1' for column 'b' at row 1 select * from t1; ERROR 42S02: Table 'test.t1' doesn't exist create table if not exists t1 (a int, b date, c date) ignore select 1 as b, 2 as c; Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'c' at row 1 select * from t1; a b c NULL 0000-00-00 0000-00-00 drop table t1; create table if not exists t1 (a int unique, b int) replace select 1 as a, 1 as b union select 1 as a, 2 as b; select * from t1; a b 1 2 drop table t1; create table if not exists t1 (a int unique, b int) ignore select 1 as a, 1 as b union select 1 as a, 2 as b; Warnings: Warning 1062 Duplicate entry '1' for key 'a' select * from t1; a b 1 1 drop table t1; # # # WL#5576 Prohibit CREATE TABLE ... SELECT to modify other tables # create function f() returns int begin insert into t2 values(1); return 1; end| # # 1. The function updates a base table # create table t2(c1 int); create table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. create temporary table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. drop table t2; # # 2. The function updates a view which derives from a base table # create table t3(c1 int); create view t2 as select c1 from t3; create table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. create temporary table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. drop view t2; # # 3. The function updates a view which derives from two base tables # create table t4(c1 int); create view t2 as select t3.c1 as c1 from t3, t4; create table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. create temporary table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. drop view t2; drop tables t3, t4; # # 4. The function updates a view which selects a constant number # create view t2 as select 1; create table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. create temporary table t1 select f(); ERROR HY000: Can't update table 't2' while 't1' is being created. drop view t2; drop function f; # # BUG#11762377 - 54963: ENHANCE THE ERROR MESSAGE TO # REDUCE USER CONFUSION # CREATE TABLE t1 (v varchar(65535)); ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs # # Bug#11746295 - 25168: "INCORRECT TABLE NAME" INSTEAD OF "IDENTIFIER TOO # LONG" IF TABLE NAME > 64 CHARACTERS # CREATE TABLE t01234567890123456789012345678901234567890123456789012345678901234567890123456789(a int); ERROR 42000: Identifier name 't01234567890123456789012345678901234567890123456789012345678901234567890123456789' is too long CREATE DATABASE t01234567890123456789012345678901234567890123456789012345678901234567890123456789; ERROR 42000: Identifier name 't01234567890123456789012345678901234567890123456789012345678901234567890123456789' is too long # # Bug #20573701 DROP DATABASE ASSERT ON DEBUG WHEN OTHER FILES PRESENT IN # DB FOLDER. # CREATE DATABASE db_with_no_tables_and_an_unrelated_file_in_data_directory; DROP DATABASE db_with_no_tables_and_an_unrelated_file_in_data_directory; ERROR HY000: Error dropping database (can't rmdir './db_with_no_tables_and_an_unrelated_file_in_data_directory/', errno: 17) DROP DATABASE db_with_no_tables_and_an_unrelated_file_in_data_directory; CREATE DATABASE db_with_tables_and_an_unrelated_file_in_data_directory; DROP DATABASE db_with_tables_and_an_unrelated_file_in_data_directory; ERROR HY000: Error dropping database (can't rmdir './db_with_tables_and_an_unrelated_file_in_data_directory/', errno: 17) DROP DATABASE db_with_tables_and_an_unrelated_file_in_data_directory; DROP DATABASE db_created_with_mkdir_and_an_unrelated_file_in_data_directory; ERROR HY000: Error dropping database (can't rmdir './db_created_with_mkdir_and_an_unrelated_file_in_data_directory/', errno: 17) DROP DATABASE db_created_with_mkdir_and_an_unrelated_file_in_data_directory; # # BUG 27516741 - MYSQL SERVER DOES NOT WRITE INNODB ROW_TYPE # TO .FRM FILE WHEN DEFAULT USED # Set up. SET @saved_innodb_default_row_format= @@global.innodb_default_row_format; SET @saved_show_create_table_verbosity= @@session.show_create_table_verbosity; # Current InnoDB default row format and 'show_create_table_verbosity' # values respectively. SELECT @@global.innodb_default_row_format; @@global.innodb_default_row_format dynamic SELECT @@session.show_create_table_verbosity; @@session.show_create_table_verbosity 0 CREATE TABLE t1(fld1 INT) ENGINE= InnoDB; CREATE TABLE t2(fld1 INT) ENGINE= InnoDB, ROW_FORMAT= DEFAULT; SET GLOBAL innodb_default_row_format= 'COMPACT'; CREATE TABLE t3(fld1 INT) ENGINE= InnoDB; CREATE TABLE t4(fl1 INT) ENGINE= InnoDB, ROW_FORMAT= COMPRESSED; # Test without show_create_table_verbosity enabled. # Row format used is not displayed for all tables # except t4 where it is explicitly specified. SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `fl1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED # Test with show_create_table_verbosity enabled. # Row format used is displayed for all tables. SET SESSION show_create_table_verbosity= ON; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `fl1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED SET GLOBAL innodb_default_row_format= 'DYNAMIC'; SET SESSION show_create_table_verbosity= OFF; # Test with corresponding temporary tables. CREATE TEMPORARY TABLE t1(fld1 INT) ENGINE= InnoDB; CREATE TEMPORARY TABLE t2(fld1 INT) ENGINE= InnoDB, ROW_FORMAT= DEFAULT; SET GLOBAL innodb_default_row_format= 'COMPACT'; CREATE TEMPORARY TABLE t3(fld1 INT) ENGINE= InnoDB; CREATE TEMPORARY TABLE t4(fl1 INT) ENGINE= InnoDB, ROW_FORMAT= COMPRESSED; # Test without show_create_table_verbosity enabled. # Row format used is not displayed for all tables # except t4 where it is explicitly specified. SHOW CREATE TABLE t1; Table Create Table t1 CREATE TEMPORARY TABLE `t1` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t2; Table Create Table t2 CREATE TEMPORARY TABLE `t2` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t3; Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t4; Table Create Table t4 CREATE TEMPORARY TABLE `t4` ( `fl1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED # Test with show_create_table_verbosity enabled. # Row format used is displayed for all tables. SET SESSION show_create_table_verbosity= ON; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TEMPORARY TABLE `t1` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC SHOW CREATE TABLE t2; Table Create Table t2 CREATE TEMPORARY TABLE `t2` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC SHOW CREATE TABLE t3; Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `fld1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT SHOW CREATE TABLE t4; Table Create Table t4 CREATE TEMPORARY TABLE `t4` ( `fl1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED # Clean up. DROP TABLE t1, t2, t3, t4; DROP TABLE t1, t2, t3, t4; SET GLOBAL innodb_default_row_format= @saved_innodb_default_row_format; SET SESSION show_create_table_verbosity= @saved_show_create_table_verbosity; # # Bug#28022129: NOW() DOESN?T HONOR NO_ZERO_DATE SQL_MODE # SET @saved_mode= @@sql_mode; CREATE TABLE t1(fld1 int); # NO_ZERO_DATE and STRICT SQL mode. CREATE TABLE t2 SELECT fld1, CURDATE() fld2 FROM t1; CREATE TABLE t3 AS SELECT now(); # With patch, zero date is not generated as default. SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `fld1` int(11) DEFAULT NULL, `fld2` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `now()` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t2, t3; SET SQL_MODE= "NO_ZERO_DATE"; Warnings: Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. # NO_ZERO_DATE SQL mode. CREATE TABLE t2 SELECT fld1, CURDATE() fld2 FROM t1; CREATE TABLE t3 AS SELECT now(); # Zero date is generated as default in non strict mode. SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `fld1` int(11) DEFAULT NULL, `fld2` date NOT NULL DEFAULT '0000-00-00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `now()` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1, t2, t3; SET SQL_MODE= DEFAULT; # Test cases added for coverage. CREATE TABLE t1(fld1 DATETIME NOT NULL DEFAULT '1111:11:11'); # CREATE TABLE..SELECT using fields of another table. CREATE TABLE t2 AS SELECT * FROM t1; # Default value is copied from the source table column. SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `fld1` datetime NOT NULL DEFAULT '1111-11-11 00:00:00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1, t2; # CREATE TABLE..SELECT based on trigger fields. CREATE TABLE t1 (fld1 INT, fld2 DATETIME DEFAULT '1211:1:1'); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW BEGIN CREATE TEMPORARY TABLE t2 AS SELECT NEW.fld1, NEW.fld2; END | INSERT INTO t1 VALUES (1, '1111:11:11'); SHOW CREATE TABLE t2; Table Create Table t2 CREATE TEMPORARY TABLE `t2` ( `fld1` int(11) DEFAULT NULL, `fld2` datetime DEFAULT '1211-01-01 00:00:00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; DROP TEMPORARY TABLE t2; SET SQL_MODE= @saved_mode;