2008-03-17 14:09:44 +00:00
|
|
|
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;
|
2008-07-01 06:53:40 +00:00
|
|
|
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;
|
branches/zip:
Merge 2605:2617 from branches/5.1:
------------------------------------------------------------------------
r2609 | sunny | 2008-08-24 01:19:05 +0300 (Sun, 24 Aug 2008) | 12 lines
Changed paths:
M /branches/5.1/handler/ha_innodb.cc
M /branches/5.1/mysql-test/innodb-autoinc.result
M /branches/5.1/mysql-test/innodb-autoinc.test
branches/5.1: Fix for MySQL Bug#38839. Reset the statement level last
value field in prebuilt. This field tracks the last value in an autoincrement
interval. We use this value to check whether we need to update a table's
AUTOINC counter, if the value written to a table is less than this value
then we avoid updating the table's AUTOINC value in order to reduce
mutex contention. If it's not reset (e.g., after a DELETE statement) then
there is the possibility of missing updates to the table's AUTOINC counter
resulting in a subsequent duplicate row error message under certain
conditions (see the test case for details).
Bug #38839 - auto increment does not work properly with InnoDB after update
------------------------------------------------------------------------
r2617 | vasil | 2008-09-09 15:46:17 +0300 (Tue, 09 Sep 2008) | 47 lines
Changed paths:
M /branches/5.1/mysql-test/innodb.result
branches/5.1:
Merge a change from MySQL (fix the failing innodb test):
------------------------------------------------------------
revno: 2646.12.1
committer: Mattias Jonsson <mattiasj@mysql.com>
branch nick: wl4176_2-51-bugteam
timestamp: Mon 2008-08-11 20:02:03 +0200
message:
Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt
The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
PARTITION took another code path (over mysql_alter_table instead of
mysql_admin_table) which differs in two ways:
1) alter table opens the tables in a different way than admin tables do
resulting in returning with error before it tried the command
2) alter table does not start to send any diagnostic rows to the client
which the lower admin functions continue to use -> resulting in
assertion crash
The fix:
Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
Adding check in mysql_admin_table to setup the partition list for
which partitions that should be used.
Partitioned tables will still not work with
REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
to tables, REPAIR TABLE t USE_FRM, and check that the data still
fulfills the partitioning function and then move the table back to
being a partition.
NOTE: I have removed the following functions from the handler
interface:
analyze_partitions, check_partitions, optimize_partitions,
repair_partitions
Since they are not longer needed.
THIS ALTERS THE STORAGE ENGINE API
I have verified that OPTIMIZE TABLE actually rebuilds the table
and calls ANALYZE.
Approved by: Heikki
2008-09-09 12:00:34 +00:00
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table '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;
|
|
|
|
c1 c2
|
|
|
|
2 1
|
|
|
|
3 8
|
|
|
|
DROP TABLE t1;
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table '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;
|
|
|
|
c1 c2
|
|
|
|
2 1
|
|
|
|
3 8
|
|
|
|
5 9
|
|
|
|
DROP TABLE t1;
|
branches/zip: Merge revisions 2702:2722 from branches/5.1:
------------------------------------------------------------------------
r2702 | sunny | 2008-09-30 11:41:56 +0300 (Tue, 30 Sep 2008) | 13 lines
Changed paths:
M /branches/5.1/handler/ha_innodb.cc
branches/5.1: Since handler::get_auto_increment() doesn't allow us
to return the cause of failure we have to inform MySQL using the
sql_print_warning() function to return the cause for autoinc failure.
Previously we simply printed the error code, this patch prints the
text string representing the following two error codes:
DB_LOCK_WAIT_TIMEOUT
DB_DEADLOCK.
Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
Approved by Marko.
------------------------------------------------------------------------
r2709 | vasil | 2008-10-01 10:13:13 +0300 (Wed, 01 Oct 2008) | 10 lines
Changed paths:
M /branches/5.1/include/lock0lock.h
M /branches/5.1/lock/lock0lock.c
A /branches/5.1/mysql-test/innodb_bug38231.result
A /branches/5.1/mysql-test/innodb_bug38231.test
M /branches/5.1/row/row0mysql.c
branches/5.1:
Fix Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK
In TRUNCATE TABLE and discard tablespace: do not remove table-level S
and X locks and do not assert on such locks not being wait locks.
Leave such locks alone.
Approved by: Heikki (rb://14)
------------------------------------------------------------------------
r2710 | vasil | 2008-10-01 14:13:58 +0300 (Wed, 01 Oct 2008) | 6 lines
Changed paths:
M /branches/5.1/include/sync0sync.ic
branches/5.1:
Silence a compilation warning in UNIV_DEBUG.
Approved by: Marko (via IM)
------------------------------------------------------------------------
r2719 | vasil | 2008-10-03 18:17:28 +0300 (Fri, 03 Oct 2008) | 49 lines
Changed paths:
M /branches/5.1/handler/ha_innodb.cc
A /branches/5.1/mysql-test/innodb_bug39438-master.opt
A /branches/5.1/mysql-test/innodb_bug39438.result
A /branches/5.1/mysql-test/innodb_bug39438.test
branches/5.1:
Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
In ha_innobase::info() - do not try to get the free space for a tablespace
which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the
.ibd file is missing for some other reason.
ibd_file_missing and tablespace_discarded are manipulated only in
row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql()
and the manipulation is protected/surrounded by
row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we
do the same in ha_innobase::info() when checking the values of those members
to avoid race conditions. I have tested the code-path with UNIV_DEBUG and
UNIV_SYNC_DEBUG.
Looks like it is not possible to avoid mysqld printing warnings in the
mysql-test case and thus this test innodb_bug39438 must be added to the
list of exceptional test cases that are allowed to print warnings. For this,
the following patch must be applied to the mysql source tree:
--- cut ---
=== modified file 'mysql-test/lib/mtr_report.pl'
--- mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +0000
+++ mysql-test/lib/mtr_report.pl 2008-10-01 11:57:41 +0000
@@ -412,7 +412,10 @@
# When trying to set lower_case_table_names = 2
# on a case sensitive file system. Bug#37402.
- /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive. Now setting lower_case_table_names to 0 to avoid future problems./
+ /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive. Now setting lower_case_table_names to 0 to avoid future problems./ or
+
+ # this test is expected to print warnings
+ ($testname eq 'main.innodb_bug39438')
)
{
next; # Skip these lines
--- cut ---
The mysql-test is currently somewhat disabled (see inside
innodb_bug39438.test), after the above patch has been applied to the mysql
source tree, the test can be enabled.
rb://20
Reviewed by: Inaam, Calvin
Approved by: Heikki
------------------------------------------------------------------------
r2720 | vasil | 2008-10-03 19:52:39 +0300 (Fri, 03 Oct 2008) | 8 lines
Changed paths:
M /branches/5.1/handler/ha_innodb.cc
branches/5.1:
Print a warning if an attempt is made to get the free space for a table
whose .ibd file is missing or the tablespace has been discarded. This is a
followup to r2719.
Suggested by: Inaam
------------------------------------------------------------------------
r2721 | sunny | 2008-10-04 02:08:23 +0300 (Sat, 04 Oct 2008) | 6 lines
Changed paths:
M /branches/5.1/handler/ha_innodb.cc
branches/5.1: We need to send the messages to the client because
handler::get_auto_increment() doesn't allow a way to return the
specific error for why it failed.
rb://18
------------------------------------------------------------------------
r2722 | sunny | 2008-10-04 02:48:04 +0300 (Sat, 04 Oct 2008) | 18 lines
Changed paths:
M /branches/5.1/dict/dict0mem.c
M /branches/5.1/handler/ha_innodb.cc
M /branches/5.1/include/dict0mem.h
M /branches/5.1/include/row0mysql.h
M /branches/5.1/mysql-test/innodb-autoinc.result
M /branches/5.1/mysql-test/innodb-autoinc.test
M /branches/5.1/row/row0mysql.c
branches/5.1: This bug has always existed but was masked by other errors. The
fix for bug# 38839 triggered this bug. When the offset and increment are > 1
we need to calculate the next value taking into consideration the two
variables. Previously we simply assumed they were 1 particularly offset was
never used. MySQL does its own calculation and that's probably why it seemed
to work in the past. We would return what we thought was the correct next
value and then MySQL would recalculate the actual value from that and return
it to the caller (e.g., handler::write_row()). Several new tests have been
added that try and catch some edge cases. The tests exposed a wrap around
error in MySQL next value calculation which was filed as bug#39828. The tests
will need to be updated once MySQL fix that bug.
One good side effect of this fix is that dict_table_t size has been
reduced by 8 bytes because we have moved the autoinc_increment field to
the row_prebuilt_t structure. See review-board for a detailed discussion.
rb://3
------------------------------------------------------------------------
2008-10-04 03:22:36 +00:00
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 100
|
|
|
|
auto_increment_offset 10
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table '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;
|
|
|
|
c1
|
|
|
|
5
|
|
|
|
10
|
|
|
|
110
|
|
|
|
250
|
|
|
|
310
|
|
|
|
INSERT INTO t1 VALUES (1000);
|
|
|
|
SET @@INSERT_ID=400;
|
|
|
|
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
5
|
|
|
|
10
|
|
|
|
110
|
|
|
|
250
|
|
|
|
310
|
|
|
|
400
|
|
|
|
410
|
|
|
|
1000
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(0);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
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;
|
|
|
|
c1
|
|
|
|
-1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
110
|
|
|
|
250
|
|
|
|
410
|
|
|
|
SET @@INSERT_ID=400;
|
|
|
|
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
|
|
Got one of the listed errors
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
-1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
110
|
|
|
|
250
|
|
|
|
410
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 INT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(-1);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
-1
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 100
|
|
|
|
auto_increment_offset 10
|
|
|
|
INSERT INTO t1 VALUES (-2), (NULL),(2),(NULL);
|
|
|
|
INSERT INTO t1 VALUES (250),(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
-2
|
|
|
|
-1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
250
|
|
|
|
310
|
|
|
|
INSERT INTO t1 VALUES (1000);
|
|
|
|
SET @@INSERT_ID=400;
|
|
|
|
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
-2
|
|
|
|
-1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
250
|
|
|
|
310
|
|
|
|
400
|
|
|
|
410
|
|
|
|
1000
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(-1);
|
|
|
|
Warnings:
|
|
|
|
Warning 1264 Out of range value for column 'c1' at row 1
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 100
|
|
|
|
auto_increment_offset 10
|
|
|
|
INSERT INTO t1 VALUES (-2);
|
|
|
|
Warnings:
|
|
|
|
Warning 1264 Out of range value for column 'c1' at row 1
|
|
|
|
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;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
110
|
|
|
|
210
|
|
|
|
250
|
|
|
|
310
|
|
|
|
INSERT INTO t1 VALUES (1000);
|
|
|
|
SET @@INSERT_ID=400;
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
110
|
|
|
|
210
|
|
|
|
250
|
|
|
|
310
|
|
|
|
400
|
|
|
|
1000
|
|
|
|
1010
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(-1);
|
|
|
|
Warnings:
|
|
|
|
Warning 1264 Out of range value for column 'c1' at row 1
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 100
|
|
|
|
auto_increment_offset 10
|
|
|
|
INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL);
|
|
|
|
Warnings:
|
|
|
|
Warning 1264 Out of range value for column 'c1' at row 1
|
|
|
|
INSERT INTO t1 VALUES (250),(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
110
|
|
|
|
210
|
|
|
|
250
|
|
|
|
410
|
|
|
|
INSERT INTO t1 VALUES (1000);
|
|
|
|
SET @@INSERT_ID=400;
|
|
|
|
INSERT INTO t1 VALUES(NULL),(NULL);
|
|
|
|
Got one of the listed errors
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
10
|
|
|
|
110
|
|
|
|
210
|
|
|
|
250
|
|
|
|
410
|
|
|
|
1000
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
INSERT INTO t1 VALUES (9223372036854775794);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
9223372036854775794
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 2
|
|
|
|
auto_increment_offset 10
|
|
|
|
INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
9223372036854775794
|
|
|
|
9223372036854775796
|
|
|
|
9223372036854775798
|
|
|
|
9223372036854775800
|
|
|
|
9223372036854775802
|
|
|
|
9223372036854775804
|
|
|
|
9223372036854775806
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
INSERT INTO t1 VALUES (18446744073709551603);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
18446744073709551603
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=2, @@SESSION.AUTO_INCREMENT_OFFSET=10;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 2
|
|
|
|
auto_increment_offset 10
|
|
|
|
INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
0
|
|
|
|
1
|
|
|
|
18446744073709551603
|
|
|
|
18446744073709551604
|
|
|
|
18446744073709551606
|
|
|
|
18446744073709551608
|
|
|
|
18446744073709551610
|
|
|
|
18446744073709551612
|
|
|
|
18446744073709551614
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
INSERT INTO t1 VALUES (18446744073709551603);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
18446744073709551603
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=5, @@SESSION.AUTO_INCREMENT_OFFSET=7;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 5
|
|
|
|
auto_increment_offset 7
|
|
|
|
INSERT INTO t1 VALUES (NULL),(NULL), (NULL);
|
|
|
|
Got one of the listed errors
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
18446744073709551603
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 BIGINT AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
INSERT INTO t1 VALUES(-9223372036854775806);
|
|
|
|
INSERT INTO t1 VALUES(-9223372036854775807);
|
|
|
|
INSERT INTO t1 VALUES(-9223372036854775808);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
-9223372036854775808
|
|
|
|
-9223372036854775807
|
|
|
|
-9223372036854775806
|
|
|
|
1
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=3, @@SESSION.AUTO_INCREMENT_OFFSET=3;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 3
|
|
|
|
auto_increment_offset 3
|
|
|
|
INSERT INTO t1 VALUES (NULL),(NULL), (NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
-9223372036854775808
|
|
|
|
-9223372036854775807
|
|
|
|
-9223372036854775806
|
|
|
|
1
|
|
|
|
3
|
|
|
|
6
|
|
|
|
9
|
|
|
|
DROP TABLE t1;
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
|
|
|
SET @@INSERT_ID=1;
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 1
|
|
|
|
auto_increment_offset 1
|
|
|
|
DROP TABLE IF EXISTS t1;
|
|
|
|
Warnings:
|
|
|
|
Note 1051 Unknown table 't1'
|
|
|
|
CREATE TABLE t1 (c1 BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES(NULL);
|
|
|
|
INSERT INTO t1 VALUES (18446744073709551610);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
18446744073709551610
|
|
|
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCREMENT_OFFSET=1152921504606846976;
|
|
|
|
Warnings:
|
|
|
|
Warning 1292 Truncated incorrect auto_increment_increment value: '1152921504606846976'
|
|
|
|
Warning 1292 Truncated incorrect auto_increment_offset value: '1152921504606846976'
|
|
|
|
SHOW VARIABLES LIKE "%auto_inc%";
|
|
|
|
Variable_name Value
|
|
|
|
auto_increment_increment 65535
|
|
|
|
auto_increment_offset 65535
|
|
|
|
INSERT INTO t1 VALUES (NULL),(NULL), (NULL);
|
|
|
|
SELECT * FROM t1;
|
|
|
|
c1
|
|
|
|
1
|
|
|
|
65534
|
|
|
|
65535
|
|
|
|
18446744073709551610
|
|
|
|
18446744073709551615
|
|
|
|
DROP TABLE t1;
|