From 3b19e96ae75b317208fea1ab61157b3bbcfee704 Mon Sep 17 00:00:00 2001 From: BubbleCal Date: Thu, 13 Feb 2025 12:38:35 +0800 Subject: [PATCH] fix: panic when field id doesn't equal to field index (#2116) Signed-off-by: BubbleCal --- Cargo.lock | 8 ++++---- rust/lancedb/src/index/vector.rs | 14 +++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ed2855c..cf25d7d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3966,7 +3966,7 @@ dependencies = [ [[package]] name = "lancedb" -version = "0.16.1-beta.0" +version = "0.16.1-beta.1" dependencies = [ "arrow", "arrow-array", @@ -4050,7 +4050,7 @@ dependencies = [ [[package]] name = "lancedb-node" -version = "0.16.1-beta.0" +version = "0.16.1-beta.1" dependencies = [ "arrow-array", "arrow-ipc", @@ -4075,7 +4075,7 @@ dependencies = [ [[package]] name = "lancedb-nodejs" -version = "0.16.1-beta.0" +version = "0.16.1-beta.1" dependencies = [ "arrow-array", "arrow-ipc", @@ -4093,7 +4093,7 @@ dependencies = [ [[package]] name = "lancedb-python" -version = "0.19.1-beta.0" +version = "0.19.1-beta.1" dependencies = [ "arrow", "env_logger", diff --git a/rust/lancedb/src/index/vector.rs b/rust/lancedb/src/index/vector.rs index b5e5c710..04d6a489 100644 --- a/rust/lancedb/src/index/vector.rs +++ b/rust/lancedb/src/index/vector.rs @@ -23,7 +23,19 @@ impl VectorIndex { let fields = index .fields .iter() - .map(|i| manifest.schema.fields[*i as usize].name.clone()) + .map(|field_id| { + manifest + .schema + .field_by_id(*field_id) + .unwrap_or_else(|| { + panic!( + "field {field_id} of index {} must exist in schema", + index.name + ) + }) + .name + .clone() + }) .collect(); Self { columns: fields,