Skip to content

Commit 6af0a43

Browse files
committed
Added InitBuildSortState function [skip ci]
1 parent ffcb90d commit 6af0a43

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

src/ivfbuild.c

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,20 @@ PrintKmeansMetrics(IvfflatBuildState * buildstate)
562562
}
563563
#endif
564564

565+
/*
566+
* Initialize build sort state
567+
*/
568+
static Tuplesortstate *
569+
InitBuildSortState(TupleDesc tupdesc, int memory, SortCoordinate coordinate)
570+
{
571+
AttrNumber attNums[] = {1};
572+
Oid sortOperators[] = {Int4LessOperator};
573+
Oid sortCollations[] = {InvalidOid};
574+
bool nullsFirstFlags[] = {false};
575+
576+
return tuplesort_begin_heap(tupdesc, 1, attNums, sortOperators, sortCollations, nullsFirstFlags, memory, coordinate, false);
577+
}
578+
565579
/*
566580
* Within leader, wait for end of heap scan
567581
*/
@@ -609,12 +623,6 @@ IvfflatParallelScanAndSort(IvfflatSpool * ivfspool, IvfflatShared * ivfshared, S
609623
double reltuples;
610624
IndexInfo *indexInfo;
611625

612-
/* Sort options, which must match AssignTuples */
613-
AttrNumber attNums[] = {1};
614-
Oid sortOperators[] = {Int4LessOperator};
615-
Oid sortCollations[] = {InvalidOid};
616-
bool nullsFirstFlags[] = {false};
617-
618626
/* Initialize local tuplesort coordination state */
619627
coordinate = palloc0(sizeof(SortCoordinateData));
620628
coordinate->isWorker = true;
@@ -627,7 +635,7 @@ IvfflatParallelScanAndSort(IvfflatSpool * ivfspool, IvfflatShared * ivfshared, S
627635
InitBuildState(&buildstate, ivfspool->heap, ivfspool->index, indexInfo);
628636
memcpy(buildstate.centers->items, ivfcenters, buildstate.centers->itemsize * buildstate.centers->maxlen);
629637
buildstate.centers->length = buildstate.centers->maxlen;
630-
ivfspool->sortstate = tuplesort_begin_heap(buildstate.tupdesc, 1, attNums, sortOperators, sortCollations, nullsFirstFlags, sortmem, coordinate, false);
638+
ivfspool->sortstate = InitBuildSortState(buildstate.tupdesc, sortmem, coordinate);
631639
buildstate.sortstate = ivfspool->sortstate;
632640
scan = table_beginscan_parallel(ivfspool->heap,
633641
ParallelTableScanFromIvfflatShared(ivfshared));
@@ -924,12 +932,6 @@ AssignTuples(IvfflatBuildState * buildstate)
924932
int parallel_workers = 0;
925933
SortCoordinate coordinate = NULL;
926934

927-
/* Sort options, which must match IvfflatParallelScanAndSort */
928-
AttrNumber attNums[] = {1};
929-
Oid sortOperators[] = {Int4LessOperator};
930-
Oid sortCollations[] = {InvalidOid};
931-
bool nullsFirstFlags[] = {false};
932-
933935
pgstat_progress_update_param(PROGRESS_CREATEIDX_SUBPHASE, PROGRESS_IVFFLAT_PHASE_ASSIGN);
934936

935937
/* Calculate parallel workers */
@@ -950,7 +952,7 @@ AssignTuples(IvfflatBuildState * buildstate)
950952
}
951953

952954
/* Begin serial/leader tuplesort */
953-
buildstate->sortstate = tuplesort_begin_heap(buildstate->tupdesc, 1, attNums, sortOperators, sortCollations, nullsFirstFlags, maintenance_work_mem, coordinate, false);
955+
buildstate->sortstate = InitBuildSortState(buildstate->tupdesc, maintenance_work_mem, coordinate);
954956

955957
/* Add tuples to sort */
956958
if (buildstate->heap != NULL)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy