Andrew Kane
3ebb9a506e
Added varatt headers for Postgres 16+
2025-10-22 11:56:05 -07:00
Andrew Kane
8f4aa0751c
Removed unused parameters [skip ci]
2025-09-27 15:51:32 -07:00
Andrew Kane
a2408e60fa
Revert "Added IndexTuple to HNSW elements (first step to support multiple attributes)"
...
This reverts commit 53a8734bac .
2024-10-11 14:57:57 -07:00
Andrew Kane
53a8734bac
Added IndexTuple to HNSW elements (first step to support multiple attributes)
2024-10-11 14:12:01 -07:00
Andrew Kane
961cb17d80
Added iterative search for HNSW [skip ci]
2024-10-10 18:14:39 -07:00
Andrew Kane
fa6782985a
Added HnswQuery struct for query data
2024-10-09 23:45:47 -07:00
Andrew Kane
32ab27d72a
Added HnswSupport struct for support functions
2024-10-09 23:10:26 -07:00
Andrew Kane
064db12de7
Moved procinfo initialization for inserts [skip ci]
2024-10-09 21:59:21 -07:00
Andrew Kane
a98534e5ab
DRY HNSW procinfo
2024-10-09 21:03:18 -07:00
Andrew Kane
57c05c59a2
DRY code for forming index value
2024-10-09 20:50:17 -07:00
Andrew Kane
d5f4a0e435
Fixed memory context leak in HnswUpdateNeighborsOnDisk - fixes #692
2024-10-08 12:21:26 -07:00
Andrew Kane
57248ba128
Use separate memory context for updating neighbors, which improves performance around 10% for larger vectors
2024-09-30 11:15:27 -07:00
Andrew Kane
ff6da4fcea
Moved logic to get update neighbor on disk to separate function
2024-09-30 10:30:01 -07:00
Andrew Kane
a8b4b6675a
Moved logic to get update index to separate function
2024-09-30 10:14:52 -07:00
Andrew Kane
d148b4e61b
Fixed insert logic
2024-09-30 09:59:12 -07:00
Andrew Kane
525e3b81e1
Improved HnswUpdateConnection parameters [skip ci]
2024-09-29 19:47:25 -07:00
Andrew Kane
8eb8cdf0f3
Moved insert-specific code to hnswinsert.c
2024-09-29 19:44:11 -07:00
Andrew Kane
ee43ee9b16
Use HnswLoadNeighborTids for inserts
2024-09-29 18:52:12 -07:00
Andrew Kane
5ce367e18b
Removed lc from HnswUpdateConnection [skip ci]
2024-09-29 18:18:42 -07:00
Andrew Kane
0b6214aad6
Moved HnswLoadNeighbors to hnswinsert.c [skip ci]
2024-09-29 15:49:01 -07:00
Andrew Kane
bb855e6cb4
Updated comment [skip ci]
2024-08-06 10:35:26 -07:00
Andrew Kane
06d1fa1402
Added alignment check to ensure consistency with PageIndexTupleOverwrite
2024-07-19 15:50:24 -07:00
Andrew Kane
8c5a4bfb6c
Fixed failed to add index item error with sparsevec - fixes #625
2024-07-19 13:54:36 -07:00
Andrew Kane
1fdfff7349
Restored collation for consistency [skip ci]
2024-04-25 13:46:45 -07:00
Andrew Kane
38e365ed58
Restored HnswNormValue [skip ci]
2024-04-25 13:35:17 -07:00
Andrew Kane
58ec5296b0
Reduced support functions for HNSW - #527
2024-04-25 13:21:24 -07:00
Andrew Kane
47d5b2896e
Improved support functions for HNSW - #527
2024-04-25 13:00:40 -07:00
Andrew Kane
3eef1ff5c2
Removed type-specific code from HNSW [skip ci]
2024-04-24 14:53:45 -07:00
Andrew Kane
bd409f0c6a
Moved HnswGetType call [skip ci]
2024-04-22 19:22:09 -07:00
Andrew Kane
f14c21748b
Added support function for l2_normalize [skip ci]
2024-04-22 18:36:47 -07:00
Andrew Kane
5215c28923
Moved norm check to separate function
2024-04-15 15:32:08 -07:00
Andrew Kane
abac7a3f77
Added sparsevec type
2024-04-02 14:25:09 -07:00
Andrew Kane
2c48e3edc2
Mark type-specific code
2024-03-29 14:01:48 -07:00
Andrew Kane
8e59455c3c
Removed normvec for simplicity (no difference in performance)
2024-03-27 16:33:11 -07:00
Andrew Kane
5b43aaad5a
Removed unneeded item ids
2024-01-28 23:14:52 -08:00
Heikki Linnakangas
2d092016fc
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
Heikki Linnakangas
121f53b8ff
Remove unused heapRel arguments ( #443 )
2024-01-26 12:45:10 -08:00
Heikki Linnakangas
c8be3a369b
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
Andrew Kane
2d0f162bd7
Added support for in-memory parallel index builds for HNSW
...
Co-authored-by: Heikki Linnakangas <heikki.linnakangas@iki.fi >
2024-01-22 23:19:10 -08:00
Andrew Kane
597bfdc76b
Added HnswGetNeighbors macro
2024-01-13 20:00:34 -08:00
Andrew Kane
cbf3eb4fa5
Improved HNSW build and insert code
2024-01-13 10:07:42 -08:00
Andrew Kane
cacd389f6d
Improved pattern for duplicates
2024-01-12 14:30:13 -08:00
Andrew Kane
9b73b3d1a6
Reduced memory and allocations for heap TIDs - closes #385
2024-01-03 13:41:34 -05:00
Andrew Kane
9ab10aa674
Fixed CI
2023-12-20 16:29:13 -05:00
Andrew Kane
43e0b3d9d4
Mark buffer contents as dirty when not logging
2023-12-20 16:16:25 -05:00
Andrew Kane
e88a425c9b
Reduced WAL generation for HNSW index builds - thanks @hlinnaka
2023-12-19 20:37:32 -05:00
Andrew Kane
fbb904ae2f
Use pointer for VARSIZE_ANY
2023-11-09 17:50:28 -08:00
Andrew Kane
3cf6f62900
Switched to datum for HnswElement
2023-11-09 17:35:39 -08:00
Andrew Kane
2a69e22ca4
Switched from VECTOR_SIZE to VARSIZE_ANY where possible (less vector-specific)
2023-11-09 17:16:43 -08:00
Andrew Kane
84e073888c
Removed vector-specific code from HNSW_ELEMENT_TUPLE_SIZE [skip ci]
2023-11-09 16:57:01 -08:00