@@ -166,17 +166,17 @@ btree_split(BTreeDescr *desc, Page p, OffsetNumber *offset, bool *place_right,
166
166
if (* place_right )
167
167
{
168
168
if (!replace )
169
- add_page_item (new_page , * offset , tuplesize + header_size );
169
+ add_page_item (new_page , * offset , MAXALIGN ( tuplesize ) + header_size );
170
170
else
171
- resize_page_item (new_page , * offset , tuplesize + header_size );
171
+ resize_page_item (new_page , * offset , MAXALIGN ( tuplesize ) + header_size );
172
172
tuple_ptr = BTREE_PAGE_GET_ITEM (new_page , * offset );
173
173
}
174
174
else
175
175
{
176
176
if (!replace )
177
- add_page_item (p , * offset , tuplesize + header_size );
177
+ add_page_item (p , * offset , MAXALIGN ( tuplesize ) + header_size );
178
178
else
179
- resize_page_item (p , * offset , tuplesize + header_size );
179
+ resize_page_item (p , * offset , MAXALIGN ( tuplesize ) + header_size );
180
180
tuple_ptr = BTREE_PAGE_GET_ITEM (p , * offset );
181
181
}
182
182
memcpy (tuple_ptr , tupleheader , header_size );
@@ -188,7 +188,7 @@ btree_split(BTreeDescr *desc, Page p, OffsetNumber *offset, bool *place_right,
188
188
if (leaf )
189
189
{
190
190
rightbound_key = desc -> tuple_make_key (desc , rightbound_key );
191
- rightbound_key_size = MAXALIGN ( desc -> key_len (desc , rightbound_key ) );
191
+ rightbound_key_size = desc -> key_len (desc , rightbound_key );
192
192
}
193
193
else
194
194
{
@@ -197,9 +197,9 @@ btree_split(BTreeDescr *desc, Page p, OffsetNumber *offset, bool *place_right,
197
197
}
198
198
199
199
if (was_rightmost )
200
- add_page_item (p , BTREE_HIKEY , rightbound_key_size );
200
+ add_page_item (p , BTREE_HIKEY , MAXALIGN ( rightbound_key_size ) );
201
201
else
202
- resize_page_item (p , BTREE_HIKEY , rightbound_key_size );
202
+ resize_page_item (p , BTREE_HIKEY , MAXALIGN ( rightbound_key_size ) );
203
203
204
204
memcpy (BTREE_PAGE_GET_ITEM (p , BTREE_HIKEY ),
205
205
rightbound_key , rightbound_key_size );
@@ -275,7 +275,8 @@ insert_to_leaf(BTreeStack *stack,
275
275
276
276
while (true)
277
277
{
278
- PageFitsItemResult fit = page_fits_item (p , offset , tuplen + tupheaderlen , replace );
278
+ LocationIndex itemsize = MAXALIGN (tuplen ) + tupheaderlen ;
279
+ PageFitsItemResult fit = page_fits_item (p , offset , itemsize , replace );
279
280
280
281
if (fit != PageNotFit )
281
282
{
@@ -312,7 +313,7 @@ insert_to_leaf(BTreeStack *stack,
312
313
state = modify_page (p , state );
313
314
if (!replace )
314
315
{
315
- add_page_item (p , offset , tuplen + tupheaderlen );
316
+ add_page_item (p , offset , itemsize );
316
317
317
318
/* Increment number of tuples in progress */
318
319
if (level == 0 )
@@ -327,8 +328,8 @@ insert_to_leaf(BTreeStack *stack,
327
328
* allocation. Thus we shouldn't cut space occupied by this
328
329
* page item.
329
330
*/
330
- if (tuplen + tupheaderlen > old_item_size )
331
- resize_page_item (p , offset , tuplen + tupheaderlen );
331
+ if (itemsize > old_item_size )
332
+ resize_page_item (p , offset , itemsize );
332
333
333
334
if (level == 0 )
334
335
{
@@ -777,7 +778,7 @@ btree_modify_internal(BTreeDescr *desc, BTreeModifyAction action,
777
778
}
778
779
}
779
780
780
- tuplen = MAXALIGN ( desc -> tuple_len (desc , tuple ) );
781
+ tuplen = desc -> tuple_len (desc , tuple );
781
782
insert_to_leaf (& stack , tuple , tuplen , & leaf_header , replace , self_update , undo_pos );
782
783
783
784
return result ;
0 commit comments