You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
vecstore: use span.Builder in implementation of GetFullVectors
Previously, the vector store stored the table and index descriptors for
the vector index it was associated with. Since the store itself did not
have a lease on this descriptor and would outlive the transaction that
caused the store to be created, we could end up using a stale table
descriptor for vector operations.
This patch moves table information into the vector transaction in the
form of an index fetch spec created by a leaseholder on the table. The
vecindex transaction is expected to have a lifetime shorter than the
lease held by the caller, so the descriptors that generate this fetch
spec will not go stale.
Addtionally, we generate the needed family IDs for a span.Splitter(), to
avoid reading families that we don't require. This is also included with
the fetch spec.
This patch also:
* Introduces a proto buffer to hold the index fetch spec and family IDs.
* Introduces a function to initialize this proto buffer.
* Introduces a testing API into the vecstore so that tests can provide
fake family descriptors to vecstore.
Fixes: #146046
Release note (bug fix): A bug where using column families on tables
with vector indexes would cause the index to fail to return results has
been fixed.
0 commit comments