Skip to content

Commit 744077a

Browse files
committed
Merge branch 'mysql-8.0' into mysql-trunk
2 parents 070b8aa + 4188502 commit 744077a

35 files changed

+198
-317
lines changed

storage/innobase/btr/btr0btr.cc

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,7 +1491,6 @@ rec_t *btr_root_raise_and_insert(
14911491
ulint **offsets, /*!< out: offsets on inserted record */
14921492
mem_heap_t **heap, /*!< in/out: pointer to memory heap, or NULL */
14931493
const dtuple_t *tuple, /*!< in: tuple to insert */
1494-
ulint n_ext, /*!< in: number of externally stored columns */
14951494
mtr_t *mtr) /*!< in: mtr */
14961495
{
14971496
dict_index_t *index;
@@ -1631,8 +1630,8 @@ rec_t *btr_root_raise_and_insert(
16311630

16321631
page_cur_set_before_first(root_block, page_cursor);
16331632

1634-
node_ptr_rec = page_cur_tuple_insert(page_cursor, node_ptr, index, offsets,
1635-
heap, 0, mtr);
1633+
node_ptr_rec =
1634+
page_cur_tuple_insert(page_cursor, node_ptr, index, offsets, heap, mtr);
16361635

16371636
/* The root page should only contain the node pointer
16381637
to new_page at this point. Thus, the data should fit. */
@@ -1650,11 +1649,11 @@ rec_t *btr_root_raise_and_insert(
16501649
/* Split the child and insert tuple */
16511650
if (dict_index_is_spatial(index)) {
16521651
/* Split rtree page and insert tuple */
1653-
return (rtr_page_split_and_insert(flags, cursor, offsets, heap, tuple,
1654-
n_ext, mtr));
1652+
return (
1653+
rtr_page_split_and_insert(flags, cursor, offsets, heap, tuple, mtr));
16551654
} else {
1656-
return (btr_page_split_and_insert(flags, cursor, offsets, heap, tuple,
1657-
n_ext, mtr));
1655+
return (
1656+
btr_page_split_and_insert(flags, cursor, offsets, heap, tuple, mtr));
16581657
}
16591658
}
16601659

@@ -1754,8 +1753,7 @@ ibool btr_page_get_split_rec_to_right(
17541753
the lower or upper half-page (determined by btr_page_tuple_smaller()) */
17551754
static rec_t *btr_page_get_split_rec(
17561755
btr_cur_t *cursor, /*!< in: cursor at which insert should be made */
1757-
const dtuple_t *tuple, /*!< in: tuple to insert */
1758-
ulint n_ext) /*!< in: number of externally stored columns */
1756+
const dtuple_t *tuple) /*!< in: tuple to insert */
17591757
{
17601758
page_t *page;
17611759
page_zip_des_t *page_zip;
@@ -1774,7 +1772,7 @@ static rec_t *btr_page_get_split_rec(
17741772

17751773
page = btr_cur_get_page(cursor);
17761774

1777-
insert_size = rec_get_converted_size(cursor->index, tuple, n_ext);
1775+
insert_size = rec_get_converted_size(cursor->index, tuple);
17781776
free_space = page_get_free_space_of_empty(page_is_comp(page));
17791777

17801778
page_zip = btr_cur_get_page_zip(cursor);
@@ -1872,7 +1870,6 @@ static MY_ATTRIBUTE((warn_unused_result)) bool btr_page_insert_fits(
18721870
ulint **offsets, /*!< in: rec_get_offsets(
18731871
split_rec, cursor->index); out: garbage */
18741872
const dtuple_t *tuple, /*!< in: tuple to insert */
1875-
ulint n_ext, /*!< in: number of externally stored columns */
18761873
mem_heap_t **heap) /*!< in: temporary memory heap */
18771874
{
18781875
page_t *page;
@@ -1888,7 +1885,7 @@ static MY_ATTRIBUTE((warn_unused_result)) bool btr_page_insert_fits(
18881885
ut_ad(!split_rec || !page_is_comp(page) == !rec_offs_comp(*offsets));
18891886
ut_ad(!split_rec || rec_offs_validate(split_rec, cursor->index, *offsets));
18901887

1891-
insert_size = rec_get_converted_size(cursor->index, tuple, n_ext);
1888+
insert_size = rec_get_converted_size(cursor->index, tuple);
18921889
free_space = page_get_free_space_of_empty(page_is_comp(page));
18931890

18941891
/* free_space is now the free space of a created new page */
@@ -1990,12 +1987,12 @@ void btr_insert_on_non_leaf_level_func(
19901987

19911988
err = btr_cur_optimistic_insert(
19921989
flags | BTR_NO_LOCKING_FLAG | BTR_KEEP_SYS_FLAG | BTR_NO_UNDO_LOG_FLAG,
1993-
&cursor, &offsets, &heap, tuple, &rec, &dummy_big_rec, 0, nullptr, mtr);
1990+
&cursor, &offsets, &heap, tuple, &rec, &dummy_big_rec, nullptr, mtr);
19941991

19951992
if (err == DB_FAIL) {
19961993
err = btr_cur_pessimistic_insert(
19971994
flags | BTR_NO_LOCKING_FLAG | BTR_KEEP_SYS_FLAG | BTR_NO_UNDO_LOG_FLAG,
1998-
&cursor, &offsets, &heap, tuple, &rec, &dummy_big_rec, 0, nullptr, mtr);
1995+
&cursor, &offsets, &heap, tuple, &rec, &dummy_big_rec, nullptr, mtr);
19991996
ut_a(err == DB_SUCCESS);
20001997
}
20011998

@@ -2183,15 +2180,13 @@ of a page.
21832180
@param[out] offsets offsets on inserted record
21842181
@param[in,out] heap memory heap for allocating offsets
21852182
@param[in] tuple tuple to insert
2186-
@param[in] n_ext number of externally stored columns
21872183
@param[in,out] mtr mini-transaction
21882184
@return inserted record (first record on the right sibling page);
21892185
the cursor will be positioned on the page infimum
21902186
@retval NULL if the operation was not performed */
21912187
static rec_t *btr_insert_into_right_sibling(uint32_t flags, btr_cur_t *cursor,
21922188
ulint **offsets, mem_heap_t *heap,
2193-
const dtuple_t *tuple, ulint n_ext,
2194-
mtr_t *mtr) {
2189+
const dtuple_t *tuple, mtr_t *mtr) {
21952190
buf_block_t *block = btr_cur_get_block(cursor);
21962191
page_t *page = buf_block_get_frame(block);
21972192
page_no_t next_page_no = btr_page_get_next(page, mtr);
@@ -2236,7 +2231,7 @@ static rec_t *btr_insert_into_right_sibling(uint32_t flags, btr_cur_t *cursor,
22362231
}
22372232

22382233
rec = page_cur_tuple_insert(&next_page_cursor, tuple, cursor->index, offsets,
2239-
&heap, n_ext, mtr);
2234+
&heap, mtr);
22402235

22412236
if (rec == nullptr) {
22422237
if (is_leaf && next_block->page.size.is_compressed() &&
@@ -2309,7 +2304,6 @@ rec_t *btr_page_split_and_insert(
23092304
ulint **offsets, /*!< out: offsets on inserted record */
23102305
mem_heap_t **heap, /*!< in/out: pointer to memory heap, or NULL */
23112306
const dtuple_t *tuple, /*!< in: tuple to insert */
2312-
ulint n_ext, /*!< in: number of externally stored columns */
23132307
mtr_t *mtr) /*!< in: mtr */
23142308
{
23152309
buf_block_t *block;
@@ -2340,8 +2334,8 @@ rec_t *btr_page_split_and_insert(
23402334

23412335
if (dict_index_is_spatial(index)) {
23422336
/* Split rtree page and update parent */
2343-
return (rtr_page_split_and_insert(flags, cursor, offsets, heap, tuple,
2344-
n_ext, mtr));
2337+
return (
2338+
rtr_page_split_and_insert(flags, cursor, offsets, heap, tuple, mtr));
23452339
}
23462340

23472341
if (!*heap) {
@@ -2371,8 +2365,8 @@ rec_t *btr_page_split_and_insert(
23712365
ut_ad(!page_is_empty(page));
23722366

23732367
/* try to insert to the next page if possible before split */
2374-
rec = btr_insert_into_right_sibling(flags, cursor, offsets, *heap, tuple,
2375-
n_ext, mtr);
2368+
rec =
2369+
btr_insert_into_right_sibling(flags, cursor, offsets, *heap, tuple, mtr);
23762370

23772371
if (rec != nullptr) {
23782372
return (rec);
@@ -2388,7 +2382,7 @@ rec_t *btr_page_split_and_insert(
23882382
if (n_iterations > 0) {
23892383
direction = FSP_UP;
23902384
hint_page_no = page_no + 1;
2391-
split_rec = btr_page_get_split_rec(cursor, tuple, n_ext);
2385+
split_rec = btr_page_get_split_rec(cursor, tuple);
23922386

23932387
if (split_rec == nullptr) {
23942388
insert_left =
@@ -2456,10 +2450,10 @@ rec_t *btr_page_split_and_insert(
24562450
insert_empty:
24572451
ut_ad(!split_rec);
24582452
ut_ad(!insert_left);
2459-
buf = UT_NEW_ARRAY_NOKEY(
2460-
byte, rec_get_converted_size(cursor->index, tuple, n_ext));
2453+
buf =
2454+
UT_NEW_ARRAY_NOKEY(byte, rec_get_converted_size(cursor->index, tuple));
24612455

2462-
first_rec = rec_convert_dtuple_to_rec(buf, cursor->index, tuple, n_ext);
2456+
first_rec = rec_convert_dtuple_to_rec(buf, cursor->index, tuple);
24632457
move_limit = page_rec_get_next(btr_cur_get_rec(cursor));
24642458
}
24652459

@@ -2476,7 +2470,7 @@ rec_t *btr_page_split_and_insert(
24762470
if (split_rec) {
24772471
insert_will_fit =
24782472
!new_page_zip &&
2479-
btr_page_insert_fits(cursor, split_rec, offsets, tuple, n_ext, heap);
2473+
btr_page_insert_fits(cursor, split_rec, offsets, tuple, heap);
24802474
} else {
24812475
if (!insert_left) {
24822476
UT_DELETE_ARRAY(buf);
@@ -2485,7 +2479,7 @@ rec_t *btr_page_split_and_insert(
24852479

24862480
insert_will_fit =
24872481
!new_page_zip &&
2488-
btr_page_insert_fits(cursor, nullptr, offsets, tuple, n_ext, heap);
2482+
btr_page_insert_fits(cursor, nullptr, offsets, tuple, heap);
24892483
}
24902484

24912485
if (!srv_read_only_mode && !cursor->index->table->is_intrinsic() &&
@@ -2610,7 +2604,7 @@ rec_t *btr_page_split_and_insert(
26102604
page_cur_search(insert_block, cursor->index, tuple, page_cursor);
26112605

26122606
rec = page_cur_tuple_insert(page_cursor, tuple, cursor->index, offsets, heap,
2613-
n_ext, mtr);
2607+
mtr);
26142608

26152609
#ifdef UNIV_ZIP_DEBUG
26162610
{
@@ -2637,7 +2631,7 @@ rec_t *btr_page_split_and_insert(
26372631
}
26382632

26392633
rec = page_cur_tuple_insert(page_cursor, tuple, cursor->index, offsets, heap,
2640-
n_ext, mtr);
2634+
mtr);
26412635

26422636
if (rec == nullptr) {
26432637
/* The insert did not fit on the page: loop back to the

storage/innobase/btr/btr0bulk.cc

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -167,18 +167,17 @@ dberr_t PageBulk::init() {
167167
@param[in] tuple tuple to insert
168168
@param[in] big_rec external record
169169
@param[in] rec_size record size
170-
@param[in] n_ext number of externally stored columns
171170
@return error code */
172171
dberr_t PageBulk::insert(const dtuple_t *tuple, const big_rec_t *big_rec,
173-
ulint rec_size, ulint n_ext) {
172+
ulint rec_size) {
174173
ulint *offsets = nullptr;
175174

176175
DBUG_EXECUTE_IF("BtrBulk_insert_inject_error", return DB_INTERRUPTED;);
177176

178177
/* Convert tuple to record. */
179178
byte *rec_mem = static_cast<byte *>(mem_heap_alloc(m_heap, rec_size));
180179

181-
rec_t *rec = rec_convert_dtuple_to_rec(rec_mem, m_index, tuple, n_ext);
180+
rec_t *rec = rec_convert_dtuple_to_rec(rec_mem, m_index, tuple);
182181
offsets = rec_get_offsets(rec, m_index, offsets, ULINT_UNDEFINED, &m_heap);
183182

184183
/* Insert the record.*/
@@ -891,10 +890,9 @@ dberr_t BtrBulk::prepareSpace(PageBulk *&page_bulk, ulint level,
891890
@param[in] big_rec big record vector, could be nullptr if there is no
892891
data to be stored externally.
893892
@param[in] rec_size record size
894-
@param[in] n_ext number of externally stored columns
895893
@return error code */
896894
dberr_t BtrBulk::insert(PageBulk *page_bulk, dtuple_t *tuple,
897-
big_rec_t *big_rec, ulint rec_size, ulint n_ext) {
895+
big_rec_t *big_rec, ulint rec_size) {
898896
dberr_t err = DB_SUCCESS;
899897

900898
if (big_rec != nullptr) {
@@ -910,7 +908,7 @@ dberr_t BtrBulk::insert(PageBulk *page_bulk, dtuple_t *tuple,
910908
}
911909
}
912910

913-
err = page_bulk->insert(tuple, big_rec, rec_size, n_ext);
911+
err = page_bulk->insert(tuple, big_rec, rec_size);
914912

915913
if (big_rec != nullptr) {
916914
/* Restore latches */
@@ -966,19 +964,18 @@ dberr_t BtrBulk::insert(dtuple_t *tuple, ulint level) {
966964
dtuple_get_info_bits(tuple) | REC_INFO_MIN_REC_FLAG);
967965
}
968966

969-
ulint n_ext = 0;
970-
ulint rec_size = rec_get_converted_size(m_index, tuple, n_ext);
967+
ulint rec_size = rec_get_converted_size(m_index, tuple);
971968
big_rec_t *big_rec = nullptr;
972969

973970
if (page_bulk->needExt(tuple, rec_size)) {
974971
/* The record is so big that we have to store some fields
975972
externally on separate database pages */
976-
big_rec = dtuple_convert_big_rec(m_index, nullptr, tuple, &n_ext);
973+
big_rec = dtuple_convert_big_rec(m_index, nullptr, tuple);
977974
if (big_rec == nullptr) {
978975
return (DB_TOO_BIG_RECORD);
979976
}
980977

981-
rec_size = rec_get_converted_size(m_index, tuple, n_ext);
978+
rec_size = rec_get_converted_size(m_index, tuple);
982979
}
983980

984981
if (page_bulk->isTableCompressed() && page_zip_is_too_big(m_index, tuple)) {
@@ -1000,7 +997,7 @@ dberr_t BtrBulk::insert(dtuple_t *tuple, ulint level) {
1000997
}
1001998
});
1002999

1003-
err = insert(page_bulk, tuple, big_rec, rec_size, n_ext);
1000+
err = insert(page_bulk, tuple, big_rec, rec_size);
10041001

10051002
func_exit:
10061003
if (big_rec != nullptr) {

0 commit comments

Comments
 (0)