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

Commit6af0a43

Browse files
committed
Added InitBuildSortState function [skip ci]
1 parentffcb90d commit6af0a43

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+
staticTuplesortstate*
569+
InitBuildSortState(TupleDesctupdesc,intmemory,SortCoordinatecoordinate)
570+
{
571+
AttrNumberattNums[]= {1};
572+
OidsortOperators[]= {Int4LessOperator};
573+
OidsortCollations[]= {InvalidOid};
574+
boolnullsFirstFlags[]= {false};
575+
576+
returntuplesort_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
doublereltuples;
610624
IndexInfo*indexInfo;
611625

612-
/* Sort options, which must match AssignTuples */
613-
AttrNumberattNums[]= {1};
614-
OidsortOperators[]= {Int4LessOperator};
615-
OidsortCollations[]= {InvalidOid};
616-
boolnullsFirstFlags[]= {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
intparallel_workers=0;
925933
SortCoordinatecoordinate=NULL;
926934

927-
/* Sort options, which must match IvfflatParallelScanAndSort */
928-
AttrNumberattNums[]= {1};
929-
OidsortOperators[]= {Int4LessOperator};
930-
OidsortCollations[]= {InvalidOid};
931-
boolnullsFirstFlags[]= {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)

[8]ページ先頭

©2009-2025 Movatter.jp