1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merging with 5.1-5.1.29-rc

This commit is contained in:
Mats Kindahl
2008-10-08 13:37:13 +02:00
47 changed files with 3704 additions and 72634 deletions

View File

@ -487,3 +487,18 @@ select * from t2 where a=4 or b=4;
drop table t1, t2;
#
# Bug #37943: Reproducible mysqld crash/sigsegv in sel_trees_can_be_ored
#
CREATE TABLE t1 (a varchar(8), b set('a','b','c','d','e','f','g','h'),
KEY b(b), KEY a(a));
INSERT INTO t1 VALUES ('y',''), ('z','');
#should not crash
SELECT b,a from t1 WHERE (b!='c' AND b!='f' && b!='h') OR
(a='pure-S') OR (a='DE80337a') OR (a='DE80799');
DROP TABLE t1;
--echo End of 5.0 tests

View File

@ -3601,7 +3601,16 @@ sub run_testcase ($) {
{
mtr_timer_stop_all($glob_timers);
mtr_report("\nServers started, exiting");
exit(0);
if ($glob_win32_perl)
{
#ActiveState perl hangs when using normal exit, use POSIX::_exit instead
use POSIX qw[ _exit ];
POSIX::_exit(0);
}
else
{
exit(0);
}
}
{

View File

@ -1559,6 +1559,8 @@ SHOW INDEX FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type 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)

View File

@ -9,7 +9,9 @@ DROP DATABASE IF EXISTS federated;
CREATE DATABASE federated;
DROP DATABASE IF EXISTS federated;
CREATE DATABASE federated;
SET @OLD_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
SET @OLD_MASTER_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
SET @@GLOBAL.CONCURRENT_INSERT= 0;
SET @OLD_SLAVE_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
SET @@GLOBAL.CONCURRENT_INSERT= 0;
DROP TABLE IF EXISTS federated.bug_13118_table;
CREATE TABLE federated.t1 (
@ -51,9 +53,10 @@ id value
7 54
8 55
DROP TABLE federated.t1;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
DROP TABLE federated.t1;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_CONCURRENT_INSERT;

View File

@ -520,6 +520,16 @@ a filler b
4 zz 4
5 qq 4
drop table t1, t2;
CREATE TABLE t1 (a varchar(8), b set('a','b','c','d','e','f','g','h'),
KEY b(b), KEY a(a));
INSERT INTO t1 VALUES ('y',''), ('z','');
SELECT b,a from t1 WHERE (b!='c' AND b!='f' && b!='h') OR
(a='pure-S') OR (a='DE80337a') OR (a='DE80799');
b a
y
z
DROP TABLE t1;
End of 5.0 tests
#---------------- ROR-index_merge tests -----------------------
SET SESSION STORAGE_ENGINE = MyISAM;
drop table if exists t0,t1,t2;

View File

@ -221,3 +221,24 @@ drop view testdb_1.v1, v2, testdb_1.v3, v4;
drop database testdb_1;
drop user testdb_1@localhost;
drop user testdb_2@localhost;
create database testdb_1;
create table testdb_1.t1 (a int);
create view testdb_1.v1 as select * from testdb_1.t1;
grant show view on testdb_1.* to mysqltest_1@localhost;
grant select on testdb_1.v1 to mysqltest_1@localhost;
select table_schema, table_name, view_definition from information_schema.views
where table_name='v1';
table_schema table_name view_definition
testdb_1 v1 select `testdb_1`.`t1`.`a` AS `a` from `testdb_1`.`t1`
show create view testdb_1.v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v1` AS select `testdb_1`.`t1`.`a` AS `a` from `testdb_1`.`t1` latin1 latin1_swedish_ci
revoke select on testdb_1.v1 from mysqltest_1@localhost;
select table_schema, table_name, view_definition from information_schema.views
where table_name='v1';
table_schema table_name view_definition
testdb_1 v1
show create view testdb_1.v1;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v1'
drop user mysqltest_1@localhost;
drop database testdb_1;

View File

@ -747,11 +747,13 @@ select t1.b from v1a;
ERROR 42S22: Unknown column 't1.b' in 'field list'
select * from v1a join v1b on t1.b = t2.b;
ERROR 42S22: Unknown column 't1.b' in 'on clause'
select * from information_schema.statistics join information_schema.columns
using(table_name,column_name) where table_name='user';
TABLE_NAME COLUMN_NAME TABLE_CATALOG TABLE_SCHEMA NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT TABLE_CATALOG TABLE_SCHEMA ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
user Host NULL mysql 0 mysql PRIMARY 1 A # NULL NULL BTREE NULL mysql 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI #
user User NULL mysql 0 mysql PRIMARY 2 A # NULL NULL BTREE NULL mysql 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI #
select
statistics.TABLE_NAME, statistics.COLUMN_NAME, statistics.TABLE_CATALOG, statistics.TABLE_SCHEMA, statistics.NON_UNIQUE, statistics.INDEX_SCHEMA, statistics.INDEX_NAME, statistics.SEQ_IN_INDEX, statistics.COLLATION, statistics.SUB_PART, statistics.PACKED, statistics.NULLABLE, statistics.INDEX_TYPE, statistics.COMMENT,
columns.TABLE_CATALOG, columns.TABLE_SCHEMA, columns.COLUMN_DEFAULT, columns.IS_NULLABLE, columns.DATA_TYPE, columns.CHARACTER_MAXIMUM_LENGTH, columns.CHARACTER_OCTET_LENGTH, columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE, columns.CHARACTER_SET_NAME, columns.COLLATION_NAME, columns.COLUMN_TYPE, columns.COLUMN_KEY, columns.EXTRA, columns.COLUMN_COMMENT
from information_schema.statistics join information_schema.columns using(table_name,column_name) where table_name='user';
TABLE_NAME COLUMN_NAME TABLE_CATALOG TABLE_SCHEMA NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLLATION SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT TABLE_CATALOG TABLE_SCHEMA COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA COLUMN_COMMENT
user Host NULL mysql 0 mysql PRIMARY 1 A NULL NULL BTREE NULL mysql NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
user User NULL mysql 0 mysql PRIMARY 2 A NULL NULL BTREE NULL mysql NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI
drop table t1;
drop table t2;
drop table t3;

View File

@ -1448,13 +1448,15 @@ create trigger t_ad after delete on t for each row insert into t values (old.s1)
insert into t values (1);
drop table t;
USE mysql;
TRUNCATE TABLE general_log;
SET @old_general_log_state = @@global.general_log;
SET GLOBAL general_log = 0;
ALTER TABLE general_log ENGINE = MyISAM;
ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
(PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000));
ERROR HY000: Incorrect usage of PARTITION and log table
ALTER TABLE general_log ENGINE = CSV;
SET GLOBAL general_log = default;
SET GLOBAL general_log = @old_general_log_state;
use test;
create table t2 (b int);
create table t1 (b int)
@ -1637,6 +1639,25 @@ select count(*) from t1, t2 where t1.createdDate = t2.createdDate;
count(*)
1
drop table t1, t2;
SET @orig_sql_mode = @@SQL_MODE;
SET SQL_MODE='STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO';
CREATE TABLE t1 (c1 INT)
PARTITION BY LIST(1 DIV c1) (
PARTITION p0 VALUES IN (NULL),
PARTITION p1 VALUES IN (1)
);
INSERT INTO t1 VALUES (0);
ERROR 22012: Division by 0
SELECT * FROM t1;
c1
TRUNCATE t1;
INSERT INTO t1 VALUES (NULL), (0), (1), (2);
ERROR 22012: Division by 0
SELECT * FROM t1;
c1
NULL
DROP TABLE t1;
SET SQL_MODE= @orig_sql_mode;
create table t1 (s1 int) partition by hash(s1) partitions 2;
create index i on t1 (s1);
insert into t1 values (1);

View File

@ -1,37 +1,17 @@
SET @global_slow_launch_time = @@GLOBAL.slow_launch_time;
'#--------------------FN_DYNVARS_124_01-------------------------#'
** Connection default **
'#--------------------FN_DYNVARS_124_01-------------------------#'
SET @@GLOBAL.slow_launch_time=0;
SELECT @@GLOBAL.slow_launch_time;
@@GLOBAL.slow_launch_time
0
** Connecting conn5 using username 'root' **
** Connecting conn6 using username 'root' **
** Connecting conn7 using username 'root' **
** Connecting conn8 using username 'root' **
** Connecting conn9 using username 'root' **
** Connecting conn10 using username 'root' **
** Connecting conn11 using username 'root' **
** Connecting conn12 using username 'root' **
** Connecting conn13 using username 'root' **
** Connecting conn14 using username 'root' **
** Connecting conn15 using username 'root' **
** Connecting conn16 using username 'root' **
show status like 'slow_launch_threads';
Variable_name Value
Slow_launch_threads 12
12 Expected
** Connection default **
** Disconnecting conn5 **
** Disconnecting conn6 **
** Disconnecting conn7 **
** Disconnecting conn8 **
** Disconnecting conn9 **
** Disconnecting conn10 **
** Disconnecting conn11 **
** Disconnecting conn12 **
** Disconnecting conn13 **
** Disconnecting conn14 **
** Disconnecting conn15 **
** Disconnecting conn16 **
** Connecting conn1 using username 'root' **
** Switch to connection default and disconnect conn1 **
'#--------------------FN_DYNVARS_124_02-------------------------#'
SET @@GLOBAL.slow_launch_time= 1000;
SELECT @@GLOBAL.slow_launch_time;
@@GLOBAL.slow_launch_time
1000
** Connecting conn2 using username 'root' **
** Switch to connection default and disconnect conn2 **
SET @@GLOBAL.slow_launch_time = @global_slow_launch_time;

View File

@ -1,3 +1,5 @@
set @old_concurrent_insert= @@global.concurrent_insert;
set @@global.concurrent_insert= 0;
flush status;
show status like 'Table_lock%';
Variable_name Value
@ -7,22 +9,31 @@ select * from information_schema.session_status where variable_name like 'Table_
VARIABLE_NAME VARIABLE_VALUE
TABLE_LOCKS_IMMEDIATE 2
TABLE_LOCKS_WAITED 0
SET SQL_LOG_BIN=0;
# Switched to connection: con1
set sql_log_bin=0;
set @old_general_log = @@global.general_log;
set global general_log = 'OFF';
drop table if exists t1;
create table t1(n int) engine=myisam;
insert into t1 values(1);
select 1;
1
1
# Switched to connection: con2
lock tables t1 read;
unlock tables;
lock tables t1 read;
# Switched to connection: con1
update t1 set n = 3;
# Switched to connection: con2
unlock tables;
# Switched to connection: con1
show status like 'Table_locks_waited';
Variable_name Value
Table_locks_waited 1
drop table t1;
set global general_log = @old_general_log;
# Switched to connection: default
select 1;
1
1
@ -198,3 +209,4 @@ ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table '
drop database db37908;
drop procedure proc37908;
drop function func37908;
set @@global.concurrent_insert= @old_concurrent_insert;

View File

@ -188,3 +188,5 @@ b val
12 e
13 f
14 g
drop trigger t1_after_insert;
drop table t1,t2;

View File

@ -1,5 +1,10 @@
-- source include/have_innodb.inc
-- source include/have_binlog_format_mixed_or_statement.inc
# You cannot use `KILL' with the Embedded MySQL Server library,
# because the embedded server merely runs inside the threads of the host
# application. -- the docs
-- source include/not_embedded.inc
###
@ -22,6 +27,12 @@ select get_lock("a", 20);
connection con2;
let $ID= `select connection_id()`;
#
# reset master does not reset binlogging on the embedded server.
# the test is not run on the embedded for reason of using KILL query.
# `reset master' problem is to be addressed by bug#15580 fixes.
#
reset master;
send insert into t2 values (null, null), (null, get_lock("a", 10));

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
# suite/funcs_1/storedproc/param_check.inc
#
# Auxiliary routine to be sourced by
# suite/funcs_1/t/storedproc.test
#
# Purpose:
# The assignment of float values to objects of type DECIMAL causes
# conversions and in some cases an adjustment of the value to
# a border of the value range.
# Try to reveal that function and procedure parameters get a similar
# mangling of the value like columns.
#
# Variables to be set before sourcing this routine
# $test_value - value to be checked
#
# Created:
# 2008-08-27 mleich
#
eval UPDATE t1_aux SET f1 = NULL;
# Enforce that all user variables have the same data type and initial value.
SELECT f1,f1,f1,f1 INTO @v1_tab,@v1_proc,@v2_proc,@v1_func FROM t1_aux;
eval UPDATE t1_aux SET f1 = $test_value;
SELECT f1 INTO @v1_tab FROM t1_aux;
eval CALL sproc_1($test_value, @v1_proc);
eval SET @v1_func = func_1($test_value);
if (`SELECT @v1_tab <> @v1_proc OR @v1_tab <> @v2_proc OR @v1_tab <> @v1_func`)
{
--echo Error: @v1_tab, @v1_proc, @v2_proc, @v1_func are not all equal
SELECT @v1_tab, @v1_proc, @v2_proc, @v1_func;
}

View File

@ -1,13 +0,0 @@
#### suite/funcs_1/t/innodb_storedproc.test
#
# This test cannot be used for the embedded server because we check here
# privileges.
--source include/not_embedded.inc
--source include/have_innodb.inc
let $engine_type= innodb;
--source suite/funcs_1/storedproc/load_sp_tb.inc
--source suite/funcs_1/storedproc/storedproc_master.inc

View File

@ -1,13 +0,0 @@
#### suite/funcs_1/t/memory_storedproc.test
#
# This test cannot be used for the embedded server because we check here
# privileges.
--source include/not_embedded.inc
SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION';
let $engine_type= memory;
--source suite/funcs_1/storedproc/load_sp_tb.inc
--source suite/funcs_1/storedproc/storedproc_master.inc

View File

@ -1,13 +0,0 @@
#### suite/funcs_1/t/myisam_storedproc.test
#
# This test cannot be used for the embedded server because we check here
# privileges.
--source include/not_embedded.inc
SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION';
let $engine_type= myisam;
--source suite/funcs_1/storedproc/load_sp_tb.inc
--source suite/funcs_1/storedproc/storedproc_master.inc

View File

@ -1,13 +0,0 @@
#### suite/funcs_1/t/ndb_storedproc.test
#
# This test cannot be used for the embedded server because we check here
# privileges.
--source include/not_embedded.inc
--source include/have_ndb.inc
let $engine_type= ndb;
--source suite/funcs_1/storedproc/load_sp_tb.inc
--source suite/funcs_1/storedproc/storedproc_master.inc

View File

@ -158,10 +158,16 @@ DROP VIEW IF EXISTS v1;
--disable_query_log
# Storage for the SELECTs to be used for the VIEW definition
# Attention: my_select must be no too small because a statement like
# SELECT LOAD_FILE(< file in MYSQLTEST_VARDIR >)
# AS my_col,
# id FROM t1_values';
# might be a very long
# Bug#38427 "Data too long" ... tests "<ENGINE>_func_view" fail
CREATE TABLE t1_selects
(
id BIGINT AUTO_INCREMENT,
my_select VARCHAR(200) NOT NULL,
my_select VARCHAR(1000) NOT NULL,
disable_result ENUM('Yes','No') NOT NULL default 'No',
PRIMARY KEY(id),
UNIQUE (my_select)

View File

@ -24,6 +24,9 @@ drop table if exists t1,t2;
create table t1(f int);
create table t2(f int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
SELECT COUNT(*) FROM t1;
COUNT(*)
10
create temporary table t3(f int);
insert into t3 select * from t1 where f<6;
create temporary table t3(f int);

View File

@ -56,6 +56,8 @@ drop table if exists t1,t2;
create table t1(f int);
create table t2(f int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
# Auxiliary select (We want that all rows are in the table)
SELECT COUNT(*) FROM t1;
connection con1;
create temporary table t3(f int);

View File

@ -1175,6 +1175,11 @@ CREATE TABLE t1(c1 VARCHAR(33), KEY USING HASH (c1) USING BTREE) ENGINE=MEMORY;
SHOW INDEX FROM t1;
DROP TABLE t1;
#
# Bug#35924 DEFINER should be stored 'quoted' in I_S
#
--error ER_UNKNOWN_ERROR
create user mysqltest_1@'test@test';
#
# Bug#38821: Assert table->auto_increment_field_not_null failed in open_table()

View File

@ -14,4 +14,4 @@ csv_alter_table : Bug#33696 2008-01-21 pcrews no .result file - bug allows
thread_cache_size_func : Bug#36733 main.thread_cache_size_func fails randomly
log_tables.test : Bug #37798: main.log_tables fails randomly on powermacg5 and windows
slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race conditions
events-bugs.test : Bug #39848, Bug #39863, Bug #39569, Bug #37774

View File

@ -1,15 +1,16 @@
--source include/have_bug25714.inc
source include/federated.inc;
connection default;
connection master;
# Disable concurrent inserts to avoid test failures when reading
# data from concurrent connections (insert might return before
# the data is actually in the table).
SET @OLD_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
SET @OLD_MASTER_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
SET @@GLOBAL.CONCURRENT_INSERT= 0;
connection slave;
SET @OLD_SLAVE_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
SET @@GLOBAL.CONCURRENT_INSERT= 0;
--disable_warnings
DROP TABLE IF EXISTS federated.bug_13118_table;
--enable_warnings
@ -46,11 +47,12 @@ SELECT LAST_INSERT_ID();
SELECT * from federated.t1;
DROP TABLE federated.t1;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
connection slave;
DROP TABLE federated.t1;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
source include/federated_cleanup.inc;
connection default;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_CONCURRENT_INSERT;

View File

@ -82,6 +82,7 @@ drop function func2;
drop database `inf%`;
drop procedure mbase.p1;
drop database mbase;
disconnect user1;
#
# Bug#18282 INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views
@ -210,3 +211,32 @@ drop view testdb_1.v1, v2, testdb_1.v3, v4;
drop database testdb_1;
drop user testdb_1@localhost;
drop user testdb_2@localhost;
#
# Bug#22763 Disrepancy between SHOW CREATE VIEW and I_S.VIEWS
#
create database testdb_1;
create table testdb_1.t1 (a int);
create view testdb_1.v1 as select * from testdb_1.t1;
grant show view on testdb_1.* to mysqltest_1@localhost;
grant select on testdb_1.v1 to mysqltest_1@localhost;
connect (user1,localhost,mysqltest_1,,test);
connection user1;
select table_schema, table_name, view_definition from information_schema.views
where table_name='v1';
show create view testdb_1.v1;
connection default;
revoke select on testdb_1.v1 from mysqltest_1@localhost;
connection user1;
select table_schema, table_name, view_definition from information_schema.views
where table_name='v1';
--error ER_TABLEACCESS_DENIED_ERROR
show create view testdb_1.v1;
connection default;
drop user mysqltest_1@localhost;
drop database testdb_1;
disconnect user1;

View File

@ -546,10 +546,12 @@ select * from v1a join v1b on t1.b = t2.b;
#
# Bug #17523 natural join and information_schema
#
# We mask out the Privileges column because it differs with embedded server
--replace_column 31 # 10 #
select * from information_schema.statistics join information_schema.columns
using(table_name,column_name) where table_name='user';
# Omit columns.PRIVILIGES as it may vary with embedded server.
# Omit columns.ORDINAL_POSITION and statistics.CARDINALITY as it may vary with hostname='localhost'.
select
statistics.TABLE_NAME, statistics.COLUMN_NAME, statistics.TABLE_CATALOG, statistics.TABLE_SCHEMA, statistics.NON_UNIQUE, statistics.INDEX_SCHEMA, statistics.INDEX_NAME, statistics.SEQ_IN_INDEX, statistics.COLLATION, statistics.SUB_PART, statistics.PACKED, statistics.NULLABLE, statistics.INDEX_TYPE, statistics.COMMENT,
columns.TABLE_CATALOG, columns.TABLE_SCHEMA, columns.COLUMN_DEFAULT, columns.IS_NULLABLE, columns.DATA_TYPE, columns.CHARACTER_MAXIMUM_LENGTH, columns.CHARACTER_OCTET_LENGTH, columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE, columns.CHARACTER_SET_NAME, columns.COLLATION_NAME, columns.COLUMN_TYPE, columns.COLUMN_KEY, columns.EXTRA, columns.COLUMN_COMMENT
from information_schema.statistics join information_schema.columns using(table_name,column_name) where table_name='user';
drop table t1;
drop table t2;

View File

@ -1589,13 +1589,15 @@ drop table t;
#
USE mysql;
TRUNCATE TABLE general_log;
SET @old_general_log_state = @@global.general_log;
SET GLOBAL general_log = 0;
ALTER TABLE general_log ENGINE = MyISAM;
--error ER_WRONG_USAGE
ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
(PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000));
ALTER TABLE general_log ENGINE = CSV;
SET GLOBAL general_log = default;
SET GLOBAL general_log = @old_general_log_state;
use test;
#
@ -1791,6 +1793,29 @@ select count(*) from t1, t2 where t1.createdDate = t2.createdDate;
drop table t1, t2;
#
# Bug #38083 Error-causing row inserted into partitioned table despite error
#
SET @orig_sql_mode = @@SQL_MODE;
SET SQL_MODE='STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO';
CREATE TABLE t1 (c1 INT)
PARTITION BY LIST(1 DIV c1) (
PARTITION p0 VALUES IN (NULL),
PARTITION p1 VALUES IN (1)
);
-- error ER_DIVISION_BY_ZERO
INSERT INTO t1 VALUES (0);
SELECT * FROM t1;
TRUNCATE t1;
-- error ER_DIVISION_BY_ZERO
INSERT INTO t1 VALUES (NULL), (0), (1), (2);
SELECT * FROM t1;
DROP TABLE t1;
SET SQL_MODE= @orig_sql_mode;
#
# Bug #38005 Partitions: error with insert select
#

View File

@ -1,6 +1,6 @@
############# mysql-test\t\SLOW_LAUNCH_time_func.test ##########################
############# mysql-test\t\slow_launch_time_func.test ##########################
# #
# Variable Name: slow_launch_time #
# Variable Name: slow_launch_time #
# Scope: SESSION #
# Access Type: Dynamic #
# Data Type: NUMERIC #
@ -9,14 +9,20 @@
# #
# #
# Creation Date: 2008-03-02 #
# Author: Sharique Abdullah #
# Author: Sharique Abdullah #
# #
# Last change: 2008-09-09 mleich Reimplementation of this test #
# - Fix Bug#36874 : main.slow_launch_time_func test fails #
# randomly #
# - Fix other failures and streamline the test #
# #
# Description: Test Cases of Dynamic System Variable "slow_launch_time " #
# that checks behavior of this variable in the following ways #
# * Functionality based on different values #
# #
#Reference: http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#
# option_mysqld_slow_launch_time #
# Reference: #
# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
# option_mysqld_slow_launch_time #
# #
################################################################################
@ -28,82 +34,71 @@
SET @global_slow_launch_time = @@GLOBAL.slow_launch_time;
--echo ** Connection default **
connection default;
--echo '#--------------------FN_DYNVARS_124_01-------------------------#'
#####################################
# Increase number of connection #
#####################################
--echo ** Connection default **
connection default;
########################################################################
# Reveal that a new connect gets counted as "slow launched thread" if #
# @@GLOBAL.slow_launch_time = 0. #
# The value of slow_launch_threads must be increased by 1. #
########################################################################
SET @@GLOBAL.slow_launch_time=0;
SELECT @@GLOBAL.slow_launch_time;
--echo ** Connecting conn5 using username 'root' **
CONNECT (conn5,localhost,root,,);
--echo ** Connecting conn6 using username 'root' **
CONNECT (conn6,localhost,root,,);
--echo ** Connecting conn7 using username 'root' **
CONNECT (conn7,localhost,root,,);
--echo ** Connecting conn8 using username 'root' **
CONNECT (conn8,localhost,root,,);
--echo ** Connecting conn9 using username 'root' **
CONNECT (conn9,localhost,root,,);
--echo ** Connecting conn10 using username 'root' **
CONNECT (conn10,localhost,root,,);
--echo ** Connecting conn11 using username 'root' **
CONNECT (conn11,localhost,root,,);
--echo ** Connecting conn12 using username 'root' **
CONNECT (conn12,localhost,root,,);
--echo ** Connecting conn13 using username 'root' **
CONNECT (conn13,localhost,root,,);
--echo ** Connecting conn14 using username 'root' **
CONNECT (conn14,localhost,root,,);
--echo ** Connecting conn15 using username 'root' **
CONNECT (conn15,localhost,root,,);
--echo ** Connecting conn16 using username 'root' **
CONNECT (conn16,localhost,root,,);
let $value_before=
query_get_value(show status like 'slow_launch_threads', Value, 1);
--echo ** Connecting conn1 using username 'root' **
CONNECT (conn1,localhost,root,,);
let $value_after=
query_get_value(show status like 'slow_launch_threads', Value, 1);
if (!`SELECT $value_after = $value_before + 1`)
{
--echo ERROR: Subtest FN_DYNVARS_124_01 failed
--echo A new connect should be counted as 'slow_launch_thread' if
--echo @@GLOBAL.slow_launch_time=0
SELECT @@GLOBAL.slow_launch_time;
echo Number of slow_launch_threads before new connect: $value_before;
echo Number of slow_launch_threads after new connect: $value_after;
}
--echo ** Switch to connection default and disconnect conn1 **
connection default;
disconnect conn1;
--echo '#--------------------FN_DYNVARS_124_02-------------------------#'
#
# Checking status of slow_launch_threads
#
########################################################################
# Reveal that a new connect gets not counted as "slow launched thread" #
# if @@GLOBAL.slow_launch_time is sufficient big. #
# The value of slow_launch_threads must not change. #
########################################################################
show status like 'slow_launch_threads';
--echo 12 Expected
SET @@GLOBAL.slow_launch_time= 1000;
SELECT @@GLOBAL.slow_launch_time;
let $value_before=
query_get_value(show status like 'slow_launch_threads', Value, 1);
--echo ** Connecting conn2 using username 'root' **
CONNECT (conn2,localhost,root,,);
let $value_after=
query_get_value(show status like 'slow_launch_threads', Value, 1);
if (!`SELECT $value_after = $value_before`)
{
--echo ERROR: Subtest FN_DYNVARS_124_02 failed
--echo A new connect must not be counted as 'slow_launch_thread' if
--echo @@GLOBAL.slow_launch_time is sufficient big.
SELECT @@GLOBAL.slow_launch_time;
echo Number of slow_launch_threads before new connect: $value_before;
echo Number of slow_launch_threads after new connect: $value_after;
}
#
# Cleanup
#
--echo ** Connection default **
--echo ** Switch to connection default and disconnect conn2 **
connection default;
--echo ** Disconnecting conn5 **
disconnect conn5;
--echo ** Disconnecting conn6 **
disconnect conn6;
--echo ** Disconnecting conn7 **
disconnect conn7;
--echo ** Disconnecting conn8 **
disconnect conn8;
--echo ** Disconnecting conn9 **
disconnect conn9;
--echo ** Disconnecting conn10 **
disconnect conn10;
--echo ** Disconnecting conn11 **
disconnect conn11;
--echo ** Disconnecting conn12 **
disconnect conn12;
--echo ** Disconnecting conn13 **
disconnect conn13;
--echo ** Disconnecting conn14 **
disconnect conn14;
--echo ** Disconnecting conn15 **
disconnect conn15;
--echo ** Disconnecting conn16 **
disconnect conn16;
disconnect conn2;
SET @@GLOBAL.slow_launch_time = @global_slow_launch_time;

View File

@ -4,6 +4,11 @@
# embedded server causes different stat
-- source include/not_embedded.inc
# Disable concurrent inserts to avoid sporadic test failures as it might
# affect the the value of variables used throughout the test case.
set @old_concurrent_insert= @@global.concurrent_insert;
set @@global.concurrent_insert= 0;
# PS causes different statistics
--disable_ps_protocol
@ -12,54 +17,45 @@ connect (con2,localhost,root,,);
flush status;
# Logging to the general query log table (--log-output=table --log) increments
# Table_locks_immediate with each query, so here Immediate becomes 1
show status like 'Table_lock%';
# ++Immediate = 2
select * from information_schema.session_status where variable_name like 'Table_lock%';
connection con1;
# ++Immediate = 3
SET SQL_LOG_BIN=0;
set @old_general_log = @@global.general_log;
--echo # Switched to connection: con1
set sql_log_bin=0;
set @old_general_log = @@global.general_log;
set global general_log = 'OFF';
--disable_warnings
# ++Immediate = 4
drop table if exists t1;
--enable_warnings
# ++Immediate = 5
create table t1(n int) engine=myisam;
# Immediate + 2 = 7
insert into t1 values(1);
# Execute dummy select in order to ensure that tables used in the
# previous statement are unlocked and closed.
select 1;
connection con2;
# Immediate + 2 = 9
--echo # Switched to connection: con2
lock tables t1 read;
# ++Immediate = 10
unlock tables;
# Immediate + 2 = 12
lock tables t1 read;
connection con1;
# ++Immediate = 13
--echo # Switched to connection: con1
let $ID= `select connection_id()`;
# ++Immediate = 14 (Not +2, because this increments Table_locks_waited)
--send
update t1 set n = 3;
--send update t1 set n = 3
connection con2;
--echo # Switched to connection: con2
# wait for the other query to start executing
let $wait_condition= select 1 from INFORMATION_SCHEMA.PROCESSLIST where ID = $ID and STATE = "Locked";
# Immediate = 14 + $wait_condition_reps ($wait_timeout is 0, so no extra select
# is done inside wait_condition.inc)
--source include/wait_condition.inc
# ++Immediate = 15 + $wait_condition_reps
unlock tables;
connection con1;
--echo # Switched to connection: con1
reap;
# ++Immediate = 16 + $wait_condition_reps
show status like 'Table_locks_waited';
drop table t1;
set global general_log = @old_general_log;
@ -67,6 +63,7 @@ set global general_log = @old_general_log;
disconnect con2;
disconnect con1;
connection default;
--echo # Switched to connection: default
# End of 4.1 tests
@ -295,3 +292,7 @@ drop database db37908;
drop procedure proc37908;
drop function func37908;
# End of 5.1 tests
# Restore global concurrent_insert value. Keep in the end of the test file.
--connection default
set @@global.concurrent_insert= @old_concurrent_insert;

View File

@ -175,3 +175,5 @@ insert into t1 values ( 123, 'a'), ( 123, 'b'), ( 123, 'c'),
insert into t1 values ( 654, 'a'), ( 654, 'b'), ( 654, 'c'),
(654, 'd'), (654, 'e'), (654, 'f'), (654, 'g');
select * from t2 order by b;
drop trigger t1_after_insert;
drop table t1,t2;