991 Commits
Author SHA1 Message Date
Andrew Kane 34c5915248 Version bump to 0.6.0 [skip ci] v0.6.0 2024-01-29 10:54:44 -08:00
Andrew Kane c5dcebff39 Removed unneeded item ids 2024-01-28 23:14:52 -08:00
Andrew Kane 94d29ba178 Ran pgindent [skip ci] 2024-01-28 23:03:48 -08:00
Andrew Kane f61ca86ba9 Updated variable name to be consistent with CreateGraphPages [skip ci] 2024-01-28 23:02:13 -08:00
Andrew Kane 04d861fb3e Zero memory for each element 2024-01-28 23:00:39 -08:00
Andrew Kane d4d42401b2 DRY HNSW tuple alloc size [skip ci] 2024-01-28 22:58:38 -08:00
Heikki LinnakangasandGitHub 0fb2113acc Remove unnecessary PageIndexTupleOverwrite calls that caused UB (#438)
These places called PageIndexTupleOverwrite(), with the new tuple
pointing directly to the original page. The PageIndexTupleOverwrite()
call is unnecessary in these cases, as we have already modified the
tuple on the page directly. Moreover, PageIndexTupleOverWrite() will
call memcpy with same src and dst arguments, which is undefined
behavior.

It's OK to modify the pages on disk directly, and we don't need
critical sections, because we either use the generic xlog functions
which create a temporary copy of the page, or we are building a new
index so if we crash the whole index is invisible and will be dropped
anyway.
2024-01-28 22:52:56 -08:00
Andrew Kane 0646799583 Revert "Update neighbor tuples in-place for HNSW index build"
This reverts commit d3d425f429.
2024-01-28 22:18:22 -08:00
Andrew Kane 60a8f53b7e Updated changelog [skip ci] 2024-01-28 21:42:30 -08:00
Andrew Kane f0cdc6364b Improved function names 2024-01-28 21:00:12 -08:00
Andrew Kane d3d425f429 Update neighbor tuples in-place for HNSW index build 2024-01-28 20:53:56 -08:00
Andrew Kane 7cf767add7 Fixed Valgrind check for HNSW in-memory, parallel index builds - closes #441 2024-01-28 16:19:32 -08:00
Andrew Kane feee79486d Removed checking neighbors for cached distance 2024-01-28 02:11:24 -08:00
Andrew Kane 8080074181 Fixed test name [skip ci] 2024-01-27 21:18:49 -08:00
Andrew Kane a587001971 Updated Postgres for Mac TAP tests on CI [skip ci] 2024-01-27 20:28:03 -08:00
Andrew Kane 9859ea168e Fixed uninitialized memory in scan->xs_recheck [skip ci] 2024-01-27 19:54:16 -08:00
Andrew Kane 614368f543 Fixed possibly uninitialized memory in lists [skip ci] 2024-01-27 19:51:34 -08:00
Andrew Kane 1913881a2a Fixed uninitialized entry point level - fixes #439 and closes #440 2024-01-27 19:49:40 -08:00
Heikki LinnakangasandGitHub a1c670ffcc Remove unused heapRel arguments (#443) 2024-01-26 12:45:10 -08:00
Andrew Kane ddf1709b52 Added note about max_parallel_maintenance_workers for HNSW [skip ci] 2024-01-25 13:32:35 -08:00
Andrew Kane 6d69d621e6 Moved Windows instructions [skip ci] 2024-01-25 02:11:21 -08:00
Heikki LinnakangasandGitHub 74199312e8 Remove unnecessary UpdateProgress() wrappers (#433)
Now that we require PostgreSQL v12, we can use
pgstat_progress_update_param directly.
2024-01-25 00:07:57 -08:00
Andrew Kane 536239762d DRY neighbor array size [skip ci] 2024-01-24 17:54:33 -08:00
Andrew Kane 2b2cee365c Condensed code [skip ci] 2024-01-24 16:20:00 -08:00
Andrew Kane ed457dafd5 Moved allocating neighbor array to separate function [skip ci] 2024-01-24 16:17:34 -08:00
Andrew Kane 08af81268d Added note about --shm-size [skip ci] 2024-01-24 14:49:38 -08:00
Andrew Kane d99b9e492f Updated changelog [skip ci] 2024-01-24 14:31:41 -08:00
Andrew Kane 9c06814393 Removed previous upgrade notes [skip ci] 2024-01-24 14:25:58 -08:00
Andrew Kane b502ed0ed5 Moved Docker image to pgvector org and added tags for each supported version of Postgres [skip ci] 2024-01-24 14:18:44 -08:00
Heikki Linnakangas 1d3d77c541 Include generic_xlog.h directly in the .c files where it's needed
There are no references to anything that's in generic_xlog.h in the
header files.
2024-01-23 13:04:03 +02:00
Heikki Linnakangas 717a4c170b Include reloptions.h directly in the .c files where it's needed
There are no references to anything that's in reloptions.h in the
header files. They need to include genam.h instead, which defines
IndexScanDesc.
2024-01-23 13:02:24 +02:00
Heikki Linnakangas a29260d008 Add direct include to pairingheap.h in headers
ivfflat.h and hnsw.h have references to pairingheap_node, so they need
to include lib/pairingheap.h. It happened to work, because
lib/pairingheap.h was being included indirectly through
nodes/execnodes.h, but let's be explicit.

Remove the include from hnswbuild.c, because there are no calls to
pairingheap functions in that file. Instead, add the includes to
hnswutils.c and ivfscan.c, which do have such calls. They are not
strictly necessary again because of the indirect include from hnsw.h
and ivfflat.h, but let's be explicit while we're messing with this.
2024-01-23 12:53:22 +02:00
Heikki Linnakangas 38ba8f7071 Remove unused #include
pg_list.h has not been used in hnswbuild.c since commit 0a7fd04b5c.
2024-01-23 12:53:13 +02:00
Andrew Kane befa5f177b Changed storage for vector from extended to external 2024-01-23 00:00:12 -08:00
Andrew Kane 145c3da384 Added validation for GUC parameters 2024-01-22 23:55:30 -08:00
Andrew Kane 43fb62b3d3 Dropped support for Postgres 11 2024-01-22 23:52:54 -08:00
Andrew Kane 03a72362a3 Leave more space for other shared memory 2024-01-22 23:31:55 -08:00
Andrew KaneandHeikki Linnakangas c6654cdacc Added support for in-memory parallel index builds for HNSW
Co-authored-by: Heikki Linnakangas <[email protected]>
2024-01-22 23:19:10 -08:00
Heikki LinnakangasandAndrew Kane 2f6629e115 Remove HnswSpool
It was just used to pass heap/index relations to
HnswParallelScanAndInsert. I think it was copied from nbtsort.c, which
is more complicated. I don't think we need a struct like this.

(That said, I actually think that we should have a state object that
would hold fields like 'heap', 'index', 'procinfo', 'collation'
etc. Passing that object around would simplify the signatures of many
functions. But that's a different story).
2024-01-22 23:11:25 -08:00
Heikki LinnakangasandAndrew Kane 0cf80b137c Remove unused 'scantuplesortstates' field 2024-01-22 23:08:20 -08:00
Andrew Kane daed87dd7f Use assert checking for scan-build [skip ci] 2024-01-22 23:05:49 -08:00
Andrew Kane 42b56ad8ee Made variable name consistent across functions [skip ci] 2024-01-22 19:02:33 -08:00
Andrew Kane 496d54767f Removed unused parameter [skip ci] 2024-01-22 19:00:45 -08:00
Andrew Kane a733a29bca Pass hash by reference 2024-01-22 18:34:40 -08:00
Andrew Kane 887095914a Added analyze to filtering tests 2024-01-21 18:08:16 -08:00
Andrew Kane c91db1edbd Added filtering tests for like [skip ci] 2024-01-21 18:01:42 -08:00
Andrew Kane 10babde8e0 Fixed test logic [skip ci] 2024-01-21 16:07:44 -08:00
Andrew Kane d83addfa8b Added more filtering tests 2024-01-21 16:03:22 -08:00
Andrew Kane 67b609cc4e Updated CI to Debian 12 [skip ci] 2024-01-21 12:40:55 -08:00
Andrew Kane 5cb73fbd65 Added test for filtering with IVFFlat 2024-01-20 21:38:40 -08:00