Skip to content

Vector rows: read the record from the row when the engine flattens it (ArcadeDB #10898) - #129

Merged
tae898 merged 1 commit into
mainfrom
fix/vector-rows-flattened
Oct 28, 2026
Merged

tae898 merged 1 commit into
mainfrom
fix/vector-rows-flattened

Conversation

@tae898

@tae898 tae898 commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

Closes #128

ArcadeData/arcadedb#10900 (fixing #10898, in 26.11.1) makes a vector row list its record's properties once, on the row itself, and stop enumerating record. Our row dicts therefore have no record key.

File Change
src/arcadedb/_native/schema_objects.py _run_search uses the nested record when present, else the row itself without distance, so native find_nearest keeps returning records on both engine generations
tests/test_vector.py test_lsm_vector_search_approximate_persistence accepts either shape and now asserts @rid and the embedding of the record, not only that a key exists

The JVM find_nearest path calls the Java index API and is unaffected. examples/12_vector_search.py already reads the id from the row before trying record. This unblocks #123, #125 and #127, whose test legs all fail on this one test.

Checks run: compile and pre-commit (black, isort). The fix is proven by this PR's CI on the current snapshot.

🤖 Generated with Claude Code

…tens it (ArcadeDB #10898)

ArcadeDB 26.11.1 (#10900) lists a vector row's record properties once, on the row, and no longer
enumerates "record". Native _run_search falls back to the row (minus distance) when "record" is
absent, so find_nearest keeps returning records; the approximate-persistence test accepts both
engine shapes and now also checks @Rid and the embedding.

Closes #128

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit 37205b9 into main Oct 28, 2026
36 checks passed
@tae898
tae898 deleted the fix/vector-rows-flattened branch October 28, 2026 23:52
tae898 added a commit that referenced this pull request Oct 29, 2026
…t nearest embedding (#130)

#129 added `record.get("embedding") == [1.0, 0.0, 0.0]`; PQ search is approximate, and a Windows
leg on #123 returned [0.01, 0.1, 0.1]. The test now checks the row is a record with an embedding.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.

Vector rows no longer carry a record key (ArcadeDB #10898): one test fails everywhere, native find_nearest would return None records

1 participant