Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
MariaDB and MySQL Packaging Team
mariadb-5.5
Commits
3f8c7c93
Commit
3f8c7c93
authored
Jun 13, 2015
by
Otto Kekäläinen
Browse files
Imported Upstream version 5.5.44
parent
1d7e28f9
Changes
217
Hide whitespace changes
Inline
Side-by-side
mysql-test/suite/tokudb.bugs/t/db805.test
0 → 100644
View file @
3f8c7c93
# DB-805 test that conversion of t1 from innodb to tokudb can write rows
source
include
/
have_tokudb
.
inc
;
source
include
/
have_innodb
.
inc
;
disable_warnings
;
drop
table
if
exists
t1
,
t3
;
enable_warnings
;
create
table
t3
(
a3
int
,
b3
decimal
(
0
,
0
),
c3
int
,
d3
int
,
primary
key
(
a3
,
b3
))
engine
=
TOKUDB
;
LOCK
TABLES
t3
WRITE
;
create
temporary
table
t1
(
f1
int
,
index
(
f1
))
engine
=
innodb
;
INSERT
INTO
t1
VALUES
(
1
),(
1
),(
1
);
select
*
from
t1
;
ALTER
TABLE
t1
engine
=
TOKUDB
;
select
*
from
t1
;
unlock
tables
;
drop
table
t1
,
t3
;
mysql-test/suite/tokudb.bugs/t/db806.test
0 → 100644
View file @
3f8c7c93
# DB-806 test that lock tables and create select can write rows to the new table
source
include
/
have_tokudb
.
inc
;
disable_warnings
;
drop
table
if
exists
t1
,
t3
;
enable_warnings
;
CREATE
TABLE
t3
(
a
int
,
c
int
,
d
int
)
engine
=
TOKUDB
;
lock
table
t3
read
;
create
temporary
table
t1
engine
=
tokudb
as
SELECT
1
;
select
*
from
t1
;
unlock
tables
;
drop
table
t1
,
t3
;
\ No newline at end of file
mysql-test/suite/tokudb.bugs/t/db811.test
0 → 100644
View file @
3f8c7c93
# DB-811 test that alter table t2 updates both the schema (FRM) and the data (tokudb files)
source
include
/
have_tokudb
.
inc
;
source
include
/
have_innodb
.
inc
;
source
include
/
have_partition
.
inc
;
disable_warnings
;
drop
table
if
exists
t2
,
t3
,
t4
;
enable_warnings
;
CREATE
TABLE
t3
(
a
INT
,
b
INT
,
UNIQUE
KEY
(
a
,
b
))
engine
=
TOKUDB
;
CREATE
TABLE
t4
(
c1
FLOAT
ZEROFILL
)
engine
=
innodb
;
CREATE
TABLE
t2
(
a
int
KEY
,
b
CHAR
(
1
))
engine
=
TOKUDB
PARTITION
BY
HASH
(
a
)
PARTITIONS
13
;
LOCK
TABLES
t4
WRITE
,
t3
WRITE
,
t2
WRITE
;
INSERT
INTO
t2
(
a
)
VALUES
(
REPEAT
(
0
,
1
));
ALTER
TABLE
t2
ADD
COLUMN
(
c
INT
);
alter
table
t4
add
column
c
int
;
UPDATE
t2
SET
a
=
1
;
select
*
from
t2
;
unlock
tables
;
drop
table
t2
,
t3
,
t4
;
mysql-test/suite/tokudb.bugs/t/db811s.test
0 → 100644
View file @
3f8c7c93
# DB-811 test that alter table t2 updates both the schema (FRM) and the data (tokudb files)
source
include
/
have_tokudb
.
inc
;
source
include
/
have_innodb
.
inc
;
source
include
/
have_partition
.
inc
;
disable_warnings
;
drop
table
if
exists
t2
,
t3
,
t4
;
enable_warnings
;
CREATE
TABLE
t3
(
a
INT
,
b
INT
,
UNIQUE
KEY
(
a
,
b
))
engine
=
TOKUDB
;
CREATE
TABLE
t4
(
c1
FLOAT
ZEROFILL
)
engine
=
innodb
;
CREATE
TABLE
t2
(
a
int
KEY
,
b
CHAR
(
1
))
engine
=
TOKUDB
PARTITION
BY
HASH
(
a
)
PARTITIONS
1
;
LOCK
TABLES
t4
WRITE
,
t3
WRITE
,
t2
WRITE
;
INSERT
INTO
t2
(
a
)
VALUES
(
REPEAT
(
0
,
1
));
ALTER
TABLE
t2
ADD
COLUMN
(
c
INT
);
alter
table
t4
add
column
c
int
;
UPDATE
t2
SET
a
=
1
;
select
*
from
t2
;
unlock
tables
;
drop
table
t2
,
t3
,
t4
;
mysql-test/suite/tokudb.bugs/t/db823.test
0 → 100644
View file @
3f8c7c93
# test DB-823
# test that the conversion of table t from innodb to tokudb succeeds.
source
include
/
have_tokudb
.
inc
;
source
include
/
have_innodb
.
inc
;
disable_warnings
;
drop
table
if
exists
s
,
t
;
enable_warnings
;
create
table
s
(
id
int
)
engine
=
tokudb
;
lock
tables
s
write
;
create
temporary
table
t
(
id
int
,
key
(
id
))
engine
=
innodb
;
insert
into
t
values
(
1
);
alter
table
t
engine
=
tokudb
;
select
*
from
t
;
unlock
tables
;
drop
table
s
,
t
;
mysql-test/t/aborted_clients.test
View file @
3f8c7c93
# Test case for MDEV-246, lp:992983
# Check that ordinary connect/disconnect does not increase aborted_clients
# status variable, but KILL connection does
--
source
include
/
not_embedded
.
inc
--
source
include
/
count_sessions
.
inc
FLUSH
STATUS
;
# Connect/Disconnect look that aborted_clients stays 0
connect
(
con1
,
localhost
,
root
,,);
disconnect
con1
;
connection
default
;
--
source
include
/
wait_until_count_sessions
.
inc
# Check that there is 0 aborted clients so far
SELECT
VARIABLE_VALUE
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'aborted_clients'
;
# Kill a connection, check that aborted_clients is incremented
connect
(
con2
,
localhost
,
root
,,);
--
disable_reconnect
--
error
ER_CONNECTION_KILLED
KILL
CONNECTION_ID
();
disconnect
con2
;
connection
default
;
--
source
include
/
wait_until_count_sessions
.
inc
# aborted clients must be 1 now
SELECT
VARIABLE_VALUE
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'aborted_clients'
;
FLUSH
STATUS
;
# Test case for MDEV-246, lp:992983
# Check that ordinary connect/disconnect does not increase aborted_clients
# status variable, but KILL connection does
--
source
include
/
not_embedded
.
inc
--
source
include
/
count_sessions
.
inc
FLUSH
STATUS
;
# Connect/Disconnect look that aborted_clients stays 0
connect
(
con1
,
localhost
,
root
,,);
disconnect
con1
;
connection
default
;
--
source
include
/
wait_until_count_sessions
.
inc
# Check that there is 0 aborted clients so far
SELECT
VARIABLE_VALUE
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'aborted_clients'
;
# Kill a connection, check that aborted_clients is incremented
connect
(
con2
,
localhost
,
root
,,);
--
disable_reconnect
--
error
ER_CONNECTION_KILLED
KILL
CONNECTION_ID
();
disconnect
con2
;
connection
default
;
--
source
include
/
wait_until_count_sessions
.
inc
# aborted clients must be 1 now
SELECT
VARIABLE_VALUE
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'aborted_clients'
;
FLUSH
STATUS
;
mysql-test/t/auth_rpl.test
View file @
3f8c7c93
--
source
include
/
have_plugin_auth
.
inc
--
source
include
/
not_embedded
.
inc
--
source
include
/
master
-
slave
.
inc
#
# Check that replication slave can connect to master using an account
# which authenticates with an external authentication plugin (bug#12897501).
#
# First stop the slave to guarantee that nothing is replicated.
#
--
connection
slave
--
echo
[
connection
slave
]
--
source
include
/
stop_slave
.
inc
#
# Create an replication account on the master.
#
--
connection
master
--
echo
[
connection
master
]
CREATE
USER
'plug_user'
IDENTIFIED
WITH
'test_plugin_server'
AS
'plug_user'
;
GRANT
REPLICATION
SLAVE
ON
*.*
TO
plug_user
;
FLUSH
PRIVILEGES
;
#
# Now go to slave and change the replication user.
#
--
connection
slave
--
echo
[
connection
slave
]
--
let
$master_user
=
query_get_value
(
SHOW
SLAVE
STATUS
,
Master_User
,
1
)
CHANGE
MASTER
TO
MASTER_USER
=
'plug_user'
,
MASTER_PASSWORD
=
'plug_user'
;
#
# Start slave with new replication account - this should trigger connection
# to the master server.
#
--
source
include
/
start_slave
.
inc
# Replicate all statements executed on master, in this case,
# (creation of the plug_user account).
#
--
connection
master
--
sync_slave_with_master
--
echo
# Slave in-sync with master now.
SELECT
user
,
plugin
,
authentication_string
FROM
mysql
.
user
WHERE
user
LIKE
'plug_user'
;
#
# Now we can stop the slave and clean up.
#
# Note: it is important that slave is stopped at this
# moment - otherwise master's cleanup statements
# would be replicated on slave!
#
--
echo
# Cleanup (on slave).
--
source
include
/
stop_slave
.
inc
eval
CHANGE
MASTER
TO
MASTER_USER
=
'$master_user'
;
DROP
USER
'plug_user'
;
--
echo
# Cleanup (on master).
--
connection
master
DROP
USER
'plug_user'
;
--
let
$rpl_only_running_threads
=
1
--
source
include
/
rpl_end
.
inc
--
source
include
/
have_plugin_auth
.
inc
--
source
include
/
not_embedded
.
inc
--
source
include
/
master
-
slave
.
inc
#
# Check that replication slave can connect to master using an account
# which authenticates with an external authentication plugin (bug#12897501).
#
# First stop the slave to guarantee that nothing is replicated.
#
--
connection
slave
--
echo
[
connection
slave
]
--
source
include
/
stop_slave
.
inc
#
# Create an replication account on the master.
#
--
connection
master
--
echo
[
connection
master
]
CREATE
USER
'plug_user'
IDENTIFIED
WITH
'test_plugin_server'
AS
'plug_user'
;
GRANT
REPLICATION
SLAVE
ON
*.*
TO
plug_user
;
FLUSH
PRIVILEGES
;
#
# Now go to slave and change the replication user.
#
--
connection
slave
--
echo
[
connection
slave
]
--
let
$master_user
=
query_get_value
(
SHOW
SLAVE
STATUS
,
Master_User
,
1
)
CHANGE
MASTER
TO
MASTER_USER
=
'plug_user'
,
MASTER_PASSWORD
=
'plug_user'
;
#
# Start slave with new replication account - this should trigger connection
# to the master server.
#
--
source
include
/
start_slave
.
inc
# Replicate all statements executed on master, in this case,
# (creation of the plug_user account).
#
--
connection
master
--
sync_slave_with_master
--
echo
# Slave in-sync with master now.
SELECT
user
,
plugin
,
authentication_string
FROM
mysql
.
user
WHERE
user
LIKE
'plug_user'
;
#
# Now we can stop the slave and clean up.
#
# Note: it is important that slave is stopped at this
# moment - otherwise master's cleanup statements
# would be replicated on slave!
#
--
echo
# Cleanup (on slave).
--
source
include
/
stop_slave
.
inc
eval
CHANGE
MASTER
TO
MASTER_USER
=
'$master_user'
;
DROP
USER
'plug_user'
;
--
echo
# Cleanup (on master).
--
connection
master
DROP
USER
'plug_user'
;
--
let
$rpl_only_running_threads
=
1
--
source
include
/
rpl_end
.
inc
mysql-test/t/ctype_utf8.test
View file @
3f8c7c93
...
...
@@ -1616,6 +1616,22 @@ SET NAMES utf8 COLLATE utf8_general_ci;
--
let
ENGINE
=
HEAP
--
source
include
/
ctype_utf8_ilseq
.
inc
--
echo
#
--
echo
# MDEV-8067 correct fix for MySQL Bug # 19699237: UNINITIALIZED VARIABLE IN ITEM_FIELD::STR_RESULT
--
echo
#
CREATE
TABLE
t1
(
a
VARCHAR
(
10
)
CHARACTER
SET
utf8
);
CREATE
TABLE
t2
(
a
VARCHAR
(
10
)
CHARACTER
SET
latin1
);
INSERT
INTO
t1
VALUES
(
'aaa'
);
INSERT
INTO
t2
VALUES
(
'aaa'
);
SELECT
(
SELECT
CONCAT
(
a
),
1
FROM
t1
)
<=>
(
SELECT
CONCAT
(
a
),
1
FROM
t2
);
INSERT
INTO
t1
VALUES
(
'aaa'
);
INSERT
INTO
t2
VALUES
(
'aaa'
);
# Running the below query crashed with two rows
--
error
ER_SUBQUERY_NO_1_ROW
SELECT
(
SELECT
CONCAT
(
a
),
1
FROM
t1
)
<=>
(
SELECT
CONCAT
(
a
),
1
FROM
t2
);
DROP
TABLE
t1
,
t2
;
--
echo
#
--
echo
# End of 5.5 tests
--
echo
#
mysql-test/t/dyncol.test
View file @
3f8c7c93
...
...
@@ -643,3 +643,9 @@ SELECT
#
select
column_get
(
column_create
(
1
,
"18446744073709552001"
as
char
),
1
as
int
);
--
echo
#
--
echo
# MDEV-7505 - Too large scale in DECIMAL dynamic column getter crashes
--
echo
# mysqld
--
echo
#
--
error
ER_TOO_BIG_SCALE
SELECT
COLUMN_GET
(
`x`
,
'y'
AS
DECIMAL
(
5
,
34
));
mysql-test/t/empty_server_name-8224.test
0 → 100644
View file @
3f8c7c93
#
# MDEV-8224 Server crashes in get_server_from_table_to_cache on empty name
#
--
source
include
/
not_embedded
.
inc
create
server
''
foreign
data
wrapper
w2
options
(
host
'127.0.0.1'
);
--
exec
echo
"wait"
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqld
.1.
expect
--
shutdown_server
10
--
source
include
/
wait_until_disconnected
.
inc
--
exec
echo
"restart"
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqld
.1.
expect
mysql-test/t/func_gconcat.test
View file @
3f8c7c93
...
...
@@ -49,9 +49,9 @@ select grp,group_concat(c order by grp desc) from t1 group by grp order by grp;
# Test transfer to real values
select
grp
,
group_concat
(
a
separator
""
)
+
0
from
t1
group
by
grp
;
select
grp
,
group_concat
(
a
separator
""
)
+
0.0
from
t1
group
by
grp
;
select
grp
,
ROUND
(
group_concat
(
a
separator
""
))
from
t1
group
by
grp
;
select
grp
,
group_concat
(
a
separator
""
)
+
0
from
t1
group
by
grp
;
select
grp
,
group_concat
(
a
separator
""
)
+
0.0
from
t1
group
by
grp
;
select
grp
,
ROUND
(
group_concat
(
a
separator
""
))
from
t1
group
by
grp
;
drop
table
t1
;
# Test NULL values
...
...
mysql-test/t/group_by.test
View file @
3f8c7c93
...
...
@@ -1523,7 +1523,7 @@ DROP TABLE t1;
create
table
t1
(
a
int
,
b
int
);
insert
into
t1
values
(
1
,
11
),
(
1
,
12
),
(
2
,
22
),(
2
,
23
),
(
4
,
44
),(
4
,
45
);
create
table
t2
(
c
int
,
d
int
);
insert
into
t2
values
(
1
,
11
),
(
1
,
12
),
(
2
,
22
),(
2
,
23
),
(
4
,
44
),(
4
,
45
);
insert
into
t2
values
(
1
,
11
),
(
2
,
22
),
(
4
,
44
);
select
distinct
a
,
sum
(
b
),
(
select
d
from
t2
where
c
=
a
order
by
max
(
b
)
limit
1
)
from
t1
group
by
a
order
by
max
(
b
);
drop
table
t1
,
t2
;
...
...
mysql-test/t/information_schema2.test
View file @
3f8c7c93
...
...
@@ -7,3 +7,16 @@ select variable_name from information_schema.session_status where variable_name
select
variable_name
from
information_schema
.
session_variables
where
variable_name
=
(
select
variable_name
from
information_schema
.
session_variables
where
variable_name
=
'basedir'
);
#
# information_schema tables inside subqueries, they should not be re-populated
# (i_s.columns needs to scan i_s itself, creating a tmp table for every i_s
# table. if it's re-populated, it'll do that multiple times)
#
create
table
t1
(
a
char
);
insert
t1
values
(
'a'
),(
't'
),(
'z'
);
flush
status
;
select
a
,
exists
(
select
1
from
information_schema
.
columns
where
table_schema
=
concat
(
'tes'
,
a
))
from
t1
;
# fix the result in ps-protocol
--
replace_result
39
38
show
status
like
'created_tmp_tables'
;
drop
table
t1
;
mysql-test/t/lowercase_table4.test
View file @
3f8c7c93
--
source
include
/
have_case_insensitive_file_system
.
inc
--
source
include
/
have_innodb
.
inc
--
echo
#
--
echo
# Bug#46941 crash with lower_case_table_names=2 and
--
echo
# foreign data dictionary confusion
--
echo
#
CREATE
DATABASE
XY
;
USE
XY
;
#
# Logs are disabled, since the number of creates tables
# and subsequent select statements may vary between
# versions
#
--
disable_query_log
--
disable_result_log
--
source
include
/
have_case_insensitive_file_system
.
inc
--
source
include
/
have_innodb
.
inc
--
echo
#
--
echo
# Bug#46941 crash with lower_case_table_names=2 and
--
echo
# foreign data dictionary confusion
--
echo
#
CREATE
DATABASE
XY
;
USE
XY
;
#
# Logs are disabled, since the number of creates tables
# and subsequent select statements may vary between
# versions
#
--
disable_query_log
--
disable_result_log
let
$tcs
=
`SELECT @@table_open_cache + 1`
;
let
$i
=
$tcs
;
while
(
$i
)
{
eval
CREATE
TABLE
XY
.
T_
$i
(
a
INT
NOT
NULL
,
b
INT
NOT
NULL
,
c
INT
NOT
NULL
,
d
INT
,
primary
key
(
a
,
b
),
unique
(
b
))
ENGINE
=
InnoDB
;
dec
$i
;
}
eval
ALTER
TABLE
XY
.
T_
$tcs
ADD
INDEX
I1
(
c
,
b
),
ADD
CONSTRAINT
C1
FOREIGN
KEY
(
c
,
b
)
REFERENCES
XY
.
T_1
(
a
,
b
);
eval
ALTER
TABLE
XY
.
T_
$tcs
ADD
INDEX
I2
(
b
),
ADD
CONSTRAINT
C2
FOREIGN
KEY
(
b
)
REFERENCES
XY
.
T_1
(
a
);
let
$i
=
$tcs
;
while
(
$i
)
{
eval
SELECT
*
FROM
XY
.
T_
$i
LIMIT
1
;
dec
$i
;
}
DROP
DATABASE
XY
;
CREATE
DATABASE
XY
;
USE
XY
;
eval
CREATE
TABLE
XY
.
T_
$tcs
(
a
INT
NOT
NULL
,
b
INT
NOT
NULL
,
c
INT
NOT
NULL
,
d
INT
,
PRIMARY
KEY
(
a
,
b
),
UNIQUE
(
b
))
ENGINE
=
InnoDB
;
#
# The bug causes this SELECT to err
eval
SELECT
*
FROM
XY
.
T_
$tcs
LIMIT
1
;
--
enable_query_log
--
enable_result_log
DROP
DATABASE
XY
;
USE
TEST
;
--
echo
#
--
echo
# Bug55222 Mysqldump table names case bug in REFERENCES clause
--
echo
# InnoDB did not handle lower_case_table_names=2 for
--
echo
# foreign_table_names and referenced_table_names.
--
echo
#
SHOW
VARIABLES
LIKE
'lower_case_table_names'
;
--
disable_warnings
DROP
TABLE
IF
EXISTS
`Table2`
;
DROP
TABLE
IF
EXISTS
`Table1`
;
--
disable_warnings
CREATE
TABLE
`Table1`
(
c1
INT
PRIMARY
KEY
)
ENGINE
=
InnoDB
;
CREATE
TABLE
`Table2`
(
c1
INT
PRIMARY
KEY
,
c2
INT
)
ENGINE
=
InnoDB
;
ALTER
TABLE
`Table2`
ADD
CONSTRAINT
fk1
FOREIGN
KEY
(
c2
)
REFERENCES
`Table1`
(
c1
);
query_vertical
SHOW
CREATE
TABLE
`Table2`
;
query_vertical
SELECT
*
FROM
INFORMATION_SCHEMA
.
REFERENTIAL_CONSTRAINTS
;
DROP
TABLE
`Table2`
;
DROP
TABLE
`Table1`
;
--
disable_warnings
DROP
TABLE
IF
EXISTS
Product_Order
;
DROP
TABLE
IF
EXISTS
Product
;
DROP
TABLE
IF
EXISTS
Customer
;
--
enable_warnings
CREATE
TABLE
Product
(
Category
INT
NOT
NULL
,
Id
INT
NOT
NULL
,
Price
DECIMAL
,
PRIMARY
KEY
(
Category
,
Id
))
ENGINE
=
InnoDB
;
CREATE
TABLE
Customer
(
Id
INT
NOT
NULL
,
PRIMARY
KEY
(
Id
))
ENGINE
=
InnoDB
;
CREATE
TABLE
Product_Order
(
No
INT
NOT
NULL
AUTO_INCREMENT
,
Product_Category
INT
NOT
NULL
,
Product_Id
INT
NOT
NULL
,
Customer_Id
INT
NOT
NULL
,
PRIMARY
KEY
(
No
),
INDEX
(
Product_Category
,
Product_Id
),
FOREIGN
KEY
(
Product_Category
,
Product_Id
)
REFERENCES
Product
(
Category
,
Id
)
ON
UPDATE
CASCADE
ON
DELETE
RESTRICT
,
INDEX
(
Customer_Id
),
FOREIGN
KEY
(
Customer_Id
)
REFERENCES
Customer
(
Id
)
)
ENGINE
=
INNODB
;
query_vertical
SHOW
CREATE
TABLE
Product_Order
;
query_vertical
SHOW
CREATE
TABLE
Product
;
query_vertical
SHOW
CREATE
TABLE
Customer
;
query_vertical
SELECT
*
FROM
INFORMATION_SCHEMA
.
REFERENTIAL_CONSTRAINTS
;
DROP
TABLE
Product_Order
;
DROP
TABLE
Product
;
DROP
TABLE
Customer
;
let
$i
=
$tcs
;
while
(
$i
)
{
eval
CREATE
TABLE
XY
.
T_
$i
(
a
INT
NOT
NULL
,
b
INT
NOT
NULL
,
c
INT
NOT
NULL
,
d
INT
,
primary
key
(
a
,
b
),
unique
(
b
))
ENGINE
=
InnoDB
;
dec
$i
;
}
eval
ALTER
TABLE
XY
.
T_
$tcs
ADD
INDEX
I1
(
c
,
b
),
ADD
CONSTRAINT
C1
FOREIGN
KEY
(
c
,
b
)
REFERENCES
XY
.
T_1
(
a
,
b
);
eval
ALTER
TABLE
XY
.
T_
$tcs
ADD
INDEX
I2
(
b
),
ADD
CONSTRAINT
C2
FOREIGN
KEY
(
b
)
REFERENCES
XY
.
T_1
(
a
);
let
$i
=
$tcs
;
while
(
$i
)
{
eval
SELECT
*
FROM
XY
.
T_
$i
LIMIT
1
;
dec
$i
;
}
DROP
DATABASE
XY
;
CREATE
DATABASE
XY
;
USE
XY
;
eval
CREATE
TABLE
XY
.
T_
$tcs
(
a
INT
NOT
NULL
,
b
INT
NOT
NULL
,
c
INT
NOT
NULL
,
d
INT
,
PRIMARY
KEY
(
a
,
b
),
UNIQUE
(
b
))
ENGINE
=
InnoDB
;
#
# The bug causes this SELECT to err
eval
SELECT
*
FROM
XY
.
T_
$tcs
LIMIT
1
;
--
enable_query_log
--
enable_result_log
DROP
DATABASE
XY
;
USE
TEST
;
--
echo
#
--
echo
# Bug55222 Mysqldump table names case bug in REFERENCES clause
--
echo
# InnoDB did not handle lower_case_table_names=2 for
--
echo
# foreign_table_names and referenced_table_names.
--
echo
#
SHOW
VARIABLES
LIKE
'lower_case_table_names'
;
--
disable_warnings
DROP
TABLE
IF
EXISTS
`Table2`
;
DROP
TABLE
IF
EXISTS
`Table1`
;
--
disable_warnings
CREATE
TABLE
`Table1`
(
c1
INT
PRIMARY
KEY
)
ENGINE
=
InnoDB
;
CREATE
TABLE
`Table2`
(
c1
INT
PRIMARY
KEY
,
c2
INT
)
ENGINE
=
InnoDB
;
ALTER
TABLE
`Table2`
ADD
CONSTRAINT
fk1
FOREIGN
KEY
(
c2
)
REFERENCES
`Table1`
(
c1
);
query_vertical
SHOW
CREATE
TABLE
`Table2`
;
query_vertical
SELECT
*
FROM
INFORMATION_SCHEMA
.
REFERENTIAL_CONSTRAINTS
;
DROP
TABLE
`Table2`
;
DROP
TABLE
`Table1`
;
--
disable_warnings
DROP
TABLE
IF
EXISTS
Product_Order
;
DROP
TABLE
IF
EXISTS
Product
;
DROP
TABLE
IF
EXISTS
Customer
;
--
enable_warnings
CREATE
TABLE
Product
(
Category
INT
NOT
NULL
,
Id
INT
NOT
NULL
,
Price
DECIMAL
,
PRIMARY
KEY
(
Category
,
Id
))
ENGINE
=
InnoDB
;
CREATE
TABLE
Customer
(
Id
INT
NOT
NULL
,
PRIMARY
KEY
(
Id
))
ENGINE
=
InnoDB
;
CREATE
TABLE
Product_Order
(
No
INT
NOT
NULL
AUTO_INCREMENT
,
Product_Category
INT
NOT
NULL
,
Product_Id
INT
NOT
NULL
,
Customer_Id
INT
NOT
NULL
,
PRIMARY
KEY
(
No
),
INDEX
(
Product_Category
,
Product_Id
),
FOREIGN
KEY
(
Product_Category
,
Product_Id
)
REFERENCES
Product
(
Category
,
Id
)
ON
UPDATE
CASCADE
ON
DELETE
RESTRICT
,
INDEX
(
Customer_Id
),
FOREIGN
KEY
(
Customer_Id
)
REFERENCES
Customer
(
Id
)
)
ENGINE
=
INNODB
;
query_vertical
SHOW
CREATE
TABLE
Product_Order
;
query_vertical
SHOW
CREATE
TABLE
Product
;
query_vertical
SHOW
CREATE
TABLE
Customer
;
query_vertical
SELECT
*
FROM
INFORMATION_SCHEMA
.
REFERENTIAL_CONSTRAINTS
;
DROP
TABLE
Product_Order
;
DROP
TABLE
Product
;
DROP
TABLE
Customer
;
mysql-test/t/myisam.test
View file @
3f8c7c93
...
...
@@ -1749,6 +1749,16 @@ CHECK TABLE t1;
DROP TABLE t1;
--echo #
--echo # MDEV-3870 - Valgrind warnings on OPTIMIZE MyISAM or Aria TABLE with
--echo # disabled keys
--echo #
CREATE TABLE t1 (a INT, KEY(a)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (4),(3),(1),(0);
ALTER TABLE t1 DISABLE KEYS;
OPTIMIZE TABLE t1;
DROP TABLE t1;
#
# Check some variables
#
...
...
mysql-test/t/mysql_tzinfo_to_sql_symlink.test
View file @
3f8c7c93
...
...
@@ -37,3 +37,14 @@
#
--
exec
rm
-
rf
$MYSQLTEST_VARDIR
/
zoneinfo
--
echo
#
--
echo
# MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL
--
echo
#
--
exec
mkdir
$MYSQLTEST_VARDIR
/
zoneinfo
--
copy_file
std_data
/
zoneinfo
/
GMT
$MYSQLTEST_VARDIR
/
zoneinfo
/
Factory
--
replace_result
$MYSQLTEST_VARDIR
MYSQLTEST_VARDIR
--
exec
$MYSQL_TZINFO_TO_SQL
$MYSQLTEST_VARDIR
/
zoneinfo
2
>&
1
--
exec
rm
-
rf
$MYSQLTEST_VARDIR
/
zoneinfo
mysql-test/t/mysql_upgrade_view.test
View file @
3f8c7c93
...
...
@@ -8,6 +8,35 @@ drop view if exists t1,v1,v2,v3,v4,v1badcheck;
create
table
t1
(
a
int
);
create
table
kv
(
k
varchar
(
30
)
NOT
NULL
PRIMARY
KEY
,
v
varchar
(
50
));
create
view
v1
as
select
1
;
repair
table
t1
quick
;
repair
table
t1
extended
;
repair
table
t1
use_frm
;
--
error
ER_PARSE_ERROR
repair
table
t1
from
mysql
;
--
error
ER_PARSE_ERROR
repair
view
v1
quick
;
--
error
ER_PARSE_ERROR
repair
view
v1
extended
;
--
error
ER_PARSE_ERROR
repair
view
v1
use_frm
;
repair
view
v1
from
mysql
;
--
error
ER_PARSE_ERROR
check
view
v1
quick
;
--
error
ER_PARSE_ERROR
check
view
v1
fast
;
--
error
ER_PARSE_ERROR
check
view
v1
medium
;
--
error
ER_PARSE_ERROR
check
view
v1
extended
;
--
error
ER_PARSE_ERROR
check
view
v1
changed
;
check
view
v1
for
upgrade
;
drop
view
v1
;
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
...
...
mysql-test/t/mysqlcheck.test
View file @
3f8c7c93
...
...
@@ -7,6 +7,7 @@
# check that CSV engine was compiled in, as the result of the test
# depends on the presence of the log tables (which are CSV-based).
--
source
include
/
have_csv
.
inc
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
#
# Clean up after previous tests
...
...
@@ -65,7 +66,6 @@ create table t_bug25347 (a int) engine=myisam;
create
view
v_bug25347
as
select
*
from
t_bug25347
;
insert
into
t_bug25347
values
(
1
),(
2
),(
3
);
flush
tables
;
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
echo
removing
and
creating
--
remove_file
$MYSQLD_DATADIR
/
d_bug25347
/
t_bug25347
.
MYI
--
write_file
$MYSQLD_DATADIR
/
d_bug25347
/
t_bug25347
.
MYI
...
...
@@ -117,7 +117,6 @@ DROP TABLE t1, t2;
create
table
t1
(
a
int
)
engine
=
myisam
;
create
view
v1
as
select
*
from
t1
;
show
tables
;
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
copy_file
$MYSQLD_DATADIR
/
test
/
v1
.
frm
$MYSQLD_DATADIR
/
test
/
v
-
1.
frm
show
tables
;
--
exec
$MYSQL_CHECK
--
check
-
upgrade
--
databases
test
...
...
@@ -162,24 +161,23 @@ CREATE TABLE `#mysql50#c@d` (a INT) engine=myisam;
CREATE
TABLE
t1
(
a
INT
)
engine
=
myisam
;
# Create 5.0 like triggers
let
$MYSQLTEST_VARDIR
=
`select @@datadir`
;
--
write_file
$MYSQLTEST_VARDIR
/
a
@
b
/
c
@
d
.
TRG
--
write_file
$MYSQLD_DATADIR
/
a
@
b
/
c
@
d
.
TRG
TYPE
=
TRIGGERS
triggers
=
'CREATE DEFINER=`root`@`localhost` TRIGGER tr1 BEFORE INSERT ON `c@d` FOR EACH ROW SET NEW.a = 10 * NEW.a'
sql_modes
=
0
definers
=
'root@localhost'
EOF
--
write_file
$MYSQL
TEST_VAR
DIR
/
a
@
b
/
tr1
.
TRN
--
write_file
$MYSQL
D_DATA
DIR
/
a
@
b
/
tr1
.
TRN
TYPE
=
TRIGGERNAME
trigger_table
=
c
@
d
EOF
--
write_file
$MYSQL
TEST_VAR
DIR
/
a
@
b
/
t1
.
TRG
--
write_file
$MYSQL
D_DATA
DIR
/
a
@
b
/
t1
.
TRG
TYPE
=
TRIGGERS
triggers
=
'CREATE DEFINER=`root`@`localhost` TRIGGER tr2 BEFORE INSERT ON `a@b`.t1 FOR EACH ROW SET NEW.a = 100 * NEW.a'
sql_modes
=
0
definers
=
'root@localhost'
EOF
--
write_file
$MYSQL
TEST_VAR
DIR
/
a
@
b
/
tr2
.
TRN
--
write_file
$MYSQL
D_DATA
DIR
/
a
@
b
/
tr2
.
TRN
TYPE
=
TRIGGERNAME
trigger_table
=
t1
EOF
...
...
@@ -253,7 +251,6 @@ INSERT INTO bug47205 VALUES ("foobar");
FLUSH
TABLE
bug47205
;
--
echo
# Replace the FRM with a 5.0 FRM that will require upgrade
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
remove_file
$MYSQLD_DATADIR
/
test
/
bug47205
.
frm
--
copy_file
std_data
/
bug47205
.
frm
$MYSQLD_DATADIR
/
test
/
bug47205
.
frm
...
...
@@ -280,7 +277,6 @@ CREATE TABLE bug47205(a VARCHAR(20) PRIMARY KEY)
FLUSH
TABLE
bug47205
;
--
echo
# Replace the FRM with a 5.0 FRM that will require upgrade
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
--
remove_file
$MYSQLD_DATADIR
/
test
/
bug47205
.
frm
--
copy_file
std_data
/
bug47205
.
frm
$MYSQLD_DATADIR
/
test
/
bug47205
.
frm
...
...
@@ -323,3 +319,34 @@ CREATE TABLE test.`t.1` (id int);
--
exec
$MYSQL_CHECK
test
t
.1
drop
table
test
.
`t.1`
;
#
# MDEV-8123 mysqlcheck: new --process-views option conflicts with --quick, --extended and such
#
create
view
v1
as
select
1
;
--
echo
mysqlcheck
--
process
-
views
test
--
exec
$MYSQL_CHECK
--
process
-
views
test
--
echo
mysqlcheck
--
process
-
views
--
extended
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
extended
test
--
echo
mysqlcheck
--
process
-
views
--
fast
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
fast
test
--
echo
mysqlcheck
--
process
-
views
--
quick
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
quick
test
--
echo
mysqlcheck
--
process
-
views
--
check
-
only
-
changed
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
check
-
only
-
changed
test
--
echo
mysqlcheck
--
process
-
views
--
medium
-
check
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
medium
-
check
test
--
echo
mysqlcheck
--
process
-
views
--
check
-
upgrade
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
check
-
upgrade
test
drop
view
v1
;
#
# MDEV-8124 mysqlcheck: --auto-repair runs REPAIR TABLE instead of REPAIR VIEW on views
#
create
table
t1
(
a
int
);
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v1
.
frm
$MYSQLD_DATADIR
/
test
/
v1
.
frm
--
echo
mysqlcheck
--
process
-
views
--
check
-
upgrade
--
auto
-
repair
test
--
exec
$MYSQL_CHECK
--
process
-
views
--
check
-
upgrade
--
auto
-
repair
test
drop
view
v1
;
drop
table
t1
;
mysql-test/t/partition_innodb.test
View file @
3f8c7c93
if
(
`select plugin_auth_version <= "5.5.43-MariaDB-37.2" from information_schema.plugins where plugin_name='innodb'`
)
{
--
skip
Not
fixed
in
XtraDB
as
of
5.5.43
-
MariaDB
-
37.2
or
earlier
}
--
source
include
/
not_embedded
.
inc
--
source
include
/
have_partition
.
inc
--
source
include
/
have_innodb
.
inc
...
...
@@ -390,7 +394,7 @@ DROP TABLE t1;
create
table
t1
(
a
int
)
engine
=
innodb
partition
by
hash
(
a
)
;
# Data_free for InnoDB tablespace varies depending on which
# tests have been run before this one
--
replace_column
10
#
--
replace_column
10
#
12 #
show
table
status
like
't1'
;
drop
table
t1
;
...
...
@@ -402,12 +406,12 @@ engine = innodb
partition
by
key
(
a
);
# Data_free for InnoDB tablespace varies depending on which
# tests have been run before this one
--
replace_column
10
#
--
replace_column
10
#
12 #
show
table
status
;
insert
into
t1
values
(
0
),
(
1
),
(
2
),
(
3
);
# Data_free for InnoDB tablespace varies depending on which
# tests have been run before this one
--
replace_column
10
#
--
replace_column
10
#
12 #
show
table
status
;
drop
table
t1
;
...
...
@@ -416,17 +420,17 @@ engine = innodb
partition
by
key
(
a
);
# Data_free for InnoDB tablespace varies depending on which
# tests have been run before this one
--
replace_column
10
#
--
replace_column
10
#
12 #
show
table
status
;
insert
into
t1
values
(
NULL
),
(
NULL
),
(
NULL
),
(
NULL
);
# Data_free for InnoDB tablespace varies depending on which
# tests have been run before this one
--
replace_column
10
#
--
replace_column
10
#
12 #
show
table
status
;
insert
into
t1
values
(
NULL
),
(
NULL
),
(
NULL
),
(
NULL
);
# Data_free for InnoDB tablespace varies depending on which
# tests have been run before this one
--
replace_column
10
#
--
replace_column
10
#
12 #
show
table
status
;
drop
table
t1
;
...
...
@@ -661,6 +665,18 @@ ALTER TABLE t1 ADD UNIQUE KEY (b);
--
echo
# have left table intact.
SHOW
CREATE
TABLE
t1
;
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
--
echo
#
--
echo
# Bug #17299181 CREATE_TIME AND UPDATE_TIME ARE
--
echo
# WRONG FOR PARTITIONED TABLES
--
echo
#
CREATE
TABLE
t1
(
a
int
,
PRIMARY
KEY
(
a
))
ENGINE
=
InnoDB
PARTITION
BY
HASH
(
a
)
PARTITIONS
2
;
SELECT
COUNT
(
*
)
FROM
INFORMATION_SCHEMA
.
TABLES
WHERE
CREATE_TIME
IS
NOT
NULL
AND
TABLE_NAME
=
't1'
;
DROP
TABLE
t1
;
--
echo
#
...
...
mysql-test/t/range_innodb.test
0 → 100644
View file @
3f8c7c93
--
echo
#
--
echo
# Range optimizer (and related) tests that need InnoDB.
--
echo
#
--
source
include
/
have_innodb
.
inc
--
disable_warnings
drop
table
if
exists
t0
,
t1
,
t2
;
--
enable_warnings
--
echo
#
--
echo
# MDEV-6735: Range checked for each record used with key
--
echo
#
create
table
t0
(
a
int
);
insert
into
t0
values
(
0
),(
1
),(
2
),(
3
),(
4
),(
5
),(
6
),(
7
),(
8
),(
9
);
create
table
t1
(
a
int
);
insert
into
t1
select
A
.
a
+
B
.
a
*
10
+
C
.
a
*
100
+
D
.
a
*
1000
from
t0
A
,
t0
B
,
t0
C
,
t0
D
;
create
table
t2
(
a
int
,
b
int
,
filler1
char
(
100
),
filler2
char
(
100
),
filler3
char
(
100
),
filler4
char
(
100
),
key
(
a
),
key
(
b
)
)
engine
=
innodb
;
insert
into
t2
select
a
,
a
,
repeat
(
'0123456789'
,
10
),
repeat
(
'0123456789'
,
10
),
repeat
(
'0123456789'
,
10
),
repeat
(
'0123456789'
,
10
)
from
t1
;
analyze
table
t2
;
--
echo
# The following must not use "Range checked for each record":
explain
select
*
from
t0
left
join
t2
on
t2
.
a
<
t0
.
a
and
t2
.
b
between
50
and
250
;
drop
table
t0
,
t1
,
t2
;
Prev
1
2
3
4
5
6
7
8
9
…
11
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment