Skip to content

Commit 21e02b2

Browse files
gurusamiThirunarayanan
authored andcommitted
Bug #19077964 ASSERT PAGE_SIZE.EQUALS_TO SPACE_PAGE_SIZE BTR_COPY_BLOB_PREFIX
Problem: The function row_build_index_entry_low() takes a dtuple_t object ('row') and dict_index_t object ('index') as input and returns a new dtuple_t object ('entry') as output. The dtuple_t object 'row' that is given as input might have been constructed from a different dict_index_t object (!= index). So when accessing the externally stored data of the given 'row' we need to make use of the correct index object. Solution: Store the page size information in the associated row_ext_t object. rb#6086 approved by Vasil and Jimmy.
1 parent 6e76b40 commit 21e02b2

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#
2+
# Bug #19077964 ASSERT PAGE_SIZE.EQUALS_TO SPACE_PAGE_SIZE
3+
# BTR_COPY_BLOB_PREFIX
4+
#
5+
set global innodb_file_format=Barracuda;
6+
create table t1 (f1 int primary key, f3 linestring not null,
7+
spatial key(f3)) engine=innodb row_format=compressed key_block_size=1;
8+
show create table t1;
9+
Table Create Table
10+
t1 CREATE TABLE `t1` (
11+
`f1` int(11) NOT NULL,
12+
`f3` linestring NOT NULL,
13+
PRIMARY KEY (`f1`),
14+
SPATIAL KEY `f3` (`f3`)
15+
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1
16+
insert into t1 values (1, linefromtext(concat('linestring', '( 0 0, 1 1, 2 2, 3 3, 4 4, 5 5, 6 6, 7 7, 8 8, 9 9, 10 10, 11 11, 12 12, 13 13, 14 14, 15 15, 16 16, 17 17, 18 18, 19 19, 20 20, 21 21, 22 22, 23 23, 24 24, 25 25, 26 26, 27 27, 28 28, 29 29, 30 30, 31 31, 32 32, 33 33, 34 34, 35 35, 36 36, 37 37, 38 38, 39 39, 40 40, 41 41, 42 42, 43 43, 44 44, 45 45, 46 46, 47 47, 48 48, 49 49, 50 50, 51 51, 52 52, 53 53, 54 54, 55 55, 56 56, 57 57, 58 58, 59 59, 60 60, 61 61, 62 62, 63 63, 64 64, 65 65, 66 66, 67 67, 68 68, 69 69, 70 70, 71 71, 72 72, 73 73, 74 74, 75 75, 76 76, 77 77, 78 78, 79 79, 9999 9999)')));;
17+
alter table t1 row_format=dynamic, key_block_size=0, algorithm=inplace;
18+
drop table t1;
19+
set global innodb_file_format=default;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
--source include/have_innodb.inc
3+
4+
--echo #
5+
--echo # Bug #19077964 ASSERT PAGE_SIZE.EQUALS_TO SPACE_PAGE_SIZE
6+
--echo # BTR_COPY_BLOB_PREFIX
7+
--echo #
8+
9+
set global innodb_file_format=Barracuda;
10+
11+
create table t1 (f1 int primary key, f3 linestring not null,
12+
spatial key(f3)) engine=innodb row_format=compressed key_block_size=1;
13+
show create table t1;
14+
15+
let $points = 80;
16+
let $x = 0;
17+
let $y = 0;
18+
let $linestr = (;
19+
20+
while ($points)
21+
{
22+
let $linestr = $linestr $x $y,;
23+
dec $points;
24+
inc $x;
25+
inc $y;
26+
}
27+
28+
let $linestr = $linestr 9999 9999);
29+
30+
--eval insert into t1 values (1, linefromtext(concat('linestring', '$linestr')));
31+
32+
alter table t1 row_format=dynamic, key_block_size=0, algorithm=inplace;
33+
34+
drop table t1;
35+
36+
set global innodb_file_format=default;

0 commit comments

Comments
 (0)