LevelDB storage engine (MDEV-3841)

[MDEV-4077] LevelDB: Wrong result (duplicate row) on select with range access by primary key Created: 2013-01-23  Updated: 2013-01-24  Resolved: 2013-01-24

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Technical task Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Petrunia
Resolution: Fixed Votes: 0
Labels: leveldb

Issue Links:
Relates

 Description   

Out of the following 4 SELECTs, first 3 return wrong result, and the last one is correct:

CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=LevelDB;
INSERT INTO t1 VALUES (10),(11);
 
SELECT pk FROM t1 WHERE pk > 5 AND pk < 15;
pk
10
10
11
 
EXPLAIN EXTENDED
SELECT pk FROM t1 WHERE pk > 5 AND pk < 15;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	t1	range	PRIMARY	PRIMARY	4	NULL	10	100.00	Using where; Using index
Warnings:
Note	1003	/* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where ((`test`.`t1`.`pk` > 5) and (`test`.`t1`.`pk` < 15))
 
SELECT pk FROM t1 WHERE pk BETWEEN 5 AND 15;
pk
10
10
11
 
EXPLAIN EXTENDED
SELECT pk FROM t1 WHERE pk BETWEEN 5 AND 15;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	t1	range	PRIMARY	PRIMARY	4	NULL	10	100.00	Using where; Using index
Warnings:
Note	1003	/* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where (`test`.`t1`.`pk` between 5 and 15)
 
SELECT pk FROM t1 WHERE pk > 5;
pk
10
10
11
 
EXPLAIN EXTENDED
SELECT pk FROM t1 WHERE pk > 5;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	t1	range	PRIMARY	PRIMARY	4	NULL	10	100.00	Using where; Using index
Warnings:
Note	1003	/* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where (`test`.`t1`.`pk` > 5)
 
SELECT pk FROM t1 WHERE pk < 15;
pk
10
11
 
EXPLAIN EXTENDED
SELECT pk FROM t1 WHERE pk < 15;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	t1	range	PRIMARY	PRIMARY	4	NULL	10	100.00	Using where; Using index
Warnings:
Note	1003	/* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where (`test`.`t1`.`pk` < 15)

Test case:

 
CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=LevelDB;
INSERT INTO t1 VALUES (10),(11);
SELECT pk FROM t1 WHERE pk > 5 AND pk < 15;
SELECT pk FROM t1 WHERE pk BETWEEN 5 AND 15;
SELECT pk FROM t1 WHERE pk > 5;
SELECT pk FROM t1 WHERE pk < 15;

revision-id: psergey@askmonty.org-20130123185233-7xokxc9ck9nosb2l
revno: 4509
branch-nick: mysql-5.6-leveldb


Generated at Thu Feb 08 06:53:32 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.