Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf4020eb

Browse files
author
Artur Zakirov
committed
Fix: set RumNullCategory for copied IndexTuple without posting list
1 parente8f34ec commitf4020eb

File tree

6 files changed

+15
-10
lines changed

6 files changed

+15
-10
lines changed

‎rum.h‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,10 @@ typedef signed char RumNullCategory;
211211
#defineRumCategoryOffset(itup,rumstate) \
212212
(IndexInfoFindDataOffset((itup)->t_info) + \
213213
((rumstate)->oneCol ? 0 : sizeof(int16)))
214-
/*#define RumGetNullCategory(itup,rumstate) \
215-
(*((RumNullCategory *) ((char*)(itup) + RumCategoryOffset(itup,rumstate))))
216-
#define RumSetNullCategory(itup,rumstate,c) \
217-
(*((RumNullCategory *) ((char*)(itup) + RumCategoryOffset(itup,rumstate))) = (c))*/
218214

219-
#defineRumGetNullCategory(itup,rumstate) \
215+
#defineRumGetNullCategory(itup) \
220216
(*((RumNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(RumNullCategory))))
221-
#defineRumSetNullCategory(itup,rumstate,c) \
217+
#defineRumSetNullCategory(itup,c) \
222218
(*((RumNullCategory *) ((char*)(itup) + IndexTupleSize(itup) - sizeof(RumNullCategory))) = (c))
223219

224220
/*

‎rumentrypage.c‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ static IndexTuple
6868
RumFormInteriorTuple(IndexTupleitup,Pagepage,BlockNumberchildblk)
6969
{
7070
IndexTuplenitup;
71+
RumNullCategorycategory;
7172

7273
if (RumPageIsLeaf(page)&& !RumIsPostingTree(itup))
7374
{
@@ -91,6 +92,14 @@ RumFormInteriorTuple(IndexTuple itup, Page page, BlockNumber childblk)
9192
/* Now insert the correct downlink */
9293
RumSetDownlink(nitup,childblk);
9394

95+
category=RumGetNullCategory(itup);
96+
if (category==RUM_CAT_NULL_KEY||category==RUM_CAT_EMPTY_ITEM||
97+
category==RUM_CAT_NULL_ITEM)
98+
{
99+
nitup->t_info |=INDEX_NULL_MASK;
100+
RumSetNullCategory(nitup,category);
101+
}
102+
94103
returnnitup;
95104
}
96105

‎rumfast.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ RumFastFormTuple(RumState * rumstate,
421421
if (category!=RUM_CAT_NORM_KEY)
422422
{
423423
Assert(IndexTupleHasNulls(itup));
424-
RumSetNullCategory(itup,rumstate,category);
424+
RumSetNullCategory(itup,category);
425425
}
426426

427427
returnitup;

‎ruminsert.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ RumFormTuple(RumState * rumstate,
227227
if (category!=RUM_CAT_NORM_KEY)
228228
{
229229
Assert(IndexTupleHasNulls(itup));
230-
RumSetNullCategory(itup,rumstate,category);
230+
RumSetNullCategory(itup,category);
231231
}
232232

233233
returnitup;

‎rumutil.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ rumtuple_get_key(RumState * rumstate, IndexTuple tuple,
419419
}
420420

421421
if (isnull)
422-
*category=RumGetNullCategory(tuple,rumstate);
422+
*category=RumGetNullCategory(tuple);
423423
else
424424
*category=RUM_CAT_NORM_KEY;
425425

‎rumvacuum.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ RumFormTuple(RumState * rumstate,
203203
if (category!=RUM_CAT_NORM_KEY)
204204
{
205205
Assert(IndexTupleHasNulls(itup));
206-
RumSetNullCategory(itup,rumstate,category);
206+
RumSetNullCategory(itup,category);
207207
}
208208
returnitup;
209209
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp