mirror of
https://github.com/MariaDB/server.git
synced 2025-01-26 08:44:33 +01:00
f72611b4fa
Added initialization of all important global variables BUILD/SETUP.sh: build with readline client/mysqltest.c: Added variable SERVER_VERSION myisam/mi_key.c: Indentation change myisam/mi_open.c: After merge fix myisam/mi_range.c: After merge fix myisam/mi_rkey.c: After merge fix myisam/mi_search.c: After merge fix myisam/myisamdef.h: After merge fix mysql-test/include/not_embedded.inc: Fix test (because of wrong utf8 test) mysql-test/r/alter_table.result: Updated results after merge mysql-test/r/create.result: Updated results after merge mysql-test/r/ctype_recoding.result: Updated results after merge mysql-test/r/fulltext.result: Updated results after merge mysql-test/r/func_group.result: Updated results after merge mysql-test/r/group_by.result: Updated results after merge mysql-test/r/innodb.result: Updated results after merge mysql-test/r/join_outer.result: Updated results after merge mysql-test/r/null_key.result: Updated results after merge mysql-test/r/order_by.result: Updated results after merge mysql-test/r/query_cache.result: Updated results after merge mysql-test/r/repair.result: Updated results after merge mysql-test/r/rpl_flush_tables.result: Updated results after merge mysql-test/r/union.result: Updated results after merge mysql-test/r/update.result: Updated results after merge mysql-test/t/ansi.test: After merge fixes mysql-test/t/create.test: After merge fixes mysql-test/t/ctype_recoding.test: After merge fixes mysql-test/t/ctype_ujis.test: After merge fixes mysql-test/t/fulltext.test: After merge fixes mysql-test/t/innodb.test: After merge fixes mysql-test/t/join_outer.test: After merge fixes mysql-test/t/loaddata.test: After merge fixes mysql-test/t/order_by.test: After merge fixes mysql-test/t/rpl_flush_tables.test: After merge fixes mysql-test/t/status.test: After merge fixes mysql-test/t/subselect.test: After merge fixes sql/convert.cc: Code cleanup sql/field.cc: After merge fixes sql/filesort.cc: Remove compiler warning sql/item.cc: More efficient set_name() (no mallocs) sql/item_cmpfunc.cc: Code Code cleanup Item_bool_func2::fix_fields() added to get error handling right for cmp_charset sql/item_cmpfunc.h: New prototypes sql/item_func.cc: After merge fix sql/item_strfunc.cc: Faster check for BINARY sql/log_event.cc: Comment cleanup sql/mysql_priv.h: New prototypes and variables sql/mysqld.cc: Added initialization of all important global variables. Cleanup of variable declarations This is needed ot make the embedded version restartable sql/opt_sum.cc: After merge fix sql/set_var.cc: Code cleanup sql/sql_acl.cc: After merge fix Better error message sql/sql_db.cc: After merge fix sql/sql_derived.cc: After merge fix sql/sql_insert.cc: Indentation cleanups sql/sql_list.h: Added empty() to base_ilist sql/sql_parse.cc: After merge fix sql/sql_select.cc: After merge fix Fixed derived name handling in EXPLAIN sql/sql_show.cc: After merge fix sql/sql_string.cc: Made copy_and_convert global sql/sql_string.h: Made copy_and_convert global sql/sql_update.cc: After merge fix sql/sql_yacc.yy: After merge fix sql/thr_malloc.cc: Added sql_strmake_with_convert() sql/unireg.h: Added MAX_ALIAS_NAME strings/ctype-ujis.c: Fixed bug in converting to ujis
217 lines
5.9 KiB
Text
217 lines
5.9 KiB
Text
#
|
|
# Check some special create statements.
|
|
#
|
|
|
|
--disable_warnings
|
|
drop table if exists t1,t2,t3;
|
|
--enable_warnings
|
|
|
|
create table t1 (b char(0));
|
|
insert into t1 values (""),(null);
|
|
select * from t1;
|
|
drop table if exists t1;
|
|
|
|
create table t1 (b char(0) not null);
|
|
create table if not exists t1 (b char(0) not null);
|
|
insert into t1 values (""),(null);
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Test of some CREATE TABLE'S that should fail
|
|
#
|
|
|
|
!$1146 create table t2 type=heap select * from t1;
|
|
!$1146 create table t2 select auto+1 from t1;
|
|
drop table if exists t1,t2;
|
|
!$1167 create table t1 (b char(0) not null, index(b));
|
|
create table t1 (a int not null auto_increment,primary key (a)) type=heap;
|
|
!$1163 create table t1 (a int not null,b text) type=heap;
|
|
drop table if exists t1;
|
|
|
|
!$1075 create table t1 (ordid int(8) not null auto_increment, ord varchar(50) not null, primary key (ord,ordid)) type=heap;
|
|
|
|
-- error 1044,1
|
|
create table not_existing_database.test (a int);
|
|
!$1103 create table `a/a` (a int);
|
|
!$1103 create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa int);
|
|
!$1059 create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int);
|
|
|
|
#
|
|
# test of dummy table names
|
|
#
|
|
|
|
create table 1ea10 (1a20 int,1e int);
|
|
insert into 1ea10 values(1,1);
|
|
select 1ea10.1a20,1e+ 1e+10 from 1ea10;
|
|
drop table 1ea10;
|
|
create table t1 (t1.index int);
|
|
drop table t1;
|
|
drop database if exists test_$1;
|
|
create database test_$1;
|
|
create table test_$1.$test1 (a$1 int, $b int, c$ int);
|
|
insert into test_$1.$test1 values (1,2,3);
|
|
select a$1, $b, c$ from test_$1.$test1;
|
|
create table test_$1.test2$ (a int);
|
|
drop table test_$1.test2$;
|
|
drop database test_$1;
|
|
|
|
--error 1103
|
|
create table `` (a int);
|
|
--error 1103
|
|
drop table if exists ``;
|
|
--error 1166
|
|
create table t1 (`` int);
|
|
drop table if exists t1;
|
|
|
|
#
|
|
# Test of CREATE ... SELECT with indexes
|
|
#
|
|
|
|
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";
|
|
select * from t2 where b="world";
|
|
drop table t1,t2;
|
|
|
|
#
|
|
# Test types after CREATE ... SELECT
|
|
#
|
|
|
|
create table t1(x varchar(50) );
|
|
create table t2 select x from t1 where 1=2;
|
|
describe t1;
|
|
describe t2;
|
|
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;
|
|
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;
|
|
drop table t1,t2;
|
|
|
|
#
|
|
# Test of CREATE ... SELECT with duplicate fields
|
|
#
|
|
|
|
create table t1 (a tinyint);
|
|
create table t2 (a int) select * from t1;
|
|
describe t1;
|
|
describe t2;
|
|
drop table if exists t2;
|
|
--error 1060
|
|
create table t2 (a int, a float) select * from t1;
|
|
drop table if exists t2;
|
|
--error 1060
|
|
create table t2 (a int) select a as b, a+1 as b from t1;
|
|
drop table if exists t2;
|
|
--error 1060
|
|
create table t2 (b int) select a as b, a+1 as b from t1;
|
|
drop table if exists t1,t2;
|
|
|
|
#
|
|
# Test of primary key with 32 index
|
|
#
|
|
|
|
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));
|
|
show create table t1;
|
|
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;
|
|
drop table if exists t1;
|
|
|
|
#
|
|
# Test default table type
|
|
#
|
|
SET SESSION table_type="heap";
|
|
SELECT @@table_type;
|
|
CREATE TABLE t1 (a int not null);
|
|
show create table t1;
|
|
drop table t1;
|
|
# Test what happens when using a non existing table type
|
|
SET SESSION table_type="gemini";
|
|
SELECT @@table_type;
|
|
CREATE TABLE t1 (a int not null);
|
|
show create table t1;
|
|
SET SESSION table_type=default;
|
|
drop table t1;
|
|
|
|
|
|
#
|
|
# ISO requires that primary keys are implicitly NOT NULL
|
|
#
|
|
create table t1 ( k1 varchar(2), k2 int, primary key(k1,k2));
|
|
insert into t1 values ("a", 1), ("b", 2);
|
|
--error 1048
|
|
insert into t1 values ("c", NULL);
|
|
--error 1048
|
|
insert into t1 values (NULL, 3);
|
|
--error 1048
|
|
insert into t1 values (NULL, NULL);
|
|
drop table t1;
|
|
|
|
#
|
|
# Test create with foreign keys
|
|
#
|
|
|
|
create table t1 (a int, key(a));
|
|
create table t2 (b int, foreign key(b) references t1(a), key(b));
|
|
drop table if exists t1,t2;
|
|
|
|
#
|
|
# Test for CREATE TABLE .. LIKE ..
|
|
#
|
|
|
|
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;
|
|
select * from t3;
|
|
create table if not exists t3 like t1;
|
|
select @@warning_count;
|
|
create temporary table t3 like t2;
|
|
show create table t3;
|
|
select * from t3;
|
|
drop table t3;
|
|
show create table t3;
|
|
select * from t3;
|
|
drop table t2, t3;
|
|
drop database if exists test_$1;
|
|
create database test_$1;
|
|
create table test_$1.t3 like t1;
|
|
create temporary table t3 like test_$1.t3;
|
|
show create table t3;
|
|
create table t2 like t3;
|
|
show create table t2;
|
|
select * from t2;
|
|
create table t3 like t1;
|
|
!$1050 create table t3 like test_$1.t3;
|
|
--error 1044,1
|
|
create table non_existing_database.t1 like t1;
|
|
!$1051 create table t3 like non_existing_table;
|
|
!$1050 create temporary table t3 like t1;
|
|
!$1103 create table t3 like `a/a`;
|
|
drop table t1, t2, t3;
|
|
drop table t3;
|
|
drop database test_$1;
|
|
|
|
#
|
|
# Test default table type
|
|
#
|
|
SET SESSION table_type="heap";
|
|
SELECT @@table_type;
|
|
CREATE TABLE t1 (a int not null);
|
|
show create table t1;
|
|
drop table t1;
|
|
# Test what happens when using a non existing table type
|
|
SET SESSION table_type="gemini";
|
|
SELECT @@table_type;
|
|
CREATE TABLE t1 (a int not null);
|
|
show create table t1;
|
|
SET SESSION table_type=default;
|
|
drop table t1;
|