Commit Graph

30 Commits

Author SHA1 Message Date
feihongxu0824 a9008b0fd2
fix: nullable scalar field filter leaks null documents without inverted index (#410)
When a nullable scalar field has no inverted index, the forward filter path
fails to handle null values from Arrow's filter evaluation:

1. get_forward_bit(): BooleanArray::operator[] returns nullopt for null entries,
   which is_filtered() treats as "no filter" (not filtered), letting null docs
   through. Fix: use value_or(false) to treat null as "not matched".

2. is_matched_by_forward_filter(): reads BooleanScalar.value without checking
   is_valid, which is UB for null scalars. Fix: check is_valid first.

Closes #409

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-18 20:25:06 +08:00
Cuiys 42958caef5
feat(test): enable parallel tests (#384)
- Set unique WORKING_DIRECTORY per test binary via cc_test()/cuda_test() to prevent filesystem path conflicts when running tests in parallel. Each test runs in ${CMAKE_BINARY_DIR}/test_tmp/${test_name}/.

- Enable parallel ctest execution in the unittest target with ProcessorCount-based --parallel flag (defaults to NPROC - 1).

- Set TEST_BINARY_DIR environment variable for crash recovery tests so they can locate helper binaries from isolated working directories.

- Update LocateDataGenerator() and LocateOptimizeGenerator() to search TEST_BINARY_DIR and TEST_BINARY_DIR/bin for helper executables.
2026-05-12 23:14:17 +08:00
Jalin Wang 1d4ae0b1b5
refactor: support UTF-8 file paths via std::filesystem (#359)
Rewrite file/path handling to use std::filesystem and UTF-8-safe helpers.
Switch Windows file open/create paths to wide-char APIs, replace manual
separator concatenation with PathJoin, and enable RocksDB UTF-8 filenames.

Also add UTF-8 path coverage for file IO, version manager recovery, and
collection open/flush/reopen flows.
2026-05-08 17:44:22 +08:00
Qinren Zhou 68a497efdb
fix: sparse vector indices should be ordered (#382) 2026-05-07 16:40:49 +08:00
ZeFeng Yin 005680522b
feat: merge vector arrow buffer (#320) 2026-04-29 19:24:50 +08:00
kgeg401 1e25294c07
feat(ci): integrate clang-tidy for changed C/C++ files (#116)
* feat(ci): add clang-tidy checks for changed cpp files

* fix(ci): correct clang-tidy workflow heredoc indentation

* test: stabilize fp16 euclidean matrix comparison

* test: fix fp16 matrix CI and clang-tidy warnings

* ci: scope clang-tidy PR and filter compile-db files

* check nullptr only

* fix nullptr

* fix: format

* chore: ignore c

* fix: tests files

* fix: workflow

* fix: specify clang-tidy version

* fix: filter regex

* fix: more files

* fix: update version

* add thirdparty cache

* add pipeline dependency

* fix clang-tidy trigger

---------

Co-authored-by: kgeg401 <kgeg401@users.noreply.github.com>
Co-authored-by: jiliang.ljl <jiliang.ljl@alibaba-inc.com>
2026-04-20 20:14:21 +08:00
Qinren Zhou c17bd8876e
fix: validate query_params type (#351) 2026-04-20 10:54:06 +08:00
Qinren Zhou f602ed30ce
feat: enlarge topK limit (#348) 2026-04-17 17:51:07 +08:00
Jalin Wang 95d092e9b3
fix: relax collection path restriction (#340) 2026-04-16 15:26:15 +08:00
feihongxu0824 6737810190
ci: refact android ci (#330) 2026-04-15 15:37:51 +08:00
Qinren Zhou 044a377eee
fix: crash recovery ut (#336) 2026-04-14 23:35:51 +08:00
feihongxu0824 30a20e14b0
feat: add iOS build support (#321)
* support ios build

* fix: ci

* fix: update build_ios.sh

* fix: pr

* fix: cmake minimum version

* fix: cmake minimum version

* fix: cmake minimum version in ci

* fix: add all test in ci

* fix: ci
2026-04-09 16:14:26 +08:00
Jalin Wang 8182cfff93
feat: windows support (#216)
Preliminary support for Windows with remaining TODOs
2026-03-30 20:47:34 +08:00
Qinren Zhou ae345ad070
fix: recovery from crash during optimization (#246) 2026-03-24 10:53:16 +08:00
egolearner e5ba11b6fe
feat: add hnsw-rabitq support (#69)
* feat: add hnsw-rabitq

* undefine transform

* support config rotator type

* support sample_count

* fix ut

* refactor: update interface

* refactor: update interface

* update rabitq index params

* fix interface update

* fix searcher test

* fix streamer test

* streamer support bf and add more ut

* rm env check

* add collection ut

* add schema check

* add rabitq query param binding

* add integration test

* fix local_builder

* cleanup dist calculator

* add RaBitQ-Library submodule

* cleanup rabitq converter/reformer

* add files

* disable build on mac

* disable Feature_Optimize_HNSW_RABITQ

* disable python/tests/test_collection_hnsw_rabitq.py:13

* check avx2/avx512

* fix refine

* fix mac ci

* add dimension check

* fix mac ci

* fix ci

* add missing lib

* fix centroids selection for Cosine/InnerProduct

* rename hnsw-rabitq to hnsw_rabitq

* address comments

* fix compile

* fix rabitqlib name

* fix mac compile

* check avx2/avx512 support

* runtime check again compile-time

* check AUTO_DETECT_ARCH

* rm debug log

* fix

* rabitq use avx2 by default

* add missing file

* fix search_bf/group_by dist

* address comments

* fix typo

* address comments

* rabitq support disable id_map

* address comments
2026-03-19 17:21:42 +08:00
ZeFeng Yin 432de52c5f
[enhance] buffer storage (#83) 2026-03-19 15:24:46 +08:00
Qinren Zhou 3c1241f7c6
feat: enlarge indice size limit for sparse vectors (#229) 2026-03-16 17:12:24 +08:00
Qinren Zhou 9314cb14a6
fix: use per-block filter instead of per-segment filter during query (#223)
* fix: id mismatch

* fix: remove debug string

* fix: use protected

* chore(comment): add comments

* feat: more ut

* Update vector_recall_test.cc

* fix: resolve comments
2026-03-16 10:55:51 +08:00
Qinren Zhou 27c1248b9f
fix: compilation warning in ut (#217) 2026-03-12 17:35:26 +08:00
Qinren Zhou 331933c75a
fix: clean up crash residue (#208) 2026-03-11 15:55:13 +08:00
feihongxu0824 fb0b900a80
fix(build): replace CMAKE_SOURCE_DIR with PROJECT_ROOT_DIR for subproject builds (#195) 2026-03-04 20:01:52 +08:00
feihongxu0824 24d877da5e
fix: Replace VLAs with std::vector for MSVC compatibility and stack safety (#190) 2026-03-03 10:07:21 +08:00
lichen2015 e7ad7cc31e
fix: combined indexer should use key instead of index (#87)
Co-authored-by: yinzefeng.yzf <yinzefeng.yzf@alibaba-inc.com>
2026-02-12 10:38:05 +08:00
lichen2015 fe90f70a3b
fix: delete_by_filter should use g_doc_id (#84) 2026-02-09 17:40:51 +08:00
Qinren Zhou 0b9bd34354
minor: subsequent initialization should fail silently (#79) 2026-02-06 21:16:08 +08:00
lichen2015 f1349cc91a
fix: remove unnecessary column_name param from the AddColumn API (#59) 2026-02-04 14:44:13 +08:00
feihongxu0824 0ebf5621a6
feat: support core cpp sdk (#30)
* support core cpp sdk

* fix

* fix

* fix

* fix cr
2026-01-26 20:01:44 +08:00
feihongxu0824 e957442355
feat: refact cpp sdk (#27)
* refact cpp sdk

---------

Co-authored-by: zhouqinren.zqr <zhouqinren.zqr@alibaba-inc.com>
2026-01-21 20:05:42 +08:00
lichen2015 08d680bd4f
fix: fix and refact segment fetch perf (#26)
* fix and refact fetch perf

* change git user name
2026-01-19 13:43:30 +08:00
sanyi 6524fabd80 Initial commit 2025-12-30 11:02:17 +08:00