Andrew Kane
ebf7de0c16
Added comment [skip ci]
2024-01-28 21:35:53 -08:00
Andrew Kane
142a32af96
Update neighbor tuples in-place for HNSW vacuum
2024-01-28 21:27:17 -08:00
Andrew Kane
642ee1f423
Improved function names
2024-01-28 21:00:12 -08:00
Andrew Kane
270dd8189a
Update neighbor tuples in-place for HNSW index build
2024-01-28 20:53:56 -08:00
Andrew Kane
ba2776850b
Fixed Valgrind check for HNSW in-memory, parallel index builds - closes #441
2024-01-28 16:19:32 -08:00
Andrew Kane
0cc883b944
Removed checking neighbors for cached distance
2024-01-28 02:11:24 -08:00
Andrew Kane
10416b841f
Fixed uninitialized memory in scan->xs_recheck [skip ci]
2024-01-27 19:54:16 -08:00
Andrew Kane
d0f13d4e7f
Fixed possibly uninitialized memory in lists [skip ci]
2024-01-27 19:51:34 -08:00
Andrew Kane
705e71015f
Fixed uninitialized entry point level - fixes #439 and closes #440
2024-01-27 19:49:40 -08:00
Heikki Linnakangas
121f53b8ff
Remove unused heapRel arguments ( #443 )
2024-01-26 12:45:10 -08:00
Heikki Linnakangas
571697fee7
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
f7eda7bd20
DRY neighbor array size [skip ci]
2024-01-24 17:54:33 -08:00
Andrew Kane
2260e13315
Condensed code [skip ci]
2024-01-24 16:20:00 -08:00
Andrew Kane
90e0a14bda
Moved allocating neighbor array to separate function [skip ci]
2024-01-24 16:17:34 -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
Heikki Linnakangas
e5d1a6bdbb
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
f31d708c2b
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
a1b1c99ff7
Remove unused #include
...
pg_list.h has not been used in hnswbuild.c since commit cb4c770df2 .
2024-01-23 12:53:13 +02:00
Andrew Kane
083008c21e
Added validation for GUC parameters
2024-01-22 23:55:30 -08:00
Andrew Kane
a1e526ef82
Dropped support for Postgres 11
2024-01-22 23:52:54 -08:00
Andrew Kane
8ffb3718a4
Leave more space for other shared memory
2024-01-22 23:31:55 -08: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
Heikki Linnakangas
4c6928bd3c
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 Linnakangas
6fd05dd6f6
Remove unused 'scantuplesortstates' field
2024-01-22 23:08:20 -08:00
Andrew Kane
44b90be452
Made variable name consistent across functions [skip ci]
2024-01-22 19:02:33 -08:00
Andrew Kane
31572a7b28
Removed unused parameter [skip ci]
2024-01-22 19:00:45 -08:00
Andrew Kane
2427290ea9
Pass hash by reference
2024-01-22 18:34:40 -08:00
Andrew Kane
1ff9ab5133
Revert "Improved vector_in"
...
This reverts commit 4894dc5da1 .
2024-01-17 17:14:42 -08:00
Andrew Kane
4894dc5da1
Improved vector_in
2024-01-17 16:57:16 -08:00
Heikki Linnakangas
b7304a3a4a
Don't modify input string in vector_in() ( #413 )
...
Fixes issue #399
2024-01-17 10:49:04 -08:00
Andrew Kane
c7d60346d8
Improved macro [skip ci]
2024-01-13 20:02:41 -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
1881b857f9
Simplified code
2024-01-09 18:53:31 -08:00
Andrew Kane
108fb09d7b
Improved code [skip ci]
2024-01-08 17:54:49 -08:00
Andrew Kane
65d060ac86
Reverted FlushPages pattern for parallel builds
2024-01-08 10:45:31 -08:00
Andrew Kane
62ee33bb92
Improved locking code
2024-01-08 09:05:12 -08:00
Andrew Kane
520e274dde
Improved locking code
2024-01-07 22:34:41 -08:00
Andrew Kane
9e680884bd
Moved indtuples to HnswGraph
2024-01-07 22:23:49 -08:00
Andrew Kane
19a0e1b341
Moved graph to separate struct
2024-01-07 20:15:30 -08:00
Andrew Kane
c7fe1571ee
Improved code
2024-01-07 18:30:51 -08:00
Andrew Kane
cb4c770df2
Switched to slist for elements to reduce allocations and remove limit
2024-01-07 18:26:19 -08:00
Andrew Kane
85fdecd79b
Moved FlushPages before HnswEndParallel
2024-01-07 17:50:46 -08:00
Andrew Kane
6132428914
Improved number of parallel workers for HNSW index builds - closes #397
2024-01-05 19:46:08 -08:00
Andrew Kane
81d13bd40f
Improved code [skip ci]
2024-01-03 13:53:23 -05:00
Andrew Kane
8ee37b60a0
Improved memory estimate for HNSW index builds
2024-01-03 13:47:50 -05:00
Andrew Kane
9b73b3d1a6
Reduced memory and allocations for heap TIDs - closes #385
2024-01-03 13:41:34 -05:00
Andrew Kane
cae630784b
Improved BuildCallback [skip ci]
2023-12-30 20:55:29 -05:00
Andrew Kane
d87bcd2deb
Added comments [skip ci]
2023-12-30 18:29:01 -05:00