mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-24 06:39:58 +00:00
This way, the callers don't need to do it, reducing the footprint of changes we've had to made to various index AM's build functions.
65 lines
2.1 KiB
Diff
65 lines
2.1 KiB
Diff
diff --git a/Makefile b/Makefile
|
|
index 7a4b88c..56678af 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -3,7 +3,10 @@ EXTVERSION = 0.8.0
|
|
|
|
MODULE_big = vector
|
|
DATA = $(wildcard sql/*--*--*.sql)
|
|
-DATA_built = sql/$(EXTENSION)--$(EXTVERSION).sql
|
|
+# This change is needed to install different per-version SQL files
|
|
+# like pgvector--0.8.0.sql and pgvector--0.7.4.sql
|
|
+# The corresponding file is downloaded during the Docker image build process
|
|
+DATA_built = sql/$(EXTENSION)--$(EXTVERSION).sql sql/vector--0.7.4.sql
|
|
OBJS = src/bitutils.o src/bitvec.o src/halfutils.o src/halfvec.o src/hnsw.o src/hnswbuild.o src/hnswinsert.o src/hnswscan.o src/hnswutils.o src/hnswvacuum.o src/ivfbuild.o src/ivfflat.o src/ivfinsert.o src/ivfkmeans.o src/ivfscan.o src/ivfutils.o src/ivfvacuum.o src/sparsevec.o src/vector.o
|
|
HEADERS = src/halfvec.h src/sparsevec.h src/vector.h
|
|
|
|
diff --git a/src/hnswbuild.c b/src/hnswbuild.c
|
|
index b667478..1298aa1 100644
|
|
--- a/src/hnswbuild.c
|
|
+++ b/src/hnswbuild.c
|
|
@@ -843,9 +843,17 @@ HnswParallelBuildMain(dsm_segment *seg, shm_toc *toc)
|
|
|
|
hnswarea = shm_toc_lookup(toc, PARALLEL_KEY_HNSW_AREA, false);
|
|
|
|
+#ifdef NEON_SMGR
|
|
+ smgr_start_unlogged_build(RelationGetSmgr(indexRel));
|
|
+#endif
|
|
+
|
|
/* Perform inserts */
|
|
HnswParallelScanAndInsert(heapRel, indexRel, hnswshared, hnswarea, false);
|
|
|
|
+#ifdef NEON_SMGR
|
|
+ smgr_finish_unlogged_build_phase_1(RelationGetSmgr(indexRel));
|
|
+#endif
|
|
+
|
|
/* Close relations within worker */
|
|
index_close(indexRel, indexLockmode);
|
|
table_close(heapRel, heapLockmode);
|
|
@@ -1100,13 +1108,25 @@ BuildIndex(Relation heap, Relation index, IndexInfo *indexInfo,
|
|
SeedRandom(42);
|
|
#endif
|
|
|
|
+#ifdef NEON_SMGR
|
|
+ smgr_start_unlogged_build(RelationGetSmgr(index));
|
|
+#endif
|
|
+
|
|
InitBuildState(buildstate, heap, index, indexInfo, forkNum);
|
|
|
|
BuildGraph(buildstate, forkNum);
|
|
|
|
+#ifdef NEON_SMGR
|
|
+ smgr_finish_unlogged_build_phase_1(RelationGetSmgr(index));
|
|
+#endif
|
|
+
|
|
if (RelationNeedsWAL(index) || forkNum == INIT_FORKNUM)
|
|
log_newpage_range(index, forkNum, 0, RelationGetNumberOfBlocksInFork(index, forkNum), true);
|
|
|
|
+#ifdef NEON_SMGR
|
|
+ smgr_end_unlogged_build(RelationGetSmgr(index));
|
|
+#endif
|
|
+
|
|
FreeBuildState(buildstate);
|
|
}
|
|
|