config root man

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
Upload File :
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;

Man Man