Skip to content

feat: add VECTOR_FP64 (double-precision) vector support#33

Merged
s2x merged 5 commits into
mainfrom
feat/fp64-vector-support
May 10, 2026
Merged

feat: add VECTOR_FP64 (double-precision) vector support#33
s2x merged 5 commits into
mainfrom
feat/fp64-vector-support

Conversation

@s2x

@s2x s2x commented May 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Add FP64 (double-precision) vector support for schema, documents, and queries.

Changes

FFI C++ Layer (ffi/zvec_ffi.h, ffi/zvec_ffi.cc)

  • zvec_schema_add_field_vector_fp64() — add FP64 vector field to schema
  • zvec_doc_set_vector_fp64() / zvec_doc_get_vector_fp64() — FP64 doc getter/setter
  • zvec_collection_query_fp64() / zvec_collection_query_fp64_ex() — FP64 vector search
  • zvec_doc_has_vector() — now also detects std::vector<double> fields
  • zvec_doc_vector_names() / zvec_doc_field_names() — include/exclude FP64 fields

PHP Layer (src/ZVec.php)

  • New constant: ZVec::TYPE_VECTOR_FP64 = 24
  • ZVecSchema::addVectorFp64() — schema builder method
  • ZVecDoc::setVectorFp64() / getVectorFp64() — doc vector accessors
  • ZVec::queryFp64() — explicit FP64 vector query with optional extended params
  • ZVecVectorQuery::setFp64() flag — route query through FP64 path
  • ZVec::queryById() — auto-detects FP64 fields and routes correctly

Tests

  • tests/test_fp64_vectors.phpt — insert, fetch, query, filter, outputFields, HNSW, Flat, vectorNames/hasVector, ZVecVectorQuery, queryById

Closes #31

s2x added 3 commits May 10, 2026 22:29
Add FP64 vector type support for schema, documents, and queries:

- FFI layer: add schema/docer/getter/query functions for double-precision vectors
- Fix has_vector/vector_names/field_names to handle std::vector<double>
- Schema: ZVecSchema::addVectorFp64()
- Doc: setVectorFp64() / getVectorFp64()
- Query: queryFp64(), ZVecVectorQuery::setFp64() flag, queryById() FP64 support
- Test: test_fp64_vectors.phpt covering insert, fetch, query, index types

Closes #31
- ZVecSchema: addVectorFp64() method
- ZVecDoc: setVectorFp64() / getVectorFp64() methods
- ZVec: queryFp64() method
- ZVecVectorQuery: useFp64 property + setFp64() method
- ZVec::query(): route to FP64 path when ZVecVectorQuery.useFp64 is true
@s2x
s2x merged commit ae85eb7 into main May 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add VECTOR_FP64 (double-precision) vector support

1 participant