Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
d726a499
Commit
d726a499
authored
Aug 21, 2008
by
Tatiana A. Nurnberg
Browse files
Options
Browse Files
Download
Plain Diff
auto-merge
parents
861f7e1c
bb491184
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
534 additions
and
70 deletions
+534
-70
Makefile.am
Makefile.am
+2
-1
mysql-test/Makefile.am
mysql-test/Makefile.am
+2
-0
mysql-test/r/innodb-autoinc-optimize.result
mysql-test/r/innodb-autoinc-optimize.result
+1
-0
mysql-test/r/innodb-autoinc.result
mysql-test/r/innodb-autoinc.result
+171
-0
mysql-test/r/innodb.result
mysql-test/r/innodb.result
+11
-0
mysql-test/r/innodb_bug34300.result
mysql-test/r/innodb_bug34300.result
+4
-0
mysql-test/suite/parts/r/partition_special_innodb.result
mysql-test/suite/parts/r/partition_special_innodb.result
+15
-0
mysql-test/suite/parts/t/partition_special_innodb-master.opt
mysql-test/suite/parts/t/partition_special_innodb-master.opt
+1
-0
mysql-test/suite/parts/t/partition_special_innodb.test
mysql-test/suite/parts/t/partition_special_innodb.test
+36
-4
mysql-test/t/innodb-autoinc.test
mysql-test/t/innodb-autoinc.test
+141
-0
mysql-test/t/innodb.test
mysql-test/t/innodb.test
+15
-0
mysql-test/t/innodb_bug34300.test
mysql-test/t/innodb_bug34300.test
+30
-0
sql/ha_partition.cc
sql/ha_partition.cc
+2
-0
sql/sql_show.cc
sql/sql_show.cc
+1
-2
storage/innobase/buf/buf0buf.c
storage/innobase/buf/buf0buf.c
+1
-1
storage/innobase/ha/ha0ha.c
storage/innobase/ha/ha0ha.c
+17
-4
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.cc
+34
-4
storage/innobase/include/buf0buf.h
storage/innobase/include/buf0buf.h
+8
-5
storage/innobase/include/mach0data.h
storage/innobase/include/mach0data.h
+2
-2
storage/innobase/include/mach0data.ic
storage/innobase/include/mach0data.ic
+22
-16
storage/innobase/include/srv0srv.h
storage/innobase/include/srv0srv.h
+2
-0
storage/innobase/lock/lock0lock.c
storage/innobase/lock/lock0lock.c
+12
-0
storage/innobase/row/row0sel.c
storage/innobase/row/row0sel.c
+2
-31
storage/innobase/srv/srv0srv.c
storage/innobase/srv/srv0srv.c
+2
-0
No files found.
Makefile.am
View file @
d726a499
...
...
@@ -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
...
...
mysql-test/Makefile.am
View file @
d726a499
...
...
@@ -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
...
...
mysql-test/r/innodb-autoinc-optimize.result
View file @
d726a499
...
...
@@ -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
mysql-test/r/innodb-autoinc.result
0 → 100644
View file @
d726a499
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;
mysql-test/r/innodb.result
View file @
d726a499
...
...
@@ -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;
mysql-test/r/innodb_bug34300.result
0 → 100644
View file @
d726a499
f4 f8
xxx zzz
f4 f8
xxx zzz
mysql-test/suite/parts/r/partition_special_innodb.result
View file @
d726a499
...
...
@@ -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;
mysql-test/suite/parts/t/partition_special_innodb-master.opt
0 → 100644
View file @
d726a499
--innodb_lock_wait_timeout=2
mysql-test/suite/parts/t/partition_special_innodb.test
View file @
d726a499
################################################################################
# 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
;
mysql-test/t/innodb-autoinc.test
0 → 100644
View file @
d726a499
--
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
;
mysql-test/t/innodb.test
View file @
d726a499
...
...
@@ -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. #
...
...
mysql-test/t/innodb_bug34300.test
0 → 100644
View file @
d726a499
#
# 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
;
sql/ha_partition.cc
View file @
d726a499
...
...
@@ -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
)))
...
...
sql/sql_show.cc
View file @
d726a499
...
...
@@ -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
:
...
...
storage/innobase/buf/buf0buf.c
View file @
d726a499
...
...
@@ -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. */
...
...
storage/innobase/ha/ha0ha.c
View file @
d726a499
...
...
@@ -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"
,
(
ulong
)
hash_get_n_cells
(
table
));
fprintf
(
file
,
"Hash table size %lu, used cells %lu"
,
(
ulong
)
hash_get_n_cells
(
table
),
(
ulong
)
cells
);
#ifdef PRINT_USED_CELLS
fprintf
(
file
,
", used cells %lu"
,
(
ulong
)
cells
);
#endif
/* PRINT_USED_CELLS */
if
(
table
->
heaps
==
NULL
&&
table
->
heap
!=
NULL
)
{
...
...
storage/innobase/handler/ha_innodb.cc
View file @
d726a499
...
...
@@ -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
)
{
...
...
storage/innobase/include/buf0buf.h
View file @
d726a499
...
...
@@ -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. */
...
...
storage/innobase/include/mach0data.h
View file @
d726a499
...
...
@@ -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 writ
e */
/* out: integer valu
e */
const
byte
*
src
,
/* in: where to read from */
ulint
len
,
/* in: length of src */
ibool
unsigned_type
);
/* in: signed or unsigned flag */
...
...
storage/innobase/include/mach0data.ic
View file @
d726a499
...
...
@@ -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 writ
e */
/* out: integer valu
e */
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 */
ullint ret;
uint i;
if (unsigned_type || (src[0] & 0x80)) {
ret = 0x0000000000000000ULL;
} else {
if (!unsigned_type) {
dest[0] ^= 128;
ret = 0xFFFFFFFFFFFFFF00ULL;
}
#else
byte* ptr;
/* Convert integer data from Innobase to a little-endian format,
sign bit restored to normal. */
if (unsigned_type) {
ret |= src[0];
} else {
for (ptr = dest + len; ptr != dest; ++src) {
--ptr;
*ptr = *src;
ret |= src[0] ^ 0x80;
}
if (!unsigned_type) {
dest[len - 1] ^= 128;
for (i = 1; i < len; i++) {
ret <<= 8;
ret |= src[i];
}
#endif
return(ret);
}
storage/innobase/include/srv0srv.h
View file @
d726a499
...
...
@@ -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
;
...
...
storage/innobase/lock/lock0lock.c
View file @
d726a499
...
...
@@ -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 */
}
/*************************************************************************
...
...
storage/innobase/row/row0sel.c
View file @
d726a499
...
...
@@ -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
;
}
...
...
storage/innobase/srv/srv0srv.c
View file @
d726a499
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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