mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
21598ea0e6
Length value is the length of the field, Max_length is the length of the field value. So Max_length can not be more than Length. The fix: fixed calculation of the Item_empty_string item length (Patch applied and queued on demand of Trudy/Davi.) sql/item.h: fixed calculation of the item length sql/sql_show.cc: removed unnecessary code
867 lines
21 KiB
Text
867 lines
21 KiB
Text
# Uses GRANT commands that usually disabled in embedded server
|
||
-- source include/not_embedded.inc
|
||
|
||
#
|
||
# Test of some show commands
|
||
#
|
||
|
||
--disable_warnings
|
||
drop table if exists t1,t2;
|
||
drop table if exists t1aa,t2aa;
|
||
drop database if exists mysqltest;
|
||
drop database if exists mysqltest1;
|
||
|
||
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;
|
||
--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);
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
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;
|
||
--disable_metadata
|
||
--error 1062
|
||
insert into t1 values (5,5,5);
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
optimize table t1;
|
||
--disable_metadata
|
||
optimize table t1;
|
||
drop table t1;
|
||
|
||
#show variables;
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
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%";
|
||
--disable_metadata
|
||
|
||
#
|
||
# 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);
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
analyze table t1;
|
||
--disable_metadata
|
||
show index from t1;
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
|
||
repair table t1;
|
||
--disable_metadata
|
||
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 default 0,
|
||
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 default '0000-00-00',
|
||
type_time time not null default '00:00:00',
|
||
type_datetime datetime not null default '0000-00-00 00:00:00',
|
||
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 USING 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 USING 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 6 # 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 6 # 7 # 8 # 9 #
|
||
show table status;
|
||
insert into t1 values (5);
|
||
insert into t2 values (5);
|
||
insert into t3 values (5,5);
|
||
--replace_column 6 # 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 6 # 7 # 8 # 9 # 10 #
|
||
show table status;
|
||
delete from t1;
|
||
delete from t2;
|
||
delete from t3;
|
||
--replace_column 6 # 7 # 8 # 9 #
|
||
show table status;
|
||
insert into t1 values (5);
|
||
insert into t2 values (5);
|
||
insert into t3 values (5,5);
|
||
--replace_column 6 # 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 6 # 7 # 8 # 9 # 10 #
|
||
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 1142
|
||
drop table t1;
|
||
--error 1044
|
||
drop database mysqltest;
|
||
|
||
connect (con2,localhost,mysqltest_2,,test);
|
||
connection con2;
|
||
--error 1142
|
||
select * from mysqltest.t1;
|
||
--error 1044
|
||
show create database mysqltest;
|
||
--error 1142
|
||
drop table mysqltest.t1;
|
||
--error 1044
|
||
drop database mysqltest;
|
||
|
||
connect (con3,localhost,mysqltest_3,,test);
|
||
connection con3;
|
||
--error 1142
|
||
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>`;
|
||
|
||
# Test that USING <keytype> is always shown in SHOW CREATE TABLE when it was
|
||
# specified during table creation, but not otherwise. (Bug #7235)
|
||
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MEMORY;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int, KEY USING HASH (i)) ENGINE=MEMORY;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MEMORY;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MyISAM;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
# Test that when an index is created with the default key algorithm and
|
||
# altered to another storage engine, it gets the default key algorithm
|
||
# for that storage engine, but when it is specified, the specified type is
|
||
# preserved.
|
||
CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM;
|
||
SHOW CREATE TABLE t1;
|
||
ALTER TABLE t1 ENGINE=MEMORY;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MyISAM;
|
||
SHOW CREATE TABLE t1;
|
||
ALTER TABLE t1 ENGINE=MEMORY;
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
# Test for BUG#9439 "Reporting wrong datatype for sub_part on show index"
|
||
CREATE TABLE t1(
|
||
field1 text NOT NULL,
|
||
PRIMARY KEY(field1(1000))
|
||
);
|
||
--enable_metadata
|
||
show index from t1;
|
||
--disable_metadata
|
||
drop table t1;
|
||
|
||
# Test for BUG#11635: mysqldump exports TYPE instead of USING for HASH
|
||
create table t1 (
|
||
c1 int NOT NULL,
|
||
c2 int NOT NULL,
|
||
PRIMARY KEY USING HASH (c1),
|
||
INDEX USING BTREE(c2)
|
||
);
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
# Test for BUG#93: 4.1 protocl crash on corupted frm and SHOW TABLE STATUS
|
||
|
||
flush tables;
|
||
|
||
# Create a junk frm file on disk
|
||
system echo "this is a junk file for test" >> $MYSQLTEST_VARDIR/master-data/test/t1.frm ;
|
||
--replace_column 6 # 7 # 8 # 9 #
|
||
SHOW TABLE STATUS like 't1';
|
||
--error 1033
|
||
show create table t1;
|
||
drop table t1;
|
||
|
||
|
||
--echo End of 4.1 tests
|
||
|
||
#
|
||
# BUG 12183 - SHOW OPEN TABLES behavior doesn't match grammar
|
||
# First we close all open tables with FLUSH tables and then we open some.
|
||
CREATE TABLE txt1(a int);
|
||
CREATE TABLE tyt2(a int);
|
||
CREATE TABLE urkunde(a int);
|
||
FLUSH TABLES;
|
||
SELECT 1 FROM mysql.db, mysql.proc, mysql.user, mysql.time_zone, mysql.time_zone_name, txt1, tyt2, urkunde LIMIT 0;
|
||
SHOW OPEN TABLES;
|
||
SHOW OPEN TABLES FROM mysql;
|
||
SHOW OPEN TABLES FROM mysql LIKE 'u%';
|
||
SHOW OPEN TABLES LIKE 't%';
|
||
SHOW OPEN TABLES LIKE '%o%';
|
||
FLUSH TABLES;
|
||
SHOW OPEN TABLES;
|
||
DROP TABLE txt1;
|
||
DROP TABLE tyt2;
|
||
DROP TABLE urkunde;
|
||
#
|
||
# BUG #12591 (SHOW TABLES FROM dbname produces wrong error message)
|
||
#
|
||
--error 1049
|
||
SHOW TABLES FROM non_existing_database;
|
||
|
||
|
||
#
|
||
# Bug#17203: "sql_no_cache sql_cache" in views created from prepared
|
||
# statement
|
||
#
|
||
# The problem was that initial user setting was forgotten, and current
|
||
# runtime-determined values of the flags were shown instead.
|
||
#
|
||
--disable_warnings
|
||
DROP VIEW IF EXISTS v1;
|
||
DROP PROCEDURE IF EXISTS p1;
|
||
--enable_warnings
|
||
|
||
# Check that SHOW CREATE VIEW shows SQL_CACHE flag exaclty as
|
||
# specified by the user.
|
||
CREATE VIEW v1 AS SELECT 1;
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
CREATE VIEW v1 AS SELECT SQL_CACHE 1;
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1;
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
# Usage of NOW() disables caching, but we still have show what the
|
||
# user have specified.
|
||
CREATE VIEW v1 AS SELECT NOW();
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
CREATE VIEW v1 AS SELECT SQL_CACHE NOW();
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW();
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
# Check that SQL_NO_CACHE always wins.
|
||
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW();
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW();
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW();
|
||
SHOW CREATE VIEW v1;
|
||
DROP VIEW v1;
|
||
|
||
# Check CREATE VIEW in a prepared statement in a procedure.
|
||
delimiter |;
|
||
CREATE PROCEDURE p1()
|
||
BEGIN
|
||
SET @s= 'CREATE VIEW v1 AS SELECT SQL_CACHE 1';
|
||
PREPARE stmt FROM @s;
|
||
EXECUTE stmt;
|
||
DROP PREPARE stmt;
|
||
END |
|
||
delimiter ;|
|
||
CALL p1();
|
||
SHOW CREATE VIEW v1;
|
||
|
||
DROP PROCEDURE p1;
|
||
DROP VIEW v1;
|
||
|
||
|
||
#
|
||
# Check that SHOW TABLES and SHOW COLUMNS give a error if there is no
|
||
# referenced database and table respectively.
|
||
#
|
||
--error ER_BAD_DB_ERROR
|
||
SHOW TABLES FROM no_such_database;
|
||
--error ER_NO_SUCH_TABLE
|
||
SHOW COLUMNS FROM no_such_table;
|
||
|
||
|
||
#
|
||
# Bug #19764: SHOW commands end up in the slow log as table scans
|
||
#
|
||
flush status;
|
||
show status like 'slow_queries';
|
||
show tables;
|
||
show status like 'slow_queries';
|
||
# Table scan query, to ensure that slow_queries does still get incremented
|
||
# (mysqld is started with --log-queries-not-using-indexes)
|
||
select 1 from information_schema.tables limit 1;
|
||
show status like 'slow_queries';
|
||
|
||
#
|
||
# BUG#10491: Server returns data as charset binary SHOW CREATE TABLE or SELECT
|
||
# FROM I_S.
|
||
#
|
||
|
||
#
|
||
# Part 1: check that meta-data specifies not-binary character set.
|
||
#
|
||
|
||
# Ensure that all needed objects are dropped.
|
||
|
||
--disable_warnings
|
||
DROP DATABASE IF EXISTS mysqltest1;
|
||
DROP TABLE IF EXISTS t1;
|
||
DROP VIEW IF EXISTS v1;
|
||
DROP PROCEDURE IF EXISTS p1;
|
||
DROP FUNCTION IF EXISTS f1;
|
||
--enable_warnings
|
||
|
||
# Create objects.
|
||
|
||
CREATE DATABASE mysqltest1;
|
||
|
||
CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
|
||
|
||
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
|
||
|
||
CREATE VIEW v1 AS SELECT 1;
|
||
|
||
CREATE PROCEDURE p1() SELECT 1;
|
||
|
||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||
|
||
|
||
# Test.
|
||
|
||
set names utf8;
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CHARACTER SET LIKE 'utf8';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW COLLATION LIKE 'latin1_bin';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE DATABASE mysqltest1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW DATABASES LIKE 'mysqltest1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE TABLE t1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW INDEX FROM t1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
TABLE_CATALOG,
|
||
TABLE_SCHEMA,
|
||
TABLE_NAME,
|
||
TABLE_TYPE,
|
||
ENGINE,
|
||
ROW_FORMAT,
|
||
TABLE_COLLATION,
|
||
CREATE_OPTIONS,
|
||
TABLE_COMMENT
|
||
FROM INFORMATION_SCHEMA.TABLES
|
||
WHERE table_name = 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
TABLE_CATALOG,
|
||
TABLE_SCHEMA,
|
||
TABLE_NAME,
|
||
COLUMN_NAME,
|
||
COLUMN_DEFAULT,
|
||
IS_NULLABLE,
|
||
DATA_TYPE,
|
||
CHARACTER_SET_NAME,
|
||
COLLATION_NAME,
|
||
COLUMN_TYPE,
|
||
COLUMN_KEY,
|
||
EXTRA,
|
||
PRIVILEGES,
|
||
COLUMN_COMMENT
|
||
FROM INFORMATION_SCHEMA.COLUMNS
|
||
WHERE table_name = 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW TABLES LIKE 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW COLUMNS FROM t1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW TRIGGERS LIKE 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
TRIGGER_CATALOG,
|
||
TRIGGER_SCHEMA,
|
||
TRIGGER_NAME,
|
||
EVENT_MANIPULATION,
|
||
EVENT_OBJECT_CATALOG,
|
||
EVENT_OBJECT_SCHEMA,
|
||
EVENT_OBJECT_TABLE,
|
||
ACTION_CONDITION,
|
||
ACTION_STATEMENT,
|
||
ACTION_ORIENTATION,
|
||
ACTION_TIMING,
|
||
ACTION_REFERENCE_OLD_TABLE,
|
||
ACTION_REFERENCE_NEW_TABLE,
|
||
ACTION_REFERENCE_OLD_ROW,
|
||
ACTION_REFERENCE_NEW_ROW,
|
||
SQL_MODE,
|
||
DEFINER
|
||
FROM INFORMATION_SCHEMA.TRIGGERS
|
||
WHERE trigger_name = 't1_bi';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE VIEW v1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT *
|
||
FROM INFORMATION_SCHEMA.VIEWS
|
||
WHERE table_name = 'v1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE PROCEDURE p1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
SPECIFIC_NAME,
|
||
ROUTINE_CATALOG,
|
||
ROUTINE_SCHEMA,
|
||
ROUTINE_NAME,
|
||
ROUTINE_TYPE,
|
||
DTD_IDENTIFIER,
|
||
ROUTINE_BODY,
|
||
ROUTINE_DEFINITION,
|
||
EXTERNAL_NAME,
|
||
EXTERNAL_LANGUAGE,
|
||
PARAMETER_STYLE,
|
||
IS_DETERMINISTIC,
|
||
SQL_DATA_ACCESS,
|
||
SQL_PATH,
|
||
SECURITY_TYPE,
|
||
SQL_MODE,
|
||
ROUTINE_COMMENT,
|
||
DEFINER
|
||
FROM INFORMATION_SCHEMA.ROUTINES
|
||
WHERE routine_name = 'p1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE FUNCTION f1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
SPECIFIC_NAME,
|
||
ROUTINE_CATALOG,
|
||
ROUTINE_SCHEMA,
|
||
ROUTINE_NAME,
|
||
ROUTINE_TYPE,
|
||
DTD_IDENTIFIER,
|
||
ROUTINE_BODY,
|
||
ROUTINE_DEFINITION,
|
||
EXTERNAL_NAME,
|
||
EXTERNAL_LANGUAGE,
|
||
PARAMETER_STYLE,
|
||
IS_DETERMINISTIC,
|
||
SQL_DATA_ACCESS,
|
||
SQL_PATH,
|
||
SECURITY_TYPE,
|
||
SQL_MODE,
|
||
ROUTINE_COMMENT,
|
||
DEFINER
|
||
FROM INFORMATION_SCHEMA.ROUTINES
|
||
WHERE routine_name = 'f1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--disable_metadata
|
||
|
||
# Cleanup.
|
||
|
||
DROP DATABASE mysqltest1;
|
||
DROP TABLE t1;
|
||
DROP VIEW v1;
|
||
DROP PROCEDURE p1;
|
||
DROP FUNCTION f1;
|
||
|
||
#
|
||
# Part 2: check that table with non-latin1 characters are dumped/restored
|
||
# correctly.
|
||
#
|
||
|
||
# Ensure that all needed objects are dropped.
|
||
|
||
set names koi8r;
|
||
|
||
--disable_warnings
|
||
DROP DATABASE IF EXISTS mysqltest1;
|
||
--enable_warnings
|
||
|
||
# Create objects.
|
||
|
||
CREATE DATABASE mysqltest1;
|
||
|
||
use mysqltest1;
|
||
|
||
CREATE TABLE t1(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 INT);
|
||
|
||
# Check:
|
||
# - Dump mysqltest1;
|
||
|
||
--echo
|
||
--echo ---> Dumping mysqltest1 to show_check.mysqltest1.sql
|
||
|
||
--exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
|
||
|
||
# - Clean mysqltest1;
|
||
|
||
--echo
|
||
--echo
|
||
|
||
DROP DATABASE mysqltest1;
|
||
|
||
# - Restore mysqltest1;
|
||
|
||
--echo
|
||
--echo
|
||
|
||
--echo ---> Restoring mysqltest1...
|
||
--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
|
||
|
||
# - Check definition of the table.
|
||
|
||
SHOW CREATE TABLE mysqltest1.t1;
|
||
|
||
# Cleanup.
|
||
|
||
DROP DATABASE mysqltest1;
|
||
use test;
|
||
|
||
#
|
||
# Bug #28808: log_queries_not_using_indexes variable dynamic change is ignored
|
||
#
|
||
flush status;
|
||
show variables like "log_queries_not_using_indexes";
|
||
select 1 from information_schema.tables limit 1;
|
||
show status like 'slow_queries';
|
||
set global log_queries_not_using_indexes=OFF;
|
||
show variables like "log_queries_not_using_indexes";
|
||
select 1 from information_schema.tables limit 1;
|
||
show status like 'slow_queries';
|
||
set global log_queries_not_using_indexes=ON;
|
||
show variables like "log_queries_not_using_indexes";
|
||
select 1 from information_schema.tables limit 1;
|
||
show status like 'slow_queries';
|
||
|
||
#
|
||
# Bug #30088: Can't disable myisam-recover by a value of ""
|
||
#
|
||
show variables like 'myisam_recover_options';
|
||
|
||
#
|
||
# Bug#37301 Length and Max_length differ with no obvious reason
|
||
#
|
||
CREATE TABLE t1 (
|
||
Codigo int(10) unsigned NOT NULL auto_increment,
|
||
Nombre varchar(255) default NULL,
|
||
Telefono varchar(255) default NULL,
|
||
Observaciones longtext,
|
||
Direccion varchar(255) default NULL,
|
||
Dni varchar(255) default NULL,
|
||
CP int(11) default NULL,
|
||
Provincia varchar(255) default NULL,
|
||
Poblacion varchar(255) default NULL,
|
||
PRIMARY KEY (Codigo)
|
||
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
|
||
--enable_metadata
|
||
show create table t1;
|
||
--disable_metadata
|
||
drop table t1;
|
||
|
||
--echo End of 5.0 tests
|