mirror of
https://github.com/MariaDB/server.git
synced 2026-05-03 05:35:31 +02:00
Fixed compiler warnings
Fixed failing test innodb.innodb-autoinc.test Enabled innodb test suite mysql-test/mysql-test-run.pl: Enabled innodb test suite mysql-test/r/innodb-autoinc.result: Removed test as it exists in suite innodb mysql-test/suite/innodb/t/disabled.def: Removed innodb-autoinc mysql-test/suite/innodb/t/innodb-autoinc.test: Update to be able to run with plugin mysql-test/t/innodb-autoinc.test: Removed test as it exists in suite innodb sql/filesort.cc: Removed not used variable sql/slave.cc: Remove compiler warnings storage/pbxt/src/ha_pbxt.cc: Removed not used variable storage/xtradb/dict/dict0crea.c: Fixed compiler warning about unsigned comparison support-files/compiler_warnings.supp: Disable some not relevant warnings
This commit is contained in:
parent
9e23495b1d
commit
80ba8556e7
10 changed files with 15 additions and 1917 deletions
|
|
@ -129,7 +129,7 @@ my $path_config_file; # The generated config file, var/my.cnf
|
||||||
# executables will be used by the test suite.
|
# executables will be used by the test suite.
|
||||||
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
|
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
|
||||||
|
|
||||||
my $DEFAULT_SUITES= "main,binlog,federated,rpl,maria,parts";
|
my $DEFAULT_SUITES= "main,binlog,federated,rpl,maria,parts,innodb";
|
||||||
my $opt_suites;
|
my $opt_suites;
|
||||||
|
|
||||||
our $opt_verbose= 0; # Verbose output, enable with --verbose
|
our $opt_verbose= 0; # Verbose output, enable with --verbose
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -12,4 +12,3 @@
|
||||||
innodb : Bug#53306 2010-04-30 VasilDimov valgrind warnings
|
innodb : Bug#53306 2010-04-30 VasilDimov valgrind warnings
|
||||||
innodb_bug52663 : Waiting for merge with XtraDB
|
innodb_bug52663 : Waiting for merge with XtraDB
|
||||||
innodb_bug51920 : Waiting for merge with XtraDB
|
innodb_bug51920 : Waiting for merge with XtraDB
|
||||||
innodb-autoinc : Automatic file format change to Barracuda
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
# embedded server ignores 'delayed', so skip this
|
# embedded server ignores 'delayed', so skip this
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
let $file_format_check=`select @@innodb_file_format_check`;
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
@ -662,3 +664,7 @@ INSERT INTO t1 VALUES (1), (2), (-685113344), (NULL);
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
EVAL SET GLOBAL innodb_file_format_check=$file_format_check;
|
||||||
|
--enable_query_log
|
||||||
|
|
|
||||||
|
|
@ -1,668 +0,0 @@
|
||||||
-- source include/have_innodb.inc
|
|
||||||
# embedded server ignores 'delayed', so skip this
|
|
||||||
-- source include/not_embedded.inc
|
|
||||||
|
|
||||||
let $file_format_check=`select @@innodb_file_format_check`;
|
|
||||||
|
|
||||||
--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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bug 38839
|
|
||||||
# Reset the last value generated at end of statement
|
|
||||||
#
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, c2 INT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (NULL, 1);
|
|
||||||
DELETE FROM t1 WHERE c1 = 1;
|
|
||||||
INSERT INTO t1 VALUES (2,1);
|
|
||||||
INSERT INTO t1 VALUES (NULL,8);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
# Bug 38839 -- same as above but for multi value insert
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, c2 INT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (NULL, 1);
|
|
||||||
DELETE FROM t1 WHERE c1 = 1;
|
|
||||||
INSERT INTO t1 VALUES (2,1), (NULL, 8);
|
|
||||||
INSERT INTO t1 VALUES (NULL,9);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test changes to AUTOINC next value calculation
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (NULL),(5),(NULL);
|
|
||||||
INSERT INTO t1 VALUES (250),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
INSERT INTO t1 VALUES (1000);
|
|
||||||
SET @@INSERT_ID=400;
|
|
||||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
# Test with SIGNED INT column, by inserting a 0 for the first column value
|
|
||||||
# 0 is treated in the same was NULL.
|
|
||||||
# Reset the AUTOINC session variables
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES(0);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
INSERT INTO t1 VALUES (-1), (NULL),(2),(NULL);
|
|
||||||
INSERT INTO t1 VALUES (250),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@INSERT_ID=400;
|
|
||||||
# Duplicate error expected here for autoinc_lock_mode != TRADITIONAL
|
|
||||||
-- error ER_DUP_ENTRY,1062
|
|
||||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
# Test with SIGNED INT column
|
|
||||||
# Reset the AUTOINC session variables
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES(-1);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
INSERT INTO t1 VALUES (-2), (NULL),(2),(NULL);
|
|
||||||
INSERT INTO t1 VALUES (250),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
INSERT INTO t1 VALUES (1000);
|
|
||||||
SET @@INSERT_ID=400;
|
|
||||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
# Test with UNSIGNED INT column, single insert
|
|
||||||
# The sign in the value is ignored and a new column value is generated
|
|
||||||
# Reset the AUTOINC session variables
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES(-1);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
INSERT INTO t1 VALUES (-2);
|
|
||||||
INSERT INTO t1 VALUES (NULL);
|
|
||||||
INSERT INTO t1 VALUES (2);
|
|
||||||
INSERT INTO t1 VALUES (NULL);
|
|
||||||
INSERT INTO t1 VALUES (250);
|
|
||||||
INSERT INTO t1 VALUES (NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
INSERT INTO t1 VALUES (1000);
|
|
||||||
SET @@INSERT_ID=400;
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
# Test with UNSIGNED INT column, multi-value inserts
|
|
||||||
# The sign in the value is ignored and a new column value is generated
|
|
||||||
# Reset the AUTOINC session variables
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES(-1);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL);
|
|
||||||
INSERT INTO t1 VALUES (250),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
INSERT INTO t1 VALUES (1000);
|
|
||||||
SET @@INSERT_ID=400;
|
|
||||||
# Duplicate error expected here for autoinc_lock_mode != TRADITIONAL
|
|
||||||
-- error ER_DUP_ENTRY,1062
|
|
||||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check for overflow handling when increment is > 1
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
# TODO: Fix the autoinc init code
|
|
||||||
# We have to do this because of a bug in the AUTOINC init code.
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
INSERT INTO t1 VALUES (9223372036854775794); #-- 2^63 - 14
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
# This should just fit
|
|
||||||
INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check for overflow handling when increment and offser are > 1
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
# TODO: Fix the autoinc init code
|
|
||||||
# We have to do this because of a bug in the AUTOINC init code.
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
INSERT INTO t1 VALUES (18446744073709551603); #-- 2^64 - 13
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
# This should fail because of overflow but it doesn't, it seems to be
|
|
||||||
# a MySQL server bug. It wraps around to 0 for the last value.
|
|
||||||
# See MySQL Bug# 39828
|
|
||||||
#
|
|
||||||
# Instead of wrapping around, it asserts when MySQL is compiled --with-debug
|
|
||||||
# (see sql/handler.cc:handler::update_auto_increment()). Don't test for
|
|
||||||
# overflow until Bug #39828 is fixed.
|
|
||||||
#
|
|
||||||
# Since this asserts when compiled --with-debug, we can't properly test this
|
|
||||||
# until Bug #39828 is fixed. For now, this test is meaningless.
|
|
||||||
#if Bug #39828 is fixed
|
|
||||||
#INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
|
||||||
#else
|
|
||||||
INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
|
||||||
#endif
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check for overflow handling when increment and offset are odd numbers
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
# TODO: Fix the autoinc init code
|
|
||||||
# We have to do this because of a bug in the AUTOINC init code.
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
INSERT INTO t1 VALUES (18446744073709551603); #-- 2^64 - 13
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=5, @@SESSION.AUTO_INCREMENT_OFFSET=7;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
# This should fail because of overflow but it doesn't. It fails with
|
|
||||||
# a duplicate entry message because of a MySQL server bug, it wraps
|
|
||||||
# around. See MySQL Bug# 39828, once MySQL fix the bug we can replace
|
|
||||||
# the ER_DUP_ENTRY, 1062 below with the appropriate error message
|
|
||||||
#
|
|
||||||
# Since this asserts when compiled --with-debug, we can't properly test this
|
|
||||||
# until Bug #39828 is fixed. For now, this test is meaningless.
|
|
||||||
#if Bug #39828 is fixed
|
|
||||||
# Still need to fix this error code, error should mention overflow
|
|
||||||
#-- error ER_DUP_ENTRY,1062
|
|
||||||
#INSERT INTO t1 VALUES (NULL),(NULL), (NULL);
|
|
||||||
#else
|
|
||||||
INSERT INTO t1 VALUES (NULL),(NULL);
|
|
||||||
#endif
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
# Check for overflow handling when increment and offset are odd numbers
|
|
||||||
# and check for large -ve numbers
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
# TODO: Fix the autoinc init code
|
|
||||||
# We have to do this because of a bug in the AUTOINC init code.
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
INSERT INTO t1 VALUES(-9223372036854775806); #-- -2^63 + 2
|
|
||||||
INSERT INTO t1 VALUES(-9223372036854775807); #-- -2^63 + 1
|
|
||||||
INSERT INTO t1 VALUES(-9223372036854775808); #-- -2^63
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=3, @@SESSION.AUTO_INCREMENT_OFFSET=3;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
INSERT INTO t1 VALUES (NULL),(NULL), (NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
#
|
|
||||||
# Check for overflow handling when increment and offset are very
|
|
||||||
# large numbers 2^60
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
||||||
# TODO: Fix the autoinc init code
|
|
||||||
# We have to do this because of a bug in the AUTOINC init code.
|
|
||||||
INSERT INTO t1 VALUES(NULL);
|
|
||||||
INSERT INTO t1 VALUES (18446744073709551610); #-- 2^64 - 2
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCREMENT_OFFSET=1152921504606846976;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
# This should fail because of overflow but it doesn't. It wraps around
|
|
||||||
# and the autoinc values look bogus too.
|
|
||||||
# See MySQL Bug# 39828, once MySQL fix the bug we can enable the error
|
|
||||||
# code expected test.
|
|
||||||
# -- error ER_AUTOINC_READ_FAILED,1467
|
|
||||||
#
|
|
||||||
# Since this asserts when compiled --with-debug, we can't properly test this
|
|
||||||
# until Bug #39828 is fixed. For now, this test is meaningless.
|
|
||||||
#if Bug #39828 is fixed
|
|
||||||
#-- error ER_AUTOINC_READ_FAILED,1467
|
|
||||||
#INSERT INTO t1 VALUES (NULL),(NULL);
|
|
||||||
#else
|
|
||||||
INSERT INTO t1 VALUES (NULL);
|
|
||||||
#endif
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Check for floating point autoinc column handling
|
|
||||||
#
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SET @@INSERT_ID=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
CREATE TABLE t1 (c1 DOUBLE NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES(NULL, 1);
|
|
||||||
INSERT INTO t1 VALUES(NULL, 2);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
ALTER TABLE t1 CHANGE c1 c1 SERIAL;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
INSERT INTO t1 VALUES(NULL, 3);
|
|
||||||
INSERT INTO t1 VALUES(NULL, 4);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 FLOAT NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES(NULL, 1);
|
|
||||||
INSERT INTO t1 VALUES(NULL, 2);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
ALTER TABLE t1 CHANGE c1 c1 SERIAL;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
INSERT INTO t1 VALUES(NULL, 3);
|
|
||||||
INSERT INTO t1 VALUES(NULL, 4);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bug# 42714: AUTOINC column calculated next value not greater than highest
|
|
||||||
# value stored in table.
|
|
||||||
#
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=5;
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
DROP TABLE IF EXISTS t2;
|
|
||||||
CREATE TABLE t1 (
|
|
||||||
a INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
b INT(10) UNSIGNED NOT NULL,
|
|
||||||
c ENUM('FALSE','TRUE') DEFAULT NULL,
|
|
||||||
PRIMARY KEY (a)) ENGINE = InnoDB;
|
|
||||||
CREATE TABLE t2 (
|
|
||||||
m INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
n INT(10) UNSIGNED NOT NULL,
|
|
||||||
o enum('FALSE','TRUE') DEFAULT NULL,
|
|
||||||
PRIMARY KEY (m)) ENGINE = InnoDB;
|
|
||||||
INSERT INTO t2 (n,o) VALUES
|
|
||||||
(1 , 'true'), (1 , 'false'), (2 , 'true'), (2 , 'false'), (3 , 'true'),
|
|
||||||
(3 , 'false'), (4 , 'true'), (4 , 'false'), (5 , 'true'), (5 , 'false');
|
|
||||||
SHOW CREATE TABLE t2;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 ;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 ;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (b,c) SELECT n,o FROM t2 WHERE o = 'false';
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
DROP TABLE t2;
|
|
||||||
#
|
|
||||||
# 43203: Overflow from auto incrementing causes server segv
|
|
||||||
#
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
DROP TABLE IF EXISTS t2;
|
|
||||||
CREATE TABLE t1(
|
|
||||||
c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
|
|
||||||
PRIMARY KEY) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
|
||||||
CREATE TABLE t2(
|
|
||||||
c1 TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT
|
|
||||||
PRIMARY KEY) ENGINE=InnoDB;
|
|
||||||
-- error ER_DUP_ENTRY,1062
|
|
||||||
INSERT INTO t2 SELECT c1 FROM t1;
|
|
||||||
-- error ER_DUP_ENTRY,1467
|
|
||||||
INSERT INTO t2 SELECT NULL FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
DROP TABLE t2;
|
|
||||||
|
|
||||||
# If the user has specified negative values for an AUTOINC column then
|
|
||||||
# InnoDB should ignore those values when setting the table's max value.
|
|
||||||
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
||||||
SHOW VARIABLES LIKE "auto_inc%";
|
|
||||||
# TINYINT
|
|
||||||
CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-127, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-127, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-32767, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-32757, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-8388607, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-8388607, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-2147483647, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-2147483647, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-9223372036854775807, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
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 (1, NULL);
|
|
||||||
INSERT INTO t1 VALUES (-1, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (-9223372036854775807, 'innodb');
|
|
||||||
INSERT INTO t1 VALUES (NULL, NULL);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
#
|
|
||||||
# End negative number check
|
|
||||||
|
|
||||||
##
|
|
||||||
# 47125: auto_increment start value is ignored if an index is created
|
|
||||||
# and engine=innodb
|
|
||||||
#
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, c2 INT, PRIMARY KEY(c1)) AUTO_INCREMENT=10 ENGINE=InnoDB;
|
|
||||||
CREATE INDEX i1 on t1(c2);
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 (c2) values (0);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
##
|
|
||||||
# 49032: Use the correct function to read the AUTOINC column value
|
|
||||||
#
|
|
||||||
CREATE TABLE t1(C1 DOUBLE AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb');
|
|
||||||
# Restart the server
|
|
||||||
-- source include/restart_mysqld.inc
|
|
||||||
INSERT INTO t1(C2) VALUES ('innodb');
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1(C1 FLOAT AUTO_INCREMENT KEY, C2 CHAR(10)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1(C1, C2) VALUES (1, 'innodb'), (3, 'innodb');
|
|
||||||
# Restart the server
|
|
||||||
-- source include/restart_mysqld.inc
|
|
||||||
INSERT INTO t1(C2) VALUES ('innodb');
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
##
|
|
||||||
# 47720: REPLACE INTO Autoincrement column with negative values
|
|
||||||
#
|
|
||||||
CREATE TABLE t1 (c1 INT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 SET c1 = 1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
INSERT INTO t1 SET c1 = 2;
|
|
||||||
INSERT INTO t1 SET c1 = -1;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
-- error ER_DUP_ENTRY,1062
|
|
||||||
INSERT INTO t1 SET c1 = -1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
REPLACE INTO t1 VALUES (-1);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
##
|
|
||||||
# 49497: Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
|
|
||||||
#
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1 (c1 INTEGER AUTO_INCREMENT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (-685113344), (1), (NULL), (NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1 (c1 INTEGER AUTO_INCREMENT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (-685113344), (2), (NULL), (NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1 (c1 INTEGER AUTO_INCREMENT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (NULL), (2), (-685113344), (NULL);
|
|
||||||
INSERT INTO t1 VALUES (4), (5), (6), (NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1 (c1 INTEGER AUTO_INCREMENT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (NULL), (2), (-685113344), (5);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1 (c1 INTEGER AUTO_INCREMENT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 VALUES (1), (2), (-685113344), (NULL);
|
|
||||||
SELECT * FROM t1;
|
|
||||||
SHOW CREATE TABLE t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
EVAL SET GLOBAL innodb_file_format_check=$file_format_check;
|
|
||||||
--enable_query_log
|
|
||||||
|
|
@ -609,7 +609,6 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select,
|
||||||
if (error == 0)
|
if (error == 0)
|
||||||
param->examined_rows++;
|
param->examined_rows++;
|
||||||
|
|
||||||
int rc= 0;
|
|
||||||
if (error == 0 && (!select || select->skip_record(thd) > 0))
|
if (error == 0 && (!select || select->skip_record(thd) > 0))
|
||||||
{
|
{
|
||||||
if (idx == param->keys)
|
if (idx == param->keys)
|
||||||
|
|
|
||||||
|
|
@ -2849,7 +2849,6 @@ pthread_handler_t handle_slave_sql(void *arg)
|
||||||
my_off_t saved_log_pos;
|
my_off_t saved_log_pos;
|
||||||
my_off_t saved_master_log_pos;
|
my_off_t saved_master_log_pos;
|
||||||
my_off_t saved_skip= 0;
|
my_off_t saved_skip= 0;
|
||||||
|
|
||||||
Relay_log_info* rli = &((Master_info*)arg)->rli;
|
Relay_log_info* rli = &((Master_info*)arg)->rli;
|
||||||
const char *errmsg;
|
const char *errmsg;
|
||||||
|
|
||||||
|
|
@ -2857,6 +2856,8 @@ pthread_handler_t handle_slave_sql(void *arg)
|
||||||
my_thread_init();
|
my_thread_init();
|
||||||
DBUG_ENTER("handle_slave_sql");
|
DBUG_ENTER("handle_slave_sql");
|
||||||
|
|
||||||
|
LINT_INIT(saved_master_log_pos);
|
||||||
|
LINT_INIT(saved_log_pos);
|
||||||
DBUG_ASSERT(rli->inited);
|
DBUG_ASSERT(rli->inited);
|
||||||
pthread_mutex_lock(&rli->run_lock);
|
pthread_mutex_lock(&rli->run_lock);
|
||||||
DBUG_ASSERT(!rli->slave_running);
|
DBUG_ASSERT(!rli->slave_running);
|
||||||
|
|
|
||||||
|
|
@ -1232,8 +1232,6 @@ static int pbxt_init(void *p)
|
||||||
THD *thd = NULL;
|
THD *thd = NULL;
|
||||||
|
|
||||||
#ifndef DRIZZLED
|
#ifndef DRIZZLED
|
||||||
extern myxt_mutex_t LOCK_plugin;
|
|
||||||
|
|
||||||
/* {MYSQL QUIRK}
|
/* {MYSQL QUIRK}
|
||||||
* I have to release this lock for PBXT recovery to
|
* I have to release this lock for PBXT recovery to
|
||||||
* work, because it needs to open .frm files.
|
* work, because it needs to open .frm files.
|
||||||
|
|
@ -1251,6 +1249,7 @@ static int pbxt_init(void *p)
|
||||||
* plugin at the same time.
|
* plugin at the same time.
|
||||||
*/
|
*/
|
||||||
#if MYSQL_VERSION_ID <= 50146
|
#if MYSQL_VERSION_ID <= 50146
|
||||||
|
extern myxt_mutex_t LOCK_plugin;
|
||||||
myxt_mutex_unlock(&LOCK_plugin);
|
myxt_mutex_unlock(&LOCK_plugin);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -97,8 +97,8 @@ dict_create_sys_tables_tuple(
|
||||||
if (table->flags & ~DICT_TF_COMPACT) {
|
if (table->flags & ~DICT_TF_COMPACT) {
|
||||||
ut_a(table->flags & DICT_TF_COMPACT);
|
ut_a(table->flags & DICT_TF_COMPACT);
|
||||||
ut_a(dict_table_get_format(table) >= DICT_TF_FORMAT_ZIP);
|
ut_a(dict_table_get_format(table) >= DICT_TF_FORMAT_ZIP);
|
||||||
ut_a((table->flags & DICT_TF_ZSSIZE_MASK)
|
ut_a(((ulonglong) table->flags & DICT_TF_ZSSIZE_MASK)
|
||||||
<= (DICT_TF_ZSSIZE_MAX << DICT_TF_ZSSIZE_SHIFT));
|
<= (ulonglong) (DICT_TF_ZSSIZE_MAX << DICT_TF_ZSSIZE_SHIFT));
|
||||||
ut_a(!(table->flags & (~0 << DICT_TF_BITS)));
|
ut_a(!(table->flags & (~0 << DICT_TF_BITS)));
|
||||||
mach_write_to_4(ptr, table->flags);
|
mach_write_to_4(ptr, table->flags);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,8 @@ ut/ut0ut\.c: ignoring return value of
|
||||||
srv/srv0srv\.c: value computed is not used
|
srv/srv0srv\.c: value computed is not used
|
||||||
buf/buf0buf\.c: .*block_mutex.* might be used uninitialized
|
buf/buf0buf\.c: .*block_mutex.* might be used uninitialized
|
||||||
btr/btr0cur\.c: null argument where non-null required: 1800-3000
|
btr/btr0cur\.c: null argument where non-null required: 1800-3000
|
||||||
ibuf/ibuf0ibuf.c: null argument where non-null required: 700-100
|
btr/btr0btr\.c: null argument where non-null required: 2500-3000
|
||||||
|
ibuf/ibuf0ibuf.c: null argument where non-null required: 700-1000
|
||||||
|
|
||||||
#
|
#
|
||||||
# bdb is not critical to keep up to date
|
# bdb is not critical to keep up to date
|
||||||
|
|
@ -129,6 +130,7 @@ xaction_xt\.cc: may be used uninitialized in this function
|
||||||
#
|
#
|
||||||
storage/pbxt/ : typedef.*was ignored in this declaration
|
storage/pbxt/ : typedef.*was ignored in this declaration
|
||||||
ha_pbxt\.cc : variable.*might be clobbered by.*longjmp
|
ha_pbxt\.cc : variable.*might be clobbered by.*longjmp
|
||||||
|
table_xt\.cc : variable.*might be clobbered by ~longjm~p or ~vfork~
|
||||||
|
|
||||||
#
|
#
|
||||||
# Yassl
|
# Yassl
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue