Commit Graph

638 Commits

Author SHA1 Message Date
Andrew Kane
f26bd7054d Moved varbit check [skip ci] 2024-04-23 14:22:05 -07:00
Andrew Kane
4305e723cc Fixed arguments [skip ci] 2024-04-23 14:06:28 -07:00
Andrew Kane
571a277af9 Removed type-specific code from HNSW [skip ci] 2024-04-23 13:54:04 -07:00
Andrew Kane
0da6213a60 Moved type lookup to support functions - #527 2024-04-23 13:02:47 -07:00
Heikki Linnakangas
d1b83991af Forbid zero values in sparsevec's binary input function (#528)
The text input function simply left out any zero values, but the
binary input function did not. That's problematic because you end up
with an "unnormalized" sparse vector, which behaves in weird ways.  At
least sparsevec_cmp_internal() expects both inputs to not contain
zeros.

The binary send function never produces such zero values, but an
external tool could. Or to test, you can use COPY TO (FORMAT BINARY),
use a hex editor to edit one of the values to be zero, and copy it
back with COPY FROM (FORMAT BINARY).
2024-04-23 09:13:53 -07:00
Andrew Kane
bd409f0c6a Moved HnswGetType call [skip ci] 2024-04-22 19:22:09 -07:00
Andrew Kane
1994fd003a Removed unneeded headers [skip ci] 2024-04-22 19:10:50 -07:00
Andrew Kane
bd62561a19 Added support function for l2_normalize to ivfflat 2024-04-22 19:06:06 -07:00
Andrew Kane
f14c21748b Added support function for l2_normalize [skip ci] 2024-04-22 18:36:47 -07:00
Andrew Kane
2b77005610 Removed type-specific code from ivfscan 2024-04-22 18:12:18 -07:00
Andrew Kane
ab71c12a28 Added comments on dispatching [skip ci] 2024-04-22 16:18:57 -07:00
Andrew Kane
4e6aa2f0c1 Added DISABLE_DISPATCH option [skip ci] 2024-04-22 15:43:07 -07:00
Andrew Kane
40e86251c3 Added VECTOR_TARGET_CLONES to VectorL1Distance [skip ci] 2024-04-22 15:15:57 -07:00
Andrew Kane
0c9ae4b187 Added CPU dispatching for L1 distance for halfvec 2024-04-22 15:02:17 -07:00
Andrew Kane
f9941c2992 Moved L1 distance to halfutils [skip ci] 2024-04-22 13:19:42 -07:00
Andrew Kane
ed4837cc4f Renamed bit files 2024-04-22 10:22:18 -07:00
Andrew Kane
3df5655b30 Removed unneeded headers [skip ci] 2024-04-19 18:09:38 -07:00
Andrew Kane
fb77671d05 Added casts between halfvec and sparsevec 2024-04-19 18:03:07 -07:00
Andrew Kane
fd4fbd238c Updated sparsevec input to support indices in any order [skip ci] 2024-04-19 16:54:19 -07:00
Andrew Kane
4e093f95be Improved consistency of CPU dispatching code 2024-04-18 14:13:12 -07:00
Andrew Kane
fb3c964ac2 Improved performance of bit distance functions - #519
Co-authored-by: Nathan Bossart <nathan@postgresql.org>
Co-authored-by: "Jonathan S. Katz" <jkatz@users.noreply.github.com>
2024-04-18 13:45:00 -07:00
Andrew Kane
0b938f8328 Improved halfvec dispatching code [skip ci] 2024-04-17 20:22:14 -07:00
Andrew Kane
6153e173f3 Updated comments [skip ci] 2024-04-17 18:57:59 -07:00
Andrew Kane
eb48b9eec4 Added comments [skip ci] 2024-04-17 18:53:58 -07:00
Andrew Kane
fb6af03361 Fixed CPU dispatching check for halfvec distance functions 2024-04-17 18:27:27 -07:00
Andrew Kane
e2d8907180 Added todo [skip ci] 2024-04-17 17:25:53 -07:00
Andrew Kane
09ea1b0d5c Improved target_clones logic [skip ci] 2024-04-17 15:05:47 -07:00
Andrew Kane
8d68f88507 Improved target_clones logic [skip ci] 2024-04-17 15:05:19 -07:00
Andrew Kane
8b33a359ce Updated VECTOR_ARRAY_SIZE for alignment [skip ci] 2024-04-17 00:55:28 -07:00
Andrew Kane
576a37e975 Ensure items are always aligned 2024-04-17 00:17:40 -07:00
Andrew Kane
cf570810eb Fixed alignment for bit in IVFFlat - fixes #520 2024-04-17 00:05:31 -07:00
Andrew Kane
4e2b76e627 Skip duplicate center check for bit [skip ci] 2024-04-16 17:20:48 -07:00
Andrew Kane
04af15c9d6 Added support for bit to IVFFlat 2024-04-16 17:12:27 -07:00
Andrew Kane
588873e145 Added comment [skip ci] 2024-04-16 11:38:59 -07:00
Andrew Kane
7adb8a6e0e Fixed sparsevec comparison function and added test for consistency 2024-04-16 11:36:45 -07:00
Andrew Kane
5b0eff9dae Updated comment [skip ci] 2024-04-15 15:53:07 -07:00
Andrew Kane
5cf75c0b83 Added comment [skip ci] 2024-04-15 15:50:59 -07:00
Andrew Kane
5215c28923 Moved norm check to separate function 2024-04-15 15:32:08 -07:00
Andrew Kane
bf3ef4de56 Improved safety check [skip ci] 2024-04-15 14:55:32 -07:00
Andrew Kane
2c82f05503 Improved safety check [skip ci] 2024-04-15 14:51:24 -07:00
Andrew Kane
f655166639 Improved safety check [skip ci] 2024-04-15 14:50:28 -07:00
Andrew Kane
7580e99205 Improved safety check [skip ci] 2024-04-15 14:49:40 -07:00
Andrew Kane
a415420a1c Updated l2_normalize to remove zeros for sparsevec 2024-04-15 14:42:53 -07:00
Andrew Kane
cadfc72b75 Fixed compilation on Windows 2024-04-15 14:14:25 -07:00
Andrew Kane
ceeba6a134 Added todo [skip ci] 2024-04-15 14:11:17 -07:00
Andrew Kane
127ecdd650 Added l2_normalize function for sparsevec 2024-04-15 14:05:18 -07:00
Andrew Kane
10dacfd991 Updated indexes to use l2_normalize functions 2024-04-15 13:56:50 -07:00
Andrew Kane
312da84536 Added CPU dispatching for vector cosine distance [skip ci] 2024-04-15 10:47:06 -07:00
Andrew Kane
2913c9f0b6 Moved vector L1 distance to separate function [skip ci] 2024-04-15 10:35:16 -07:00
Andrew Kane
fac88d0fd4 Moved vector cosine similarity to separate function [skip ci] 2024-04-15 10:33:23 -07:00