@@ -327,7 +327,7 @@ CREATE FUNCTION jaccard_distance(bit, bit) RETURNS float8
327327CREATE FUNCTION bit_ivfflat_support (internal) RETURNS internal
328328 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
329329
330- CREATE FUNCTION bit_hnsw_support (internal) RETURNS internal
330+ CREATE FUNCTION bit_hnsw_max_dims (internal) RETURNS internal
331331 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
332332
333333-- bit operators
@@ -355,13 +355,13 @@ CREATE OPERATOR CLASS bit_hamming_ops
355355 FOR TYPE bit USING hnsw AS
356356 OPERATOR 1 < ~> (bit , bit ) FOR ORDER BY float_ops,
357357 FUNCTION 1 hamming_distance(bit , bit ),
358- FUNCTION 4 bit_hnsw_support (internal);
358+ FUNCTION 4 bit_hnsw_max_dims (internal);
359359
360360CREATE OPERATOR CLASS bit_jaccard_ops
361361 FOR TYPE bit USING hnsw AS
362362 OPERATOR 1 < %> (bit , bit ) FOR ORDER BY float_ops,
363363 FUNCTION 1 jaccard_distance(bit , bit ),
364- FUNCTION 4 bit_hnsw_support (internal);
364+ FUNCTION 4 bit_hnsw_max_dims (internal);
365365
366366-- halfvec type
367367
@@ -473,7 +473,7 @@ CREATE FUNCTION halfvec_avg(double precision[]) RETURNS halfvec
473473CREATE FUNCTION halfvec_ivfflat_support (internal) RETURNS internal
474474 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
475475
476- CREATE FUNCTION halfvec_hnsw_support (internal) RETURNS internal
476+ CREATE FUNCTION halfvec_hnsw_max_dims (internal) RETURNS internal
477477 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
478478
479479-- halfvec aggregates
@@ -663,27 +663,27 @@ CREATE OPERATOR CLASS halfvec_l2_ops
663663 FOR TYPE halfvec USING hnsw AS
664664 OPERATOR 1 < - > (halfvec, halfvec) FOR ORDER BY float_ops,
665665 FUNCTION 1 halfvec_l2_squared_distance(halfvec, halfvec),
666- FUNCTION 4 halfvec_hnsw_support (internal);
666+ FUNCTION 4 halfvec_hnsw_max_dims (internal);
667667
668668CREATE OPERATOR CLASS halfvec_ip_ops
669669 FOR TYPE halfvec USING hnsw AS
670670 OPERATOR 1 < # > (halfvec, halfvec) FOR ORDER BY float_ops,
671671 FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec),
672- FUNCTION 4 halfvec_hnsw_support (internal);
672+ FUNCTION 4 halfvec_hnsw_max_dims (internal);
673673
674674CREATE OPERATOR CLASS halfvec_cosine_ops
675675 FOR TYPE halfvec USING hnsw AS
676676 OPERATOR 1 <=> (halfvec, halfvec) FOR ORDER BY float_ops,
677677 FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec),
678678 FUNCTION 2 l2_norm(halfvec),
679679 FUNCTION 3 l2_normalize(halfvec),
680- FUNCTION 4 halfvec_hnsw_support (internal);
680+ FUNCTION 4 halfvec_hnsw_max_dims (internal);
681681
682682CREATE OPERATOR CLASS halfvec_l1_ops
683683 FOR TYPE halfvec USING hnsw AS
684684 OPERATOR 1 < + > (halfvec, halfvec) FOR ORDER BY float_ops,
685685 FUNCTION 1 l1_distance(halfvec, halfvec),
686- FUNCTION 4 halfvec_hnsw_support (internal);
686+ FUNCTION 4 halfvec_hnsw_max_dims (internal);
687687
688688-- - sparsevec type
689689
@@ -779,7 +779,10 @@ CREATE FUNCTION halfvec_to_sparsevec(halfvec, integer, boolean) RETURNS sparseve
779779CREATE FUNCTION sparsevec_to_halfvec (sparsevec, integer , boolean ) RETURNS halfvec
780780 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
781781
782- CREATE FUNCTION sparsevec_hnsw_support (internal) RETURNS internal
782+ CREATE FUNCTION sparsevec_hnsw_max_dims (internal) RETURNS internal
783+ AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
784+
785+ CREATE FUNCTION sparsevec_hnsw_check_value (internal) RETURNS internal
783786 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
784787
785788-- sparsevec casts
@@ -872,24 +875,28 @@ CREATE OPERATOR CLASS sparsevec_l2_ops
872875 FOR TYPE sparsevec USING hnsw AS
873876 OPERATOR 1 < - > (sparsevec, sparsevec) FOR ORDER BY float_ops,
874877 FUNCTION 1 sparsevec_l2_squared_distance(sparsevec, sparsevec),
875- FUNCTION 4 sparsevec_hnsw_support(internal);
878+ FUNCTION 4 sparsevec_hnsw_max_dims(internal),
879+ FUNCTION 5 sparsevec_hnsw_check_value(internal);
876880
877881CREATE OPERATOR CLASS sparsevec_ip_ops
878882 FOR TYPE sparsevec USING hnsw AS
879883 OPERATOR 1 < # > (sparsevec, sparsevec) FOR ORDER BY float_ops,
880884 FUNCTION 1 sparsevec_negative_inner_product(sparsevec, sparsevec),
881- FUNCTION 4 sparsevec_hnsw_support(internal);
885+ FUNCTION 4 sparsevec_hnsw_max_dims(internal),
886+ FUNCTION 5 sparsevec_hnsw_check_value(internal);
882887
883888CREATE OPERATOR CLASS sparsevec_cosine_ops
884889 FOR TYPE sparsevec USING hnsw AS
885890 OPERATOR 1 <=> (sparsevec, sparsevec) FOR ORDER BY float_ops,
886891 FUNCTION 1 sparsevec_negative_inner_product(sparsevec, sparsevec),
887892 FUNCTION 2 l2_norm(sparsevec),
888893 FUNCTION 3 l2_normalize(sparsevec),
889- FUNCTION 4 sparsevec_hnsw_support(internal);
894+ FUNCTION 4 sparsevec_hnsw_max_dims(internal),
895+ FUNCTION 5 sparsevec_hnsw_check_value(internal);
890896
891897CREATE OPERATOR CLASS sparsevec_l1_ops
892898 FOR TYPE sparsevec USING hnsw AS
893899 OPERATOR 1 < + > (sparsevec, sparsevec) FOR ORDER BY float_ops,
894900 FUNCTION 1 l1_distance(sparsevec, sparsevec),
895- FUNCTION 4 sparsevec_hnsw_support(internal);
901+ FUNCTION 4 sparsevec_hnsw_max_dims(internal),
902+ FUNCTION 5 sparsevec_hnsw_check_value(internal);
0 commit comments