mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
4ad51359c1
(Includes merge of arena code in 4.1 and 5.0) BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union VC++Files/sql/mysqld.dsp: Auto merged client/mysql.cc: Auto merged client/mysqltest.c: Auto merged include/my_global.h: Auto merged include/my_sys.h: Auto merged include/mysql.h: Auto merged include/mysql_com.h: Auto merged innobase/row/row0sel.c: Auto merged libmysql/client_settings.h: Auto merged libmysql/libmysql.c: Auto merged libmysqld/Makefile.am: Auto merged libmysqld/examples/Makefile.am: Auto merged libmysqld/lib_sql.cc: Auto merged myisam/mi_check.c: Auto merged myisam/myisamchk.c: Auto merged myisam/sort.c: Auto merged mysql-test/r/connect.result: Auto merged mysql-test/r/ctype_recoding.result: Auto merged mysql-test/r/ctype_ucs.result: Auto merged mysql-test/r/func_in.result: Auto merged mysql-test/r/func_like.result: Auto merged mysql-test/r/gis.result: Auto merged mysql-test/r/having.result: Auto merged mysql-test/r/heap.result: Auto merged mysql-test/r/join.result: Auto merged mysql-test/r/key.result: Auto merged mysql-test/r/lowercase_table.result: Auto merged mysql-test/r/ndb_autodiscover.result: Auto merged mysql-test/r/null.result: Auto merged mysql-test/r/olap.result: Auto merged mysql-test/r/order_by.result: Auto merged mysql-test/r/ps_1general.result: Auto merged mysql-test/r/ps_2myisam.result: Auto merged mysql-test/r/ps_3innodb.result: Auto merged mysql-test/r/ps_4heap.result: Auto merged mysql-test/r/ps_5merge.result: Auto merged mysql-test/r/ps_6bdb.result: Auto merged mysql-test/r/range.result: Auto merged mysql-test/r/rename.result: Auto merged mysql-test/r/show_check.result: Auto merged mysql-test/r/subselect.result: Auto merged mysql-test/r/union.result: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/t/alter_table.test: Auto merged mysql-test/t/null.test: Auto merged mysql-test/t/ps_1general.test: Auto merged mysql-test/t/rpl_charset.test: Auto merged mysql-test/t/rpl_heap.test: Auto merged mysql-test/t/rpl_relayrotate.test: Auto merged mysql-test/t/subselect.test: Auto merged mysql-test/t/variables.test: Auto merged netware/mysql_test_run.c: Auto merged scripts/make_binary_distribution.sh: Auto merged scripts/mysql_create_system_tables.sh: Auto merged scripts/mysql_fix_privilege_tables.sql: Auto merged scripts/mysql_install_db.sh: Auto merged sql/ha_berkeley.cc: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_innodb.h: Auto merged sql/ha_myisam.cc: Auto merged sql/handler.cc: Auto merged sql/handler.h: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_create.cc: Auto merged sql/item_create.h: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_timefunc.cc: Auto merged sql/item_timefunc.h: Auto merged sql/lex.h: Auto merged sql/lock.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/opt_sum.cc: Auto merged sql/protocol.cc: Auto merged sql/records.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/slave.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_acl.h: Auto merged sql/sql_db.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_list.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_rename.cc: Auto merged sql/sql_select.h: Auto merged sql/sql_show.cc: Auto merged sql/sql_string.h: Auto merged sql/table.cc: Auto merged sql-common/client.c: Auto merged client/mysqlbinlog.cc: Merge with 4.1 configure.in: Merge with 4.1 include/mysqld_error.h: Add new error message (1) from 4.1 mysql-test/mysql-test-run.sh: Merge with 4.1 mysql-test/r/func_gconcat.result: Merge with 4.1 mysql-test/r/func_if.result: Merge with 4.1 mysql-test/r/grant.result: Merge with 4.1 mysql-test/r/join_outer.result: Merge with 4.1 mysql-test/r/rpl_charset.result: Merge with 4.1 (This has to be fixed before pushing) mysql-test/r/system_mysql_db.result: Merge with 4.1. Added collation to new privileges mysql-test/t/grant.test: Merge with 4.1 mysql-test/t/grant_cache.test: Merge with 4.1 mysql-test/t/show_check.test: Merge with 4.1 sql/Makefile.am: Merge with 4.1 sql/item.cc: Merge with 4.1 sql/item_cmpfunc.cc: Merge with 4.1 (arena code) sql/item_subselect.cc: Merge with 4.1 sql/item_subselect.h: Merge with 4.1 sql/item_sum.cc: Merge with 4.1 sql/item_sum.h: Merge with 4.1 sql/log.cc: Merge with 4.1 (Remove code that is not relevant for 5.0) sql/mysqld.cc: Merge with 4.1 sql/opt_range.cc: Merge with 4.1 sql/share/czech/errmsg.txt: Merge with 4.1 sql/share/danish/errmsg.txt: Merge with 4.1 sql/share/dutch/errmsg.txt: Merge with 4.1 sql/share/english/errmsg.txt: Merge with 4.1 sql/share/estonian/errmsg.txt: Merge with 4.1 sql/share/french/errmsg.txt: Merge with 4.1 sql/share/german/errmsg.txt: Merge with 4.1 sql/share/greek/errmsg.txt: Merge with 4.1 sql/share/hungarian/errmsg.txt: Merge with 4.1 sql/share/italian/errmsg.txt: Merge with 4.1 sql/share/japanese/errmsg.txt: Merge with 4.1 sql/share/korean/errmsg.txt: Merge with 4.1 sql/share/norwegian-ny/errmsg.txt: Merge with 4.1 sql/share/norwegian/errmsg.txt: Merge with 4.1 sql/share/polish/errmsg.txt: Merge with 4.1 sql/share/portuguese/errmsg.txt: Merge with 4.1 sql/share/romanian/errmsg.txt: Merge with 4.1 sql/share/russian/errmsg.txt: Merge with 4.1 sql/share/serbian/errmsg.txt: Merge with 4.1 sql/share/slovak/errmsg.txt: Merge with 4.1 sql/share/spanish/errmsg.txt: Merge with 4.1 sql/share/swedish/errmsg.txt: Merge with 4.1 sql/share/ukrainian/errmsg.txt: Merge with 4.1 sql/sql_base.cc: Merge with 4.1 sql/sql_class.cc: Merge with 4.1 Use arena code from 4.1 sql/sql_class.h: Merge with 4.1 Use arena code from 4.1 sql/sql_derived.cc: Merge with 4.1 sql/sql_lex.cc: Merge with 4.1 sql/sql_lex.h: Merge with 4.1 sql/sql_parse.cc: Merge with 4.1 sql/sql_prepare.cc: Merge with 4.1 sql/sql_select.cc: Merge with 4.1 sql/sql_table.cc: Merge with 4.1 sql/sql_union.cc: Merge with 4.1 sql/sql_yacc.yy: Merge with 4.1 sql/tztime.cc: Merge with 4.1 tests/client_test.c: Merge with 4.1
325 lines
8.4 KiB
Text
325 lines
8.4 KiB
Text
#
|
||
# Test of some show commands
|
||
#
|
||
|
||
--disable_warnings
|
||
drop table if exists t1,t2;
|
||
drop database if exists mysqltest;
|
||
--enable_warnings
|
||
|
||
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
|
||
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
|
||
check table t1 fast;
|
||
check table t1 fast;
|
||
check table t1 changed;
|
||
insert into t1 values (5,5,5);
|
||
check table t1 changed;
|
||
check table t1 medium;
|
||
check table t1 extended;
|
||
show index from t1;
|
||
!$1062 insert into t1 values (5,5,5);
|
||
optimize table t1;
|
||
optimize table t1;
|
||
drop table t1;
|
||
|
||
#show variables;
|
||
show variables like "wait_timeout%";
|
||
show variables like "WAIT_timeout%";
|
||
show variables like "this_doesn't_exists%";
|
||
show table status from test like "this_doesn't_exists%";
|
||
show databases;
|
||
show databases like "test%";
|
||
|
||
#
|
||
# Check of show index
|
||
#
|
||
create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4));
|
||
insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1);
|
||
analyze table t1;
|
||
show index from t1;
|
||
repair table t1;
|
||
show index from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Test of SHOW CREATE
|
||
#
|
||
|
||
create temporary table t1 (a int not null);
|
||
show create table t1;
|
||
alter table t1 rename t2;
|
||
show create table t2;
|
||
drop table t2;
|
||
|
||
create table t1 (
|
||
test_set set( 'val1', 'val2', 'val3' ) not null default '',
|
||
name char(20) default 'O''Brien' comment 'O''Brien as default',
|
||
c int not null comment 'int column',
|
||
`c-b` int comment 'name with a minus',
|
||
`space 2` int comment 'name with a space'
|
||
) comment = 'it\'s a table' ;
|
||
show create table t1;
|
||
set sql_quote_show_create=0;
|
||
show create table t1;
|
||
set sql_quote_show_create=1;
|
||
show full columns from t1;
|
||
drop table t1;
|
||
|
||
create table t1 (a int not null, unique aa (a));
|
||
show create table t1;
|
||
drop table t1;
|
||
create table t1 (a int not null, primary key (a));
|
||
show create table t1;
|
||
drop table t1;
|
||
|
||
flush tables;
|
||
show open tables;
|
||
create table t1(n int);
|
||
insert into t1 values (1);
|
||
show open tables;
|
||
drop table t1;
|
||
|
||
create table t1 (a int not null, b VARCHAR(10), INDEX (b) ) AVG_ROW_LENGTH=10 CHECKSUM=1 COMMENT="test" ENGINE=MYISAM MIN_ROWS=10 MAX_ROWS=100 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=fixed;
|
||
show create table t1;
|
||
alter table t1 MAX_ROWS=200 ROW_FORMAT=dynamic PACK_KEYS=0;
|
||
show create table t1;
|
||
ALTER TABLE t1 AVG_ROW_LENGTH=0 CHECKSUM=0 COMMENT="" MIN_ROWS=0 MAX_ROWS=0 PACK_KEYS=DEFAULT DELAY_KEY_WRITE=0 ROW_FORMAT=default;
|
||
show create table t1;
|
||
drop table t1;
|
||
|
||
create table t1 (a decimal(9,2), b decimal (9,0), e double(9,2), f double(5,0), h float(3,2), i float(3,0));
|
||
show columns from t1;
|
||
show full columns from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Do a create table that tries to cover all types and options
|
||
#
|
||
create table t1 (
|
||
type_bool bool not null,
|
||
type_tiny tinyint not null auto_increment primary key,
|
||
type_short smallint(3),
|
||
type_mediumint mediumint,
|
||
type_bigint bigint,
|
||
type_decimal decimal(5,2),
|
||
type_numeric numeric(5,2),
|
||
empty_char char(0),
|
||
type_char char(2),
|
||
type_varchar varchar(10),
|
||
type_timestamp timestamp not null,
|
||
type_date date not null,
|
||
type_time time not null,
|
||
type_datetime datetime not null,
|
||
type_year year,
|
||
type_enum enum ('red', 'green', 'blue'),
|
||
type_set enum ('red', 'green', 'blue'),
|
||
type_tinyblob tinyblob,
|
||
type_blob blob,
|
||
type_medium_blob mediumblob,
|
||
type_long_blob longblob,
|
||
index(type_short)
|
||
) AVG_ROW_LENGTH=10 CHECKSUM=1 COMMENT="test" ENGINE=MYISAM MIN_ROWS=10 MAX_ROWS=100 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=fixed CHARSET=latin1;
|
||
|
||
# Not tested above: RAID_# UNION INSERT_METHOD DATA DIRECTORY INDEX DIRECTORY
|
||
show create table t1;
|
||
insert into t1 (type_timestamp) values ("2003-02-07 10:00:01");
|
||
select * from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Check metadata
|
||
#
|
||
create table t1 (a int not null);
|
||
create table t2 select max(a) from t1;
|
||
show columns from t2;
|
||
drop table t1,t2;
|
||
|
||
# Check auto conversions of types
|
||
|
||
create table t1 (c decimal, d double, f float, r real);
|
||
show columns from t1;
|
||
drop table t1;
|
||
|
||
create table t1 (c decimal(3,3), d double(3,3), f float(3,3));
|
||
show columns from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Test for Bug #2593 "SHOW CREATE TABLE doesn't properly double quotes"
|
||
#
|
||
|
||
SET @old_sql_mode= @@sql_mode, sql_mode= '';
|
||
SET @old_sql_quote_show_create= @@sql_quote_show_create, sql_quote_show_create= OFF;
|
||
|
||
######### hook for WL#1324 #
|
||
--error 1103
|
||
CREATE TABLE `a/b` (i INT);
|
||
# the above test should WORK when WL#1324 is done,
|
||
# it should be removed and
|
||
# the following part should be uncommented then
|
||
#########################################################
|
||
# begin of part that must be uncommented when WL#1324 is done
|
||
#########################################################
|
||
#CREATE TABLE ```ab``cd``` (i INT);
|
||
#SHOW CREATE TABLE ```ab``cd```;
|
||
#DROP TABLE ```ab``cd```;
|
||
|
||
#CREATE TABLE ```ab````cd``` (i INT);
|
||
#SHOW CREATE TABLE ```ab````cd```;
|
||
#DROP TABLE ```ab````cd```;
|
||
#
|
||
#CREATE TABLE ```a` (i INT);
|
||
#SHOW CREATE TABLE ```a`;
|
||
#DROP TABLE ```a`;
|
||
#
|
||
#SET sql_mode= 'ANSI_QUOTES';
|
||
#
|
||
#CREATE TABLE """a" (i INT);
|
||
#SHOW CREATE TABLE """a";
|
||
#DROP TABLE """a";
|
||
#
|
||
#Bug #4374 SHOW TABLE STATUS FROM ignores collation_connection
|
||
#set names latin1;
|
||
#create database `<60>`;
|
||
#create table `<60>`.`<60>` (a int) engine=heap;
|
||
#--replace_column 7 # 8 # 9 #
|
||
#show table status from `<60>` LIKE '<27>';
|
||
#drop database `<60>`;
|
||
#########################################################
|
||
# end of part that must be uncommented when WL#1324 is done
|
||
#########################################################
|
||
|
||
# to test quotes around keywords.. :
|
||
|
||
SET sql_mode= '';
|
||
SET sql_quote_show_create= OFF;
|
||
|
||
CREATE TABLE t1 (i INT);
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
CREATE TABLE `table` (i INT);
|
||
SHOW CREATE TABLE `table`;
|
||
DROP TABLE `table`;
|
||
|
||
SET sql_quote_show_create= @old_sql_quote_show_create;
|
||
SET sql_mode= @old_sql_mode;
|
||
|
||
#
|
||
# Test for bug #2719 "Heap tables status shows wrong or missing data."
|
||
#
|
||
|
||
select @@max_heap_table_size;
|
||
|
||
CREATE TABLE t1 (
|
||
a int(11) default NULL,
|
||
KEY a TYPE BTREE (a)
|
||
) ENGINE=HEAP;
|
||
|
||
CREATE TABLE t2 (
|
||
b int(11) default NULL,
|
||
index(b)
|
||
) ENGINE=HEAP;
|
||
|
||
CREATE TABLE t3 (
|
||
a int(11) default NULL,
|
||
b int(11) default NULL,
|
||
KEY a TYPE BTREE (a),
|
||
index(b)
|
||
) ENGINE=HEAP;
|
||
|
||
insert into t1 values (1),(2);
|
||
insert into t2 values (1),(2);
|
||
insert into t3 values (1,1),(2,2);
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
insert into t1 values (3),(4);
|
||
insert into t2 values (3),(4);
|
||
insert into t3 values (3,3),(4,4);
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
insert into t1 values (5);
|
||
insert into t2 values (5);
|
||
insert into t3 values (5,5);
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
delete from t1 where a=3;
|
||
delete from t2 where b=3;
|
||
delete from t3 where a=3;
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
delete from t1;
|
||
delete from t2;
|
||
delete from t3;
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
insert into t1 values (5);
|
||
insert into t2 values (5);
|
||
insert into t3 values (5,5);
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
delete from t1 where a=5;
|
||
delete from t2 where b=5;
|
||
delete from t3 where a=5;
|
||
--replace_column 7 # 8 # 9 #
|
||
show table status;
|
||
|
||
drop table t1, t2, t3;
|
||
|
||
#
|
||
# Test for bug #3342 SHOW CREATE DATABASE seems to require DROP privilege
|
||
#
|
||
|
||
create database mysqltest;
|
||
show create database mysqltest;
|
||
create table mysqltest.t1(a int);
|
||
insert into mysqltest.t1 values(1);
|
||
grant select on `mysqltest`.* to mysqltest_1@localhost;
|
||
grant usage on `mysqltest`.* to mysqltest_2@localhost;
|
||
grant drop on `mysqltest`.* to mysqltest_3@localhost;
|
||
|
||
connect (con1,localhost,mysqltest_1,,mysqltest);
|
||
connection con1;
|
||
select * from t1;
|
||
show create database mysqltest;
|
||
--error 1044
|
||
drop table t1;
|
||
--error 1044
|
||
drop database mysqltest;
|
||
|
||
connect (con2,localhost,mysqltest_2,,test);
|
||
connection con2;
|
||
--error 1044
|
||
select * from mysqltest.t1;
|
||
--error 1044
|
||
show create database mysqltest;
|
||
--error 1044
|
||
drop table mysqltest.t1;
|
||
--error 1044
|
||
drop database mysqltest;
|
||
|
||
connect (con3,localhost,mysqltest_3,,test);
|
||
connection con3;
|
||
--error 1044
|
||
select * from mysqltest.t1;
|
||
--error 1044
|
||
show create database mysqltest;
|
||
drop table mysqltest.t1;
|
||
drop database mysqltest;
|
||
|
||
connection default;
|
||
set names binary;
|
||
delete from mysql.user
|
||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||
delete from mysql.db
|
||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||
flush privileges;
|
||
|
||
# This test fails on MAC OSX, so it is temporary disabled.
|
||
# This needs WL#1324 to be done.
|
||
#set names latin1;
|
||
#create database `<60>`;
|
||
#create table `<60>`.`<60>` (a int) engine=heap;
|
||
#--replace_column 7 # 8 # 9 #
|
||
#show table status from `<60>` LIKE '<27>';
|
||
#drop database `<60>`;
|