polardbxengine/mysql-test/suite/innodb/r/lock_end_of_range.result

8729 lines
191 KiB
Plaintext

#
# Bug #29508068 UNNECESSARY NEXT-KEY LOCK TAKEN
#
CREATE TABLE t1 (
id INT NOT NULL,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
CREATE TABLE t2 (
id INT NOT NULL,
PRIMARY KEY (id DESC)
) ENGINE=InnoDB;
SET @conditions = CONCAT(
'<=0 <1 <=1 <7 <=7 <=8 <9 <=9 <=10 ',
'>=10 >9 >=9 >3 >=3 >=2 >1 >=1 >0'
);
INSERT INTO t1 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=0
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=0
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <1
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <1
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=1
ORDER BY id ASC
FOR UPDATE;
id
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=1
ORDER BY id DESC
FOR UPDATE;
id
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X,GAP GRANTED 3
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <7
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X,GAP GRANTED 7
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <7
ORDER BY id DESC
FOR UPDATE;
id
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X,GAP GRANTED 7
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=7
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=7
ORDER BY id DESC
FOR UPDATE;
id
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=8
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=8
ORDER BY id DESC
FOR UPDATE;
id
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <9
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <9
ORDER BY id DESC
FOR UPDATE;
id
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=9
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=9
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=10
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <=10
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=10
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=10
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >9
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >9
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=9
ORDER BY id ASC
FOR UPDATE;
id
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=9
ORDER BY id DESC
FOR UPDATE;
id
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >3
ORDER BY id ASC
FOR UPDATE;
id
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >3
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=3
ORDER BY id ASC
FOR UPDATE;
id
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=3
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=2
ORDER BY id ASC
FOR UPDATE;
id
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=2
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >1
ORDER BY id ASC
FOR UPDATE;
id
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >1
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=1
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >=1
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >0
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >0
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
DROP TABLE t1;
INSERT INTO t2 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t2;
Table Op Msg_type Msg_text
test.t2 analyze status OK
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=0
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=0
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <1
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <1
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=1
ORDER BY id ASC
FOR UPDATE;
id
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=1
ORDER BY id DESC
FOR UPDATE;
id
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <7
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <7
ORDER BY id DESC
FOR UPDATE;
id
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=7
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=7
ORDER BY id DESC
FOR UPDATE;
id
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 7
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=8
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=8
ORDER BY id DESC
FOR UPDATE;
id
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <9
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <9
ORDER BY id DESC
FOR UPDATE;
id
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=9
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=9
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=10
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <=10
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=10
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=10
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >9
ORDER BY id ASC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >9
ORDER BY id DESC
FOR UPDATE;
id
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=9
ORDER BY id ASC
FOR UPDATE;
id
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 7
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=9
ORDER BY id DESC
FOR UPDATE;
id
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >3
ORDER BY id ASC
FOR UPDATE;
id
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 3
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >3
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 3
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=3
ORDER BY id ASC
FOR UPDATE;
id
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=3
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=2
ORDER BY id ASC
FOR UPDATE;
id
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=2
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >1
ORDER BY id ASC
FOR UPDATE;
id
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >1
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X,GAP GRANTED 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=1
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >=1
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >0
ORDER BY id ASC
FOR UPDATE;
id
1
3
4
5
6
7
9
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >0
ORDER BY id DESC
FOR UPDATE;
id
9
7
6
5
4
3
1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
PRIMARY RECORD X GRANTED 9
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
DROP TABLE t2;
CREATE TABLE t1 (
id1 INT NOT NULL,
id2 INT NOT NULL,
PRIMARY KEY (id1 ASC, id2 ASC)
) ENGINE=InnoDB;
CREATE TABLE t2 (
id1 INT NOT NULL,
id2 INT NOT NULL,
PRIMARY KEY (id1 ASC, id2 DESC)
) ENGINE=InnoDB;
CREATE TABLE t3 (
id1 INT NOT NULL,
id2 INT NOT NULL,
PRIMARY KEY (id1 DESC, id2 ASC)
) ENGINE=InnoDB;
CREATE TABLE t4 (
id1 INT NOT NULL,
id2 INT NOT NULL,
PRIMARY KEY (id1 DESC, id2 DESC)
) ENGINE=InnoDB;
SET @conditions = CONCAT(
'<0 <1 <3 <=3 <=4 <5 <=5 ',
'>6 >5 >3 >=3 >=2 >1 >=1'
);
INSERT INTO t1 (id1,id2) VALUES
(1,1),(1,3),(1,5),(3,1),(3,3),(3,5),(5,1),(5,3),(5,5);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
DROP TABLE t1;
INSERT INTO t2 (id1,id2) VALUES
(1,1),(1,3),(1,5),(3,1),(3,3),(3,5),(5,1),(5,3),(5,5);
ANALYZE TABLE t2;
Table Op Msg_type Msg_text
test.t2 analyze status OK
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 5, 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 5, 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 5, 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 5, 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
DROP TABLE t2;
INSERT INTO t3 (id1,id2) VALUES
(1,1),(1,3),(1,5),(3,1),(3,3),(3,5),(5,1),(5,3),(5,5);
ANALYZE TABLE t3;
Table Op Msg_type Msg_text
test.t3 analyze status OK
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
3 5
3 3
3 1
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
3 1
3 3
3 5
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t3 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't3';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 1
ROLLBACK;
DROP TABLE t3;
INSERT INTO t4 (id1,id2) VALUES
(1,1),(1,3),(1,5),(3,1),(3,3),(3,5),(5,1),(5,3),(5,5);
ANALYZE TABLE t4;
Table Op Msg_type Msg_text
test.t4 analyze status OK
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <0
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <0
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X,GAP GRANTED 1, 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <=4
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=4
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 <=5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 <=5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X,GAP GRANTED 1, 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >6
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >6
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >5
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 5, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >5
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 3
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >=3
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=3
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >=2
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=2
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X,GAP GRANTED 3, 1
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 ASC
FOR UPDATE;
id1 id2
1 1
1 3
1 5
3 1
3 3
3 5
5 1
5 3
5 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 ASC
FOR UPDATE;
id1 id2
3 1
3 3
3 5
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X,GAP GRANTED 1, 5
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1 >=1
ORDER BY id1 DESC
FOR UPDATE;
id1 id2
5 5
5 3
5 1
3 5
3 3
3 1
1 5
1 3
1 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1, 1
PRIMARY RECORD X GRANTED 1, 3
PRIMARY RECORD X GRANTED 1, 5
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
PRIMARY RECORD X GRANTED 5, 1
PRIMARY RECORD X GRANTED 5, 3
PRIMARY RECORD X GRANTED 5, 5
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t4 FORCE INDEX (PRIMARY)
WHERE id1=3 AND id2 >=1
ORDER BY id2 DESC
FOR UPDATE;
id1 id2
3 5
3 3
3 1
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't4';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 3, 1
PRIMARY RECORD X GRANTED 3, 3
PRIMARY RECORD X GRANTED 3, 5
ROLLBACK;
DROP TABLE t4;
CREATE TABLE t1 (
id VARCHAR(100) NOT NULL,
PRIMARY KEY (id(1) ASC)
) ENGINE=InnoDB;
CREATE TABLE t2 (
id VARCHAR(100) NOT NULL,
PRIMARY KEY (id(1) DESC)
) ENGINE=InnoDB;
SET @conditions = CONCAT(
'<="c" <="d" <"e" <"ee" <="ee" <="ec" <="ef" ',
'>="g" >="f" >"e" >"ee" >="ee" >="ef" >="ec"'
);
INSERT INTO t1
VALUES ("aa"), ("bb"), ("cc"), ("ee"), ("gg"), ("hh"), ("ii");
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id DESC
FOR UPDATE;
id
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X,GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X,GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id DESC
FOR UPDATE;
id
ee
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id DESC
FOR UPDATE;
id
ee
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'g'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'g'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id ASC
FOR UPDATE;
id
ee
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id ASC
FOR UPDATE;
id
ee
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id ASC
FOR UPDATE;
id
ee
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
DROP TABLE t1;
INSERT INTO t2
VALUES ("aa"), ("bb"), ("cc"), ("ee"), ("gg"), ("hh"), ("ii");
ANALYZE TABLE t2;
Table Op Msg_type Msg_text
test.t2 analyze status OK
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'c'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id DESC
FOR UPDATE;
id
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'c'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id DESC
FOR UPDATE;
id
ee
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id DESC
FOR UPDATE;
id
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id ASC
FOR UPDATE;
id
aa
bb
cc
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id DESC
FOR UPDATE;
id
ee
cc
bb
aa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'a'
PRIMARY RECORD X GRANTED 'b'
PRIMARY RECORD X GRANTED 'c'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X,GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
PRIMARY RECORD X,GAP GRANTED 'e'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id ASC
FOR UPDATE;
id
ee
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id ASC
FOR UPDATE;
id
ee
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id ASC
FOR UPDATE;
id
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id ASC
FOR UPDATE;
id
ee
gg
hh
ii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id DESC
FOR UPDATE;
id
ii
hh
gg
ee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'e'
PRIMARY RECORD X GRANTED 'g'
PRIMARY RECORD X GRANTED 'h'
PRIMARY RECORD X GRANTED 'i'
ROLLBACK;
DROP TABLE t2;
CREATE TABLE t1 (
id VARCHAR(100) NOT NULL,
PRIMARY KEY (id(2) ASC)
) ENGINE=InnoDB;
CREATE TABLE t2 (
id VARCHAR(100) NOT NULL,
PRIMARY KEY (id(2) DESC)
) ENGINE=InnoDB;
SET @conditions = CONCAT(
'<="c" <="d" <"e" <"ee" <="ee" <="ec" <="ef" ',
'>="g" >="f" >"e" >"ee" >="ee" >="ef" >="ec"'
);
INSERT INTO t1
VALUES ("aaa"), ("bbb"), ("ccc"), ("eee"), ("ggg"), ("hhh"), ("iii");
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X,GAP GRANTED 'cc'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id DESC
FOR UPDATE;
id
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X,GAP GRANTED 'cc'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X,GAP GRANTED 'gg'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id DESC
FOR UPDATE;
id
eee
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X,GAP GRANTED 'gg'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id ASC
FOR UPDATE;
id
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id ASC
FOR UPDATE;
id
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id ASC
FOR UPDATE;
id
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t1 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
DROP TABLE t1;
INSERT INTO t2
VALUES ("aaa"), ("bbb"), ("ccc"), ("eee"), ("ggg"), ("hhh"), ("iii");
ANALYZE TABLE t2;
Table Op Msg_type Msg_text
test.t2 analyze status OK
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="c"
ORDER BY id DESC
FOR UPDATE;
id
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="d"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"e"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <"ee"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ee"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
PRIMARY RECORD X,REC_NOT_GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ec"
ORDER BY id DESC
FOR UPDATE;
id
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id ASC
FOR UPDATE;
id
aaa
bbb
ccc
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id <="ef"
ORDER BY id DESC
FOR UPDATE;
id
eee
ccc
bbb
aaa
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'aa'
PRIMARY RECORD X GRANTED 'bb'
PRIMARY RECORD X GRANTED 'cc'
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED supremum pseudo-record
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id ASC
FOR UPDATE;
id
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="g"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id ASC
FOR UPDATE;
id
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="f"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'cc'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"e"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'cc'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >"ee"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ee"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id ASC
FOR UPDATE;
id
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ef"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'ee'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id ASC
FOR UPDATE;
id
eee
ggg
hhh
iii
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'cc'
ROLLBACK;
BEGIN;
SELECT *
FROM t2 FORCE INDEX (PRIMARY)
WHERE id >="ec"
ORDER BY id DESC
FOR UPDATE;
id
iii
hhh
ggg
eee
SELECT index_name,lock_type,lock_mode,lock_status,lock_data
FROM performance_schema.data_locks
WHERE object_name = 't2';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 'ee'
PRIMARY RECORD X GRANTED 'gg'
PRIMARY RECORD X GRANTED 'hh'
PRIMARY RECORD X GRANTED 'ii'
PRIMARY RECORD X,GAP GRANTED 'cc'
ROLLBACK;
DROP TABLE t2;
CREATE TABLE t1 (
id INT NOT NULL,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
BEGIN;
SELECT * FROM t1 WHERE id=7 FOR UPDATE;
id
7
BEGIN;
SET DEBUG_SYNC='lock_wait_will_wait SIGNAL con2_will_wait';
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE id<=7 FOR UPDATE;;
SET DEBUG_SYNC='now WAIT_FOR con2_will_wait';
ROLLBACK;
id
1
3
4
5
6
7
DROP TABLE t1;
CREATE TABLE t1 (
id INT NOT NULL,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
SET GLOBAL innodb_purge_stop_now = ON;
DELETE FROM t1 WHERE id=7;
BEGIN;
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE id<=7 FOR UPDATE;
id
1
3
4
5
6
SELECT index_name, lock_type, lock_mode, lock_status, lock_data
FROM performance_schema.data_locks
WHERE object_name='t1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X GRANTED 1
PRIMARY RECORD X GRANTED 3
PRIMARY RECORD X GRANTED 4
PRIMARY RECORD X GRANTED 5
PRIMARY RECORD X GRANTED 6
PRIMARY RECORD X GRANTED 7
ROLLBACK;
SET GLOBAL innodb_purge_run_now = ON;
DROP TABLE t1;
CREATE TABLE t1 (
id INT NOT NULL,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
SET GLOBAL innodb_purge_stop_now = ON;
DELETE FROM t1 WHERE id=7;
BEGIN;
SELECT * FROM t1 WHERE id=7 FOR UPDATE;
id
BEGIN;
SET DEBUG_SYNC='lock_wait_will_wait SIGNAL con2_will_wait';
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE id<=7 FOR UPDATE;;
SET DEBUG_SYNC='now WAIT_FOR con2_will_wait';
ROLLBACK;
id
1
3
4
5
6
SET GLOBAL innodb_purge_run_now = ON;
DROP TABLE t1;
CREATE TABLE t1 (
id INT NOT NULL,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
SET GLOBAL innodb_purge_stop_now = ON;
DELETE FROM t1 WHERE id=7;
BEGIN;
INSERT INTO t1 VALUES (7);
BEGIN;
SET DEBUG_SYNC='lock_wait_will_wait SIGNAL con2_will_wait';
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE id<=7 FOR UPDATE;;
SET DEBUG_SYNC='now WAIT_FOR con2_will_wait';
ROLLBACK;
id
1
3
4
5
6
SET GLOBAL innodb_purge_run_now = ON;
DROP TABLE t1;
CREATE TABLE t1 (
id INT NOT NULL,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1), (3), (4), (5), (6), (7), (9);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
SET GLOBAL innodb_purge_stop_now = ON;
DELETE FROM t1 WHERE id=7;
BEGIN;
INSERT INTO t1 VALUES (7);
BEGIN;
SET DEBUG_SYNC='lock_wait_will_wait SIGNAL con2_will_wait';
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE id<=7 FOR UPDATE;;
SET DEBUG_SYNC='now WAIT_FOR con2_will_wait';
COMMIT;
id
1
3
4
5
6
7
SET GLOBAL innodb_purge_run_now = ON;
DROP TABLE t1;
CREATE TABLE t1 (
id INT NOT NULL,
val INT,
PRIMARY KEY (id ASC)
) ENGINE=InnoDB;
INSERT INTO t1 (id,val) VALUES (1,1),(2,2) ,(3,3), (4,4), (5,5), (6,6), (9,9);
BEGIN;
DELETE FROM t1 WHERE id=6;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN;
SET DEBUG_SYNC='
semi_consistent_read_would_wait
SIGNAL con2_would_wait
WAIT_FOR con2_can_unlock';
SET DEBUG_SYNC='
row_search_for_mysql_before_return
SIGNAL con2_returns_row
WAIT_FOR con2_can_return_row
EXECUTE 6';
UPDATE t1 SET val=13 WHERE id<=6;
Expecting row number 1
SET DEBUG_SYNC='now WAIT_FOR con2_returns_row';
SET DEBUG_SYNC='now SIGNAL con2_can_return_row';
Expecting row number 2
SET DEBUG_SYNC='now WAIT_FOR con2_returns_row';
SET DEBUG_SYNC='now SIGNAL con2_can_return_row';
Expecting row number 3
SET DEBUG_SYNC='now WAIT_FOR con2_returns_row';
SET DEBUG_SYNC='now SIGNAL con2_can_return_row';
Expecting row number 4
SET DEBUG_SYNC='now WAIT_FOR con2_returns_row';
SET DEBUG_SYNC='now SIGNAL con2_can_return_row';
Expecting row number 5
SET DEBUG_SYNC='now WAIT_FOR con2_returns_row';
SET DEBUG_SYNC='now SIGNAL con2_can_return_row';
SET DEBUG_SYNC='now WAIT_FOR con2_would_wait';
SELECT index_name, lock_type, lock_mode, lock_status, lock_data
FROM performance_schema.data_locks
WHERE object_name='t1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,REC_NOT_GAP GRANTED 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 2
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3
PRIMARY RECORD X,REC_NOT_GAP GRANTED 4
PRIMARY RECORD X,REC_NOT_GAP GRANTED 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 6
PRIMARY RECORD X,REC_NOT_GAP WAITING 6
SET DEBUG_SYNC='now SIGNAL con2_can_unlock';
SET DEBUG_SYNC='now WAIT_FOR con2_returns_row';
SELECT index_name, lock_type, lock_mode, lock_status, lock_data
FROM performance_schema.data_locks
WHERE object_name='t1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,REC_NOT_GAP GRANTED 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 2
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3
PRIMARY RECORD X,REC_NOT_GAP GRANTED 4
PRIMARY RECORD X,REC_NOT_GAP GRANTED 5
PRIMARY RECORD X,REC_NOT_GAP GRANTED 6
COMMIT;
SELECT index_name, lock_type, lock_mode, lock_status, lock_data
FROM performance_schema.data_locks
WHERE object_name='t1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,REC_NOT_GAP GRANTED 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 2
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3
PRIMARY RECORD X,REC_NOT_GAP GRANTED 4
PRIMARY RECORD X,REC_NOT_GAP GRANTED 5
SET DEBUG_SYNC='now SIGNAL con2_can_return_row';
SELECT index_name, lock_type, lock_mode, lock_status, lock_data
FROM performance_schema.data_locks
WHERE object_name='t1';
index_name lock_type lock_mode lock_status lock_data
NULL TABLE IX GRANTED NULL
PRIMARY RECORD X,REC_NOT_GAP GRANTED 1
PRIMARY RECORD X,REC_NOT_GAP GRANTED 2
PRIMARY RECORD X,REC_NOT_GAP GRANTED 3
PRIMARY RECORD X,REC_NOT_GAP GRANTED 4
PRIMARY RECORD X,REC_NOT_GAP GRANTED 5
ROLLBACK;
DROP TABLE t1;