Commit 21e02b2c authored by Annamalai Gurusami's avatar Annamalai Gurusami Committed by Thirunarayanan Balathandayuthapani

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.
parent 6e76b402
#
# Bug #19077964 ASSERT PAGE_SIZE.EQUALS_TO SPACE_PAGE_SIZE
# BTR_COPY_BLOB_PREFIX
#
set global innodb_file_format=Barracuda;
create table t1 (f1 int primary key, f3 linestring not null,
spatial key(f3)) engine=innodb row_format=compressed key_block_size=1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f3` linestring NOT NULL,
PRIMARY KEY (`f1`),
SPATIAL KEY `f3` (`f3`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1
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)')));;
alter table t1 row_format=dynamic, key_block_size=0, algorithm=inplace;
drop table t1;
set global innodb_file_format=default;
--source include/have_innodb.inc
--echo #
--echo # Bug #19077964 ASSERT PAGE_SIZE.EQUALS_TO SPACE_PAGE_SIZE
--echo # BTR_COPY_BLOB_PREFIX
--echo #
set global innodb_file_format=Barracuda;
create table t1 (f1 int primary key, f3 linestring not null,
spatial key(f3)) engine=innodb row_format=compressed key_block_size=1;
show create table t1;
let $points = 80;
let $x = 0;
let $y = 0;
let $linestr = (;
while ($points)
{
let $linestr = $linestr $x $y,;
dec $points;
inc $x;
inc $y;
}
let $linestr = $linestr 9999 9999);
--eval insert into t1 values (1, linefromtext(concat('linestring', '$linestr')));
alter table t1 row_format=dynamic, key_block_size=0, algorithm=inplace;
drop table t1;
set global innodb_file_format=default;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment