mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-02 02:31:16 +08:00
Increased max dimensions for vector from 1024 to 16000 and increased max dimensions for index from 1024 to 2000
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
- Changed text representation for vector elements to match `real`
|
||||
- Changed storage for vector from `plain` to `extended`
|
||||
- Increased max dimensions for vector from 1024 to 16000
|
||||
- Increased max dimensions for index from 1024 to 2000
|
||||
- Improved accuracy of text parsing for certain inputs
|
||||
- Added `avg` aggregate for vector
|
||||
- Added experimental support for Windows
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "portability/instr_time.h"
|
||||
#endif
|
||||
|
||||
#define IVFFLAT_MAX_DIM VECTOR_MAX_DIM
|
||||
#define IVFFLAT_MAX_DIM 2000
|
||||
|
||||
/* Support functions */
|
||||
#define IVFFLAT_DISTANCE_PROC 1
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
#define VECTOR_MAX_DIM 1024
|
||||
#define VECTOR_MAX_DIM 16000
|
||||
|
||||
#define VECTOR_SIZE(_dim) (offsetof(Vector, x) + sizeof(float)*(_dim))
|
||||
#define DatumGetVector(x) ((Vector *) PG_DETOAST_DATUM(x))
|
||||
|
||||
@@ -38,8 +38,8 @@ SELECT '[1,2,3]'::vector::real[];
|
||||
{1,2,3}
|
||||
(1 row)
|
||||
|
||||
SELECT array_agg(n)::vector FROM generate_series(1, 1025) n;
|
||||
ERROR: vector cannot have more than 1024 dimensions
|
||||
SELECT array_agg(n)::vector FROM generate_series(1, 16001) n;
|
||||
ERROR: vector cannot have more than 16000 dimensions
|
||||
-- ensure no error
|
||||
SELECT ARRAY[1,2,3] = ARRAY[1,2,3];
|
||||
?column?
|
||||
|
||||
@@ -8,7 +8,7 @@ SELECT '{Infinity}'::real[]::vector;
|
||||
SELECT '{-Infinity}'::real[]::vector;
|
||||
SELECT '{}'::real[]::vector;
|
||||
SELECT '[1,2,3]'::vector::real[];
|
||||
SELECT array_agg(n)::vector FROM generate_series(1, 1025) n;
|
||||
SELECT array_agg(n)::vector FROM generate_series(1, 16001) n;
|
||||
|
||||
-- ensure no error
|
||||
SELECT ARRAY[1,2,3] = ARRAY[1,2,3];
|
||||
|
||||
@@ -56,6 +56,9 @@ if ($dim > 32) {
|
||||
# TODO use wal_keep_segments for Postgres < 13
|
||||
$node_primary->append_conf('postgresql.conf', qq(wal_keep_size = 1GB));
|
||||
}
|
||||
if ($dim > 1500) {
|
||||
$node_primary->append_conf('postgresql.conf', qq(maintenance_work_mem = 128MB));
|
||||
}
|
||||
$node_primary->start;
|
||||
my $backup_name = 'my_backup';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user