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

Commit4b3b24e

Browse files
committed
Use state for rumSortItem/rumScanItem size calculation
1 parent55efc6f commit4b3b24e

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

‎src/rumsort.c

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,13 +203,21 @@ copytup_rumitem(RumTuplesortstate * state, SortTuple *stup, void *tup)
203203
#defineLogicalTapeReadExact_compat(state,LT_ARG,args...) LogicalTapeReadExact(state->tapeset, LT_ARG, ##args)
204204
#endif
205205

206-
#defineITEMSIZE(is_scanitem) is_scanitem ? sizeof(RumScanItem) : RumSortItemSize(state->nKeys);
206+
staticsize_trum_item_size(RumTuplesortstate*state)
207+
{
208+
if (state->copytup==copytup_rum)
209+
returnRumSortItemSize(state->nKeys);
210+
elseif (state->copytup==copytup_rumitem)
211+
returnsizeof(RumScanItem);
212+
else
213+
elog (FATAL,"Unknown RUM state");
214+
}
207215

208216
staticvoid
209-
writetup_rum_internal(RumTuplesortstate*state,LT_TYPELT_ARG,SortTuple*stup,boolis_item)
217+
writetup_rum_internal(RumTuplesortstate*state,LT_TYPELT_ARG,SortTuple*stup)
210218
{
211219
void*item=stup->tuple;
212-
size_tsize=ITEMSIZE(is_item);
220+
size_tsize=rum_item_size(state);
213221
unsignedintwrittenlen=size+sizeof(unsignedint);
214222

215223
LogicalTapeWrite(TAPE(state,LT_ARG),
@@ -227,21 +235,21 @@ writetup_rum_internal(RumTuplesortstate * state, LT_TYPE LT_ARG, SortTuple *stup
227235
staticvoid
228236
writetup_rum(RumTuplesortstate*state,LT_TYPELT_ARG,SortTuple*stup)
229237
{
230-
writetup_rum_internal(state,LT_ARG,stup, false);
238+
writetup_rum_internal(state,LT_ARG,stup);
231239
}
232240

233241
staticvoid
234242
writetup_rumitem(RumTuplesortstate*state,LT_TYPELT_ARG,SortTuple*stup)
235243
{
236-
writetup_rum_internal(state,LT_ARG,stup, true);
244+
writetup_rum_internal(state,LT_ARG,stup);
237245
}
238246

239247
staticvoid
240248
readtup_rum_internal(RumTuplesortstate*state,SortTuple*stup,
241249
LT_TYPELT_ARG,unsignedintlen,boolis_item)
242250
{
243251
unsignedinttuplen=len-sizeof(unsignedint);
244-
size_tsize=ITEMSIZE(is_item);
252+
size_tsize=rum_item_size(state);
245253
void*item=palloc(size);
246254

247255
Assert(tuplen==RumSortItemSize(state->nKeys));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp