mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
auto-merge
This commit is contained in:
commit
d726a49984
24 changed files with 535 additions and 71 deletions
|
@ -49,7 +49,7 @@ bin-dist: all
|
|||
$(top_builddir)/scripts/make_binary_distribution @MAKE_BINARY_DISTRIBUTION_OPTIONS@
|
||||
|
||||
# Remove BK's "SCCS" subdirectories from source distribution
|
||||
# Create initial database files for Windows installations.
|
||||
# Create initial database files for Windows installations and check them.
|
||||
dist-hook:
|
||||
rm -rf `find $(distdir) -type d -name SCCS -print`
|
||||
mkdir -p $(distdir)/win
|
||||
|
@ -57,6 +57,7 @@ dist-hook:
|
|||
--builddir=$(top_builddir) \
|
||||
--datadir=$(distdir)/win/data \
|
||||
--srcdir=$(top_srcdir)
|
||||
storage/myisam/myisamchk --silent --fast $(distdir)/win/data/mysql/*.MYI
|
||||
|
||||
tags:
|
||||
support-files/build-tags
|
||||
|
|
|
@ -77,6 +77,7 @@ dist-hook:
|
|||
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_be/BACKUP* $(distdir)/std_data/ndb_backup51_data_be
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_le/BACKUP* $(distdir)/std_data/ndb_backup51_data_le
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/parts/part_* $(distdir)/std_data/parts
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/parts/*.MY* $(distdir)/std_data/parts
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/funcs_1/* $(distdir)/std_data/funcs_1
|
||||
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib
|
||||
$(INSTALL_DATA) $(srcdir)/lib/My/*.pm $(distdir)/lib/My
|
||||
|
@ -132,6 +133,7 @@ install-data-local:
|
|||
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_be/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_data_be
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_le/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_data_le
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/parts/part_* $(DESTDIR)$(testdir)/std_data/parts
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/parts/*.MY* $(DESTDIR)$(testdir)/std_data/parts
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/funcs_1/* $(DESTDIR)$(testdir)/std_data/funcs_1
|
||||
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib
|
||||
$(INSTALL_DATA) $(srcdir)/lib/My/*.pm $(DESTDIR)$(testdir)/lib/My
|
||||
|
|
|
@ -3,4 +3,5 @@ create table t1(a int not null auto_increment primary key) engine=innodb;
|
|||
insert into t1 set a = -1;
|
||||
optimize table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
|
||||
test.t1 optimize status OK
|
||||
|
|
171
mysql-test/r/innodb-autoinc.result
Normal file
171
mysql-test/r/innodb-autoinc.result
Normal file
|
@ -0,0 +1,171 @@
|
|||
drop table if exists t1;
|
||||
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (9223372036854775807, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
9223372036854775807 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (127, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
127 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (255, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
255 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (32767, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
32767 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (65535, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
65535 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (8388607, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
8388607 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (16777215, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
16777215 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (2147483647, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
2147483647 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (4294967295, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
4294967295 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (9223372036854775807, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
9223372036854775807 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (18446744073709551615, null);
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
Got one of the listed errors
|
||||
SELECT * FROM t1;
|
||||
c1 c2
|
||||
18446744073709551615 NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
TRUNCATE TABLE t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
|
@ -3267,3 +3267,14 @@ AUTO_INCREMENT
|
|||
200
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 int default NULL,
|
||||
c2 int default NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
TRUNCATE TABLE t1;
|
||||
affected rows: 0
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
affected rows: 5
|
||||
info: Records: 5 Duplicates: 0 Warnings: 0
|
||||
TRUNCATE TABLE t1;
|
||||
affected rows: 0
|
||||
DROP TABLE t1;
|
||||
|
|
4
mysql-test/r/innodb_bug34300.result
Normal file
4
mysql-test/r/innodb_bug34300.result
Normal file
|
@ -0,0 +1,4 @@
|
|||
f4 f8
|
||||
xxx zzz
|
||||
f4 f8
|
||||
xxx zzz
|
|
@ -180,3 +180,18 @@ a b c d e f g h a1 b1 c1 d1 e1 f1 g1 h1 a2 b2 c2 d2 e2 f2 g2 h2 a3 b3 c3 d3 e3 f
|
|||
1983-12-31 cdef srtbvsr w 45634 13452.56 3452346456 127 1983-12-31 cdef srtbvsr w 45634 13452.56 3452346456 127 1983-12-31 cdef srtbvsr w 45634 13452.56 3452346456 127 1983-12-31 cdef srtbvsr w 45634 13452.56 3452346456 127 liuugbzvdmrlti b itiortudirtfgtibm dfi
|
||||
1975-01-01 abcde abcde m 1234 123.45 32412341234 113 1975-01-01 abcde abcde m 1234 123.45 32412341234 113 1975-01-01 abcde abcde m 1234 123.45 32412341234 113 1975-01-01 abcde abcde m 1234 123.45 32412341234 113 tbhth nrzh ztfghgfh fzh ftzhj fztjh
|
||||
drop table t1;
|
||||
# Bug#34604 - Assertion 'inited==RND' failed in handler::ha_rnd_end
|
||||
CREATE TABLE t1 (
|
||||
a INT AUTO_INCREMENT,
|
||||
b VARCHAR(255),
|
||||
PRIMARY KEY (a))
|
||||
ENGINE = InnoDB
|
||||
PARTITION BY HASH (a)
|
||||
PARTITIONS 2;
|
||||
SET autocommit=OFF;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES (NULL, 'first row t2');
|
||||
SET autocommit=OFF;
|
||||
ALTER TABLE t1 AUTO_INCREMENT = 10;
|
||||
INSERT INTO t1 VALUES (NULL, 'second row t2');
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
--innodb_lock_wait_timeout=2
|
|
@ -1,5 +1,5 @@
|
|||
################################################################################
|
||||
# t/partition_special_innodb.test #
|
||||
# t/partition_special_innodb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# different Tests #
|
||||
|
@ -8,9 +8,9 @@
|
|||
#------------------------------------------------------------------------------#
|
||||
# Original Author: HH #
|
||||
# Original Date: 2006-08-01 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
# Change Author: MattiasJ #
|
||||
# Change Date: 2008-08-20 #
|
||||
# Change: added test for bug#34604 #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
|
@ -44,3 +44,35 @@ let $engine= 'InnoDB';
|
|||
--source suite/parts/inc/partition_key_8col.inc
|
||||
--source suite/parts/inc/partition_key_16col.inc
|
||||
--source suite/parts/inc/partition_key_32col.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute storage engine specific tests
|
||||
|
||||
--echo # Bug#34604 - Assertion 'inited==RND' failed in handler::ha_rnd_end
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a INT AUTO_INCREMENT,
|
||||
b VARCHAR(255),
|
||||
PRIMARY KEY (a))
|
||||
ENGINE = InnoDB
|
||||
PARTITION BY HASH (a)
|
||||
PARTITIONS 2;
|
||||
|
||||
connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
|
||||
connect (con2,127.0.0.1,root,,test,$MASTER_MYPORT,);
|
||||
|
||||
--connection con1
|
||||
SET autocommit=OFF;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES (NULL, 'first row t2');
|
||||
|
||||
--connection con2
|
||||
SET autocommit=OFF;
|
||||
ALTER TABLE t1 AUTO_INCREMENT = 10;
|
||||
|
||||
--connection con1
|
||||
INSERT INTO t1 VALUES (NULL, 'second row t2');
|
||||
--disconnect con2
|
||||
--disconnect con1
|
||||
--connection default
|
||||
DROP TABLE t1;
|
||||
|
|
141
mysql-test/t/innodb-autoinc.test
Normal file
141
mysql-test/t/innodb-autoinc.test
Normal file
|
@ -0,0 +1,141 @@
|
|||
-- source include/have_innodb.inc
|
||||
# embedded server ignores 'delayed', so skip this
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Bug #34335
|
||||
#
|
||||
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (9223372036854775807, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
## Test AUTOINC overflow
|
||||
##
|
||||
|
||||
# TINYINT
|
||||
CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (127, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (255, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# SMALLINT
|
||||
#
|
||||
CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (32767, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (65535, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MEDIUMINT
|
||||
#
|
||||
CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (8388607, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (16777215, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# INT
|
||||
#
|
||||
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (2147483647, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (4294967295, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BIGINT
|
||||
#
|
||||
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (9223372036854775807, null);
|
||||
-- error ER_DUP_ENTRY,1062
|
||||
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (18446744073709551615, null);
|
||||
-- error ER_AUTOINC_READ_FAILED,1467
|
||||
INSERT INTO t1 (c2) VALUES ('innodb');
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug 37531
|
||||
# After truncate, auto_increment behaves incorrectly for InnoDB
|
||||
#
|
||||
CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
TRUNCATE TABLE t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Deleting all records should not reset the AUTOINC counter.
|
||||
#
|
||||
CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DELETE FROM t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
||||
SELECT c1 FROM t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
|
@ -2458,7 +2458,22 @@ SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't2';
|
|||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
# End 34920 test
|
||||
# Bug #29507 TRUNCATE shows to many rows effected
|
||||
#
|
||||
CONNECTION default;
|
||||
CREATE TABLE t1 (c1 int default NULL,
|
||||
c2 int default NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
--enable_info
|
||||
TRUNCATE TABLE t1;
|
||||
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
TRUNCATE TABLE t1;
|
||||
|
||||
--disable_info
|
||||
DROP TABLE t1;
|
||||
#
|
||||
#######################################################################
|
||||
# #
|
||||
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
|
||||
|
|
30
mysql-test/t/innodb_bug34300.test
Normal file
30
mysql-test/t/innodb_bug34300.test
Normal file
|
@ -0,0 +1,30 @@
|
|||
#
|
||||
# Bug#34300 Tinyblob & tinytext fields currupted after export/import and alter in 5.1
|
||||
# http://bugs.mysql.com/34300
|
||||
#
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
-- disable_query_log
|
||||
-- disable_result_log
|
||||
|
||||
SET @@max_allowed_packet=16777216;
|
||||
|
||||
DROP TABLE IF EXISTS bug34300;
|
||||
CREATE TABLE bug34300 (
|
||||
f4 TINYTEXT,
|
||||
f6 MEDIUMTEXT,
|
||||
f8 TINYBLOB
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO bug34300 VALUES ('xxx', repeat('a', 8459264), 'zzz');
|
||||
|
||||
-- enable_result_log
|
||||
|
||||
SELECT f4, f8 FROM bug34300;
|
||||
|
||||
ALTER TABLE bug34300 ADD COLUMN (f10 INT);
|
||||
|
||||
SELECT f4, f8 FROM bug34300;
|
||||
|
||||
DROP TABLE bug34300;
|
|
@ -3389,6 +3389,8 @@ int ha_partition::rnd_next(uchar *buf)
|
|||
result= HA_ERR_END_OF_FILE;
|
||||
break;
|
||||
}
|
||||
m_last_part= part_id;
|
||||
m_part_spec.start_part= part_id;
|
||||
file= m_file[part_id];
|
||||
DBUG_PRINT("info", ("rnd_init on partition %d", part_id));
|
||||
if ((result= file->ha_rnd_init(1)))
|
||||
|
|
|
@ -3549,8 +3549,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
|
|||
|
||||
if(file)
|
||||
{
|
||||
file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO |
|
||||
HA_STATUS_NO_LOCK);
|
||||
file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO);
|
||||
enum row_type row_type = file->get_row_type();
|
||||
switch (row_type) {
|
||||
case ROW_TYPE_NOT_USED:
|
||||
|
|
|
@ -2328,7 +2328,6 @@ buf_print(void)
|
|||
|
||||
ut_a(buf_validate());
|
||||
}
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
/*************************************************************************
|
||||
Returns the number of latched pages in the buffer pool. */
|
||||
|
@ -2361,6 +2360,7 @@ buf_get_latched_pages_number(void)
|
|||
|
||||
return(fixed_pages_number);
|
||||
}
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
/*************************************************************************
|
||||
Returns the number of pending buf pool ios. */
|
||||
|
|
|
@ -331,11 +331,20 @@ ha_print_info(
|
|||
FILE* file, /* in: file where to print */
|
||||
hash_table_t* table) /* in: hash table */
|
||||
{
|
||||
#ifdef UNIV_DEBUG
|
||||
/* Some of the code here is disabled for performance reasons in production
|
||||
builds, see http://bugs.mysql.com/36941 */
|
||||
#define PRINT_USED_CELLS
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
#ifdef PRINT_USED_CELLS
|
||||
hash_cell_t* cell;
|
||||
ulint cells = 0;
|
||||
ulint n_bufs;
|
||||
ulint i;
|
||||
#endif /* PRINT_USED_CELLS */
|
||||
ulint n_bufs;
|
||||
|
||||
#ifdef PRINT_USED_CELLS
|
||||
for (i = 0; i < hash_get_n_cells(table); i++) {
|
||||
|
||||
cell = hash_get_nth_cell(table, i);
|
||||
|
@ -345,10 +354,14 @@ ha_print_info(
|
|||
cells++;
|
||||
}
|
||||
}
|
||||
#endif /* PRINT_USED_CELLS */
|
||||
|
||||
fprintf(file,
|
||||
"Hash table size %lu, used cells %lu",
|
||||
(ulong) hash_get_n_cells(table), (ulong) cells);
|
||||
fprintf(file, "Hash table size %lu",
|
||||
(ulong) hash_get_n_cells(table));
|
||||
|
||||
#ifdef PRINT_USED_CELLS
|
||||
fprintf(file, ", used cells %lu", (ulong) cells);
|
||||
#endif /* PRINT_USED_CELLS */
|
||||
|
||||
if (table->heaps == NULL && table->heap != NULL) {
|
||||
|
||||
|
|
|
@ -334,8 +334,10 @@ static SHOW_VAR innodb_status_variables[]= {
|
|||
(char*) &export_vars.innodb_buffer_pool_pages_flushed, SHOW_LONG},
|
||||
{"buffer_pool_pages_free",
|
||||
(char*) &export_vars.innodb_buffer_pool_pages_free, SHOW_LONG},
|
||||
#ifdef UNIV_DEBUG
|
||||
{"buffer_pool_pages_latched",
|
||||
(char*) &export_vars.innodb_buffer_pool_pages_latched, SHOW_LONG},
|
||||
#endif /* UNIV_DEBUG */
|
||||
{"buffer_pool_pages_misc",
|
||||
(char*) &export_vars.innodb_buffer_pool_pages_misc, SHOW_LONG},
|
||||
{"buffer_pool_pages_total",
|
||||
|
@ -3275,7 +3277,8 @@ ha_innobase::innobase_autoinc_lock(void)
|
|||
old style only if another transaction has already acquired
|
||||
the AUTOINC lock on behalf of a LOAD FILE or INSERT ... SELECT
|
||||
etc. type of statement. */
|
||||
if (thd_sql_command(user_thd) == SQLCOM_INSERT) {
|
||||
if (thd_sql_command(user_thd) == SQLCOM_INSERT
|
||||
|| thd_sql_command(user_thd) == SQLCOM_REPLACE) {
|
||||
dict_table_t* table = prebuilt->table;
|
||||
|
||||
/* Acquire the AUTOINC mutex. */
|
||||
|
@ -5782,6 +5785,21 @@ ha_innobase::info(
|
|||
n_rows++;
|
||||
}
|
||||
|
||||
/* Fix bug#29507: TRUNCATE shows too many rows affected.
|
||||
Do not show the estimates for TRUNCATE command. */
|
||||
if (thd_sql_command(user_thd) == SQLCOM_TRUNCATE) {
|
||||
|
||||
n_rows = 0;
|
||||
|
||||
/* We need to reset the prebuilt value too, otherwise
|
||||
checks for values greater than the last value written
|
||||
to the table will fail and the autoinc counter will
|
||||
not be updated. This will force write_row() into
|
||||
attempting an update of the table's AUTOINC counter. */
|
||||
|
||||
prebuilt->last_value = 0;
|
||||
}
|
||||
|
||||
stats.records = (ha_rows)n_rows;
|
||||
stats.deleted = 0;
|
||||
stats.data_file_length = ((ulonglong)
|
||||
|
@ -5790,9 +5808,21 @@ ha_innobase::info(
|
|||
stats.index_file_length = ((ulonglong)
|
||||
ib_table->stat_sum_of_other_index_sizes)
|
||||
* UNIV_PAGE_SIZE;
|
||||
stats.delete_length =
|
||||
fsp_get_available_space_in_free_extents(
|
||||
ib_table->space);
|
||||
|
||||
/* Since fsp_get_available_space_in_free_extents() is
|
||||
acquiring latches inside InnoDB, we do not call it if we
|
||||
are asked by MySQL to avoid locking. Another reason to
|
||||
avoid the call is that it uses quite a lot of CPU.
|
||||
See Bug#38185.
|
||||
We do not update delete_length if no locking is requested
|
||||
so the "old" value can remain. delete_length is initialized
|
||||
to 0 in the ha_statistics' constructor. */
|
||||
if (!(flag & HA_STATUS_NO_LOCK)) {
|
||||
stats.delete_length =
|
||||
fsp_get_available_space_in_free_extents(
|
||||
ib_table->space) * 1024;
|
||||
}
|
||||
|
||||
stats.check_time = 0;
|
||||
|
||||
if (stats.records == 0) {
|
||||
|
|
|
@ -495,7 +495,15 @@ Prints info of the buffer pool data structure. */
|
|||
void
|
||||
buf_print(void);
|
||||
/*============*/
|
||||
|
||||
/*************************************************************************
|
||||
Returns the number of latched pages in the buffer pool. */
|
||||
|
||||
ulint
|
||||
buf_get_latched_pages_number(void);
|
||||
/*==============================*/
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
/************************************************************************
|
||||
Prints a page to stderr. */
|
||||
|
||||
|
@ -503,12 +511,7 @@ void
|
|||
buf_page_print(
|
||||
/*===========*/
|
||||
byte* read_buf); /* in: a database page */
|
||||
/*************************************************************************
|
||||
Returns the number of latched pages in the buffer pool. */
|
||||
|
||||
ulint
|
||||
buf_get_latched_pages_number(void);
|
||||
/*==============================*/
|
||||
/*************************************************************************
|
||||
Returns the number of pending buf pool ios. */
|
||||
|
||||
|
|
|
@ -331,10 +331,10 @@ mach_write_to_2_little_endian(
|
|||
Convert integral type from storage byte order (big endian) to
|
||||
host byte order. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
ullint
|
||||
mach_read_int_type(
|
||||
/*===============*/
|
||||
byte* dest, /* out: where to write */
|
||||
/* out: integer value */
|
||||
const byte* src, /* in: where to read from */
|
||||
ulint len, /* in: length of src */
|
||||
ibool unsigned_type); /* in: signed or unsigned flag */
|
||||
|
|
|
@ -696,33 +696,39 @@ mach_write_to_2_little_endian(
|
|||
Convert integral type from storage byte order (big endian) to
|
||||
host byte order. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
ullint
|
||||
mach_read_int_type(
|
||||
/*===============*/
|
||||
byte* dest, /* out: where to write */
|
||||
/* out: integer value */
|
||||
const byte* src, /* in: where to read from */
|
||||
ulint len, /* in: length of src */
|
||||
ibool unsigned_type) /* in: signed or unsigned flag */
|
||||
{
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
memcpy(dest, src, len);
|
||||
/* XXX this can be optimized on big-endian machines */
|
||||
|
||||
if (!unsigned_type) {
|
||||
dest[0] ^= 128;
|
||||
}
|
||||
#else
|
||||
byte* ptr;
|
||||
ullint ret;
|
||||
uint i;
|
||||
|
||||
/* Convert integer data from Innobase to a little-endian format,
|
||||
sign bit restored to normal. */
|
||||
if (unsigned_type || (src[0] & 0x80)) {
|
||||
|
||||
for (ptr = dest + len; ptr != dest; ++src) {
|
||||
--ptr;
|
||||
*ptr = *src;
|
||||
ret = 0x0000000000000000ULL;
|
||||
} else {
|
||||
|
||||
ret = 0xFFFFFFFFFFFFFF00ULL;
|
||||
}
|
||||
|
||||
if (!unsigned_type) {
|
||||
dest[len - 1] ^= 128;
|
||||
if (unsigned_type) {
|
||||
|
||||
ret |= src[0];
|
||||
} else {
|
||||
|
||||
ret |= src[0] ^ 0x80;
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 1; i < len; i++) {
|
||||
ret <<= 8;
|
||||
ret |= src[i];
|
||||
}
|
||||
|
||||
return(ret);
|
||||
}
|
||||
|
|
|
@ -501,7 +501,9 @@ struct export_var_struct{
|
|||
ulint innodb_buffer_pool_pages_dirty;
|
||||
ulint innodb_buffer_pool_pages_misc;
|
||||
ulint innodb_buffer_pool_pages_free;
|
||||
#ifdef UNIV_DEBUG
|
||||
ulint innodb_buffer_pool_pages_latched;
|
||||
#endif /* UNIV_DEBUG */
|
||||
ulint innodb_buffer_pool_read_requests;
|
||||
ulint innodb_buffer_pool_reads;
|
||||
ulint innodb_buffer_pool_wait_free;
|
||||
|
|
|
@ -4138,6 +4138,15 @@ lock_rec_print(
|
|||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
/* Print the number of lock structs from lock_print_info_summary() only
|
||||
in non-production builds for performance reasons, see
|
||||
http://bugs.mysql.com/36942 */
|
||||
#define PRINT_NUM_OF_LOCK_STRUCTS
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
#ifdef PRINT_NUM_OF_LOCK_STRUCTS
|
||||
/*************************************************************************
|
||||
Calculates the number of record lock structs in the record lock hash table. */
|
||||
static
|
||||
|
@ -4164,6 +4173,7 @@ lock_get_n_rec_locks(void)
|
|||
|
||||
return(n_locks);
|
||||
}
|
||||
#endif /* PRINT_NUM_OF_LOCK_STRUCTS */
|
||||
|
||||
/*************************************************************************
|
||||
Prints info of locks for all transactions. */
|
||||
|
@ -4207,9 +4217,11 @@ lock_print_info_summary(
|
|||
"History list length %lu\n",
|
||||
(ulong) trx_sys->rseg_history_len);
|
||||
|
||||
#ifdef PRINT_NUM_OF_LOCK_STRUCTS
|
||||
fprintf(file,
|
||||
"Total number of lock structs in row lock hash table %lu\n",
|
||||
(ulong) lock_get_n_rec_locks());
|
||||
#endif /* PRINT_NUM_OF_LOCK_STRUCTS */
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
|
|
|
@ -4563,8 +4563,6 @@ row_search_autoinc_read_column(
|
|||
const byte* data;
|
||||
ib_ulonglong value;
|
||||
mem_heap_t* heap = NULL;
|
||||
/* Our requirement is that dest should be word aligned. */
|
||||
byte dest[sizeof(value)];
|
||||
ulint offsets_[REC_OFFS_NORMAL_SIZE];
|
||||
ulint* offsets = offsets_;
|
||||
|
||||
|
@ -4582,40 +4580,13 @@ row_search_autoinc_read_column(
|
|||
ut_a(len != UNIV_SQL_NULL);
|
||||
ut_a(len <= sizeof value);
|
||||
|
||||
mach_read_int_type(dest, data, len, unsigned_type);
|
||||
|
||||
/* The assumption here is that the AUTOINC value can't be negative
|
||||
and that dest is word aligned. */
|
||||
switch (len) {
|
||||
case 8:
|
||||
value = *(ib_ulonglong*) dest;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
value = *(ib_uint32_t*) dest;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
value = *(ib_uint32_t*) dest;
|
||||
value &= 0xFFFFFF;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
value = *(uint16 *) dest;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
value = *dest;
|
||||
break;
|
||||
|
||||
default:
|
||||
ut_error;
|
||||
}
|
||||
value = mach_read_int_type(data, len, unsigned_type);
|
||||
|
||||
if (UNIV_LIKELY_NULL(heap)) {
|
||||
mem_heap_free(heap);
|
||||
}
|
||||
|
||||
/* We assume that the autoinc counter can't be negative. */
|
||||
if (!unsigned_type && (ib_longlong) value < 0) {
|
||||
value = 0;
|
||||
}
|
||||
|
|
|
@ -1825,8 +1825,10 @@ srv_export_innodb_status(void)
|
|||
= UT_LIST_GET_LEN(buf_pool->flush_list);
|
||||
export_vars.innodb_buffer_pool_pages_free
|
||||
= UT_LIST_GET_LEN(buf_pool->free);
|
||||
#ifdef UNIV_DEBUG
|
||||
export_vars.innodb_buffer_pool_pages_latched
|
||||
= buf_get_latched_pages_number();
|
||||
#endif /* UNIV_DEBUG */
|
||||
export_vars.innodb_buffer_pool_pages_total = buf_pool->curr_size;
|
||||
|
||||
export_vars.innodb_buffer_pool_pages_misc = buf_pool->max_size
|
||||
|
|
Loading…
Reference in a new issue