diff --git a/vortex-array/src/scalar_fn/fns/between/mod.rs b/vortex-array/src/scalar_fn/fns/between/mod.rs index 1c3dd0eef4f..0e0d9949195 100644 --- a/vortex-array/src/scalar_fn/fns/between/mod.rs +++ b/vortex-array/src/scalar_fn/fns/between/mod.rs @@ -13,6 +13,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::Canonical; @@ -176,7 +177,8 @@ impl ScalarFnVTable for Between { type Options = BetweenOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.between") + static ID: CachedId = CachedId::new("vortex.between"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/binary/mod.rs b/vortex-array/src/scalar_fn/fns/binary/mod.rs index 374d34d1ec9..1c860cb75b5 100644 --- a/vortex-array/src/scalar_fn/fns/binary/mod.rs +++ b/vortex-array/src/scalar_fn/fns/binary/mod.rs @@ -12,6 +12,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -52,7 +53,8 @@ impl ScalarFnVTable for Binary { type Options = Operator; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.binary") + static ID: CachedId = CachedId::new("vortex.binary"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/case_when.rs b/vortex-array/src/scalar_fn/fns/case_when.rs index e018afee35a..0b14a3eafb7 100644 --- a/vortex-array/src/scalar_fn/fns/case_when.rs +++ b/vortex-array/src/scalar_fn/fns/case_when.rs @@ -22,6 +22,7 @@ use vortex_mask::AllOr; use vortex_mask::Mask; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -79,7 +80,8 @@ impl ScalarFnVTable for CaseWhen { type Options = CaseWhenOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.case_when") + static ID: CachedId = CachedId::new("vortex.case_when"); + *ID } fn serialize(&self, _options: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/cast/mod.rs b/vortex-array/src/scalar_fn/fns/cast/mod.rs index a007788acb2..abc59af2c9a 100644 --- a/vortex-array/src/scalar_fn/fns/cast/mod.rs +++ b/vortex-array/src/scalar_fn/fns/cast/mod.rs @@ -12,6 +12,7 @@ use vortex_error::vortex_bail; use vortex_error::vortex_err; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::AnyColumnar; use crate::ArrayRef; @@ -53,7 +54,8 @@ impl ScalarFnVTable for Cast { type Options = DType; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.cast") + static ID: CachedId = CachedId::new("vortex.cast"); + *ID } fn serialize(&self, dtype: &DType) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/dynamic.rs b/vortex-array/src/scalar_fn/fns/dynamic.rs index e25117b36bc..7efebf79220 100644 --- a/vortex-array/src/scalar_fn/fns/dynamic.rs +++ b/vortex-array/src/scalar_fn/fns/dynamic.rs @@ -12,6 +12,7 @@ use parking_lot::Mutex; use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_bail; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -46,7 +47,8 @@ impl ScalarFnVTable for DynamicComparison { type Options = DynamicComparisonExpr; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.dynamic") + static ID: CachedId = CachedId::new("vortex.dynamic"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-array/src/scalar_fn/fns/fill_null/mod.rs b/vortex-array/src/scalar_fn/fns/fill_null/mod.rs index bde1694fdb5..b2d07b41255 100644 --- a/vortex-array/src/scalar_fn/fns/fill_null/mod.rs +++ b/vortex-array/src/scalar_fn/fns/fill_null/mod.rs @@ -9,6 +9,7 @@ use vortex_error::vortex_bail; use vortex_error::vortex_ensure; use vortex_error::vortex_err; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::AnyColumnar; use crate::ArrayRef; @@ -37,7 +38,8 @@ impl ScalarFnVTable for FillNull { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.fill_null") + static ID: CachedId = CachedId::new("vortex.fill_null"); + *ID } fn serialize(&self, _options: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/get_item.rs b/vortex-array/src/scalar_fn/fns/get_item.rs index 3f41e9b69c8..de7e45ca9b0 100644 --- a/vortex-array/src/scalar_fn/fns/get_item.rs +++ b/vortex-array/src/scalar_fn/fns/get_item.rs @@ -8,6 +8,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_err; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -44,7 +45,8 @@ impl ScalarFnVTable for GetItem { type Options = FieldName; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.get_item") + static ID: CachedId = CachedId::new("vortex.get_item"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/is_not_null.rs b/vortex-array/src/scalar_fn/fns/is_not_null.rs index 26e474cc447..589333304e2 100644 --- a/vortex-array/src/scalar_fn/fns/is_not_null.rs +++ b/vortex-array/src/scalar_fn/fns/is_not_null.rs @@ -6,6 +6,7 @@ use std::fmt::Formatter; use vortex_array::scalar_fn::internal::row_count::RowCount; use vortex_error::VortexResult; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -34,7 +35,8 @@ impl ScalarFnVTable for IsNotNull { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.is_not_null") + static ID: CachedId = CachedId::new("vortex.is_not_null"); + *ID } fn serialize(&self, _instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/is_null.rs b/vortex-array/src/scalar_fn/fns/is_null.rs index ee0aab280ee..7315fbe8c07 100644 --- a/vortex-array/src/scalar_fn/fns/is_null.rs +++ b/vortex-array/src/scalar_fn/fns/is_null.rs @@ -3,6 +3,7 @@ use vortex_error::VortexResult; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -32,7 +33,8 @@ impl ScalarFnVTable for IsNull { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.is_null") + static ID: CachedId = CachedId::new("vortex.is_null"); + *ID } fn serialize(&self, _instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/like/mod.rs b/vortex-array/src/scalar_fn/fns/like/mod.rs index a99854d7e89..20699efb1ff 100644 --- a/vortex-array/src/scalar_fn/fns/like/mod.rs +++ b/vortex-array/src/scalar_fn/fns/like/mod.rs @@ -13,6 +13,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -63,7 +64,8 @@ impl ScalarFnVTable for Like { type Options = LikeOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.like") + static ID: CachedId = CachedId::new("vortex.like"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs index afcd6136d70..978a1da1caf 100644 --- a/vortex-array/src/scalar_fn/fns/list_contains/mod.rs +++ b/vortex-array/src/scalar_fn/fns/list_contains/mod.rs @@ -14,6 +14,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_error::vortex_err; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use vortex_utils::iter::ReduceBalancedIterExt; use crate::ArrayRef; @@ -61,7 +62,8 @@ impl ScalarFnVTable for ListContains { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.list.contains") + static ID: CachedId = CachedId::new("vortex.list.contains"); + *ID } fn serialize(&self, _instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/literal.rs b/vortex-array/src/scalar_fn/fns/literal.rs index 97d8089a5bf..16b112e5a78 100644 --- a/vortex-array/src/scalar_fn/fns/literal.rs +++ b/vortex-array/src/scalar_fn/fns/literal.rs @@ -8,6 +8,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_err; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -38,7 +39,8 @@ impl ScalarFnVTable for Literal { type Options = Scalar; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.literal") + static ID: CachedId = CachedId::new("vortex.literal"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/mask/mod.rs b/vortex-array/src/scalar_fn/fns/mask/mod.rs index 259f4b34e18..4dd55948ec8 100644 --- a/vortex-array/src/scalar_fn/fns/mask/mod.rs +++ b/vortex-array/src/scalar_fn/fns/mask/mod.rs @@ -8,6 +8,7 @@ use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_ensure; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::Canonical; @@ -44,7 +45,8 @@ impl ScalarFnVTable for Mask { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.mask") + static ID: CachedId = CachedId::new("vortex.mask"); + *ID } fn serialize(&self, _options: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/merge.rs b/vortex-array/src/scalar_fn/fns/merge.rs index 608ba69a255..390d3a2213e 100644 --- a/vortex-array/src/scalar_fn/fns/merge.rs +++ b/vortex-array/src/scalar_fn/fns/merge.rs @@ -11,6 +11,7 @@ use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use vortex_utils::aliases::hash_set::HashSet; use crate::ArrayRef; @@ -51,7 +52,8 @@ impl ScalarFnVTable for Merge { type Options = DuplicateHandling; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.merge") + static ID: CachedId = CachedId::new("vortex.merge"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/not/mod.rs b/vortex-array/src/scalar_fn/fns/not/mod.rs index 4e82d75e790..156a6568df7 100644 --- a/vortex-array/src/scalar_fn/fns/not/mod.rs +++ b/vortex-array/src/scalar_fn/fns/not/mod.rs @@ -7,6 +7,7 @@ pub use kernel::*; use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -33,7 +34,8 @@ impl ScalarFnVTable for Not { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.not") + static ID: CachedId = CachedId::new("vortex.not"); + *ID } fn serialize(&self, _options: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/pack.rs b/vortex-array/src/scalar_fn/fns/pack.rs index 0a24f721064..2a87bf069bc 100644 --- a/vortex-array/src/scalar_fn/fns/pack.rs +++ b/vortex-array/src/scalar_fn/fns/pack.rs @@ -11,6 +11,7 @@ use prost::Message; use vortex_error::VortexResult; use vortex_proto::expr as pb; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -55,7 +56,8 @@ impl ScalarFnVTable for Pack { type Options = PackOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.pack") + static ID: CachedId = CachedId::new("vortex.pack"); + *ID } fn serialize(&self, instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/root.rs b/vortex-array/src/scalar_fn/fns/root.rs index 99bb6fecf6e..87b8b62ccf4 100644 --- a/vortex-array/src/scalar_fn/fns/root.rs +++ b/vortex-array/src/scalar_fn/fns/root.rs @@ -6,6 +6,7 @@ use std::fmt::Formatter; use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -30,7 +31,8 @@ impl ScalarFnVTable for Root { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.root") + static ID: CachedId = CachedId::new("vortex.root"); + *ID } fn serialize(&self, _instance: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/select.rs b/vortex-array/src/scalar_fn/fns/select.rs index 2ca070c2bc4..54b63a00f89 100644 --- a/vortex-array/src/scalar_fn/fns/select.rs +++ b/vortex-array/src/scalar_fn/fns/select.rs @@ -14,6 +14,7 @@ use vortex_proto::expr::FieldNames as ProtoFieldNames; use vortex_proto::expr::SelectOpts; use vortex_proto::expr::select_opts::Opts; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -48,7 +49,8 @@ impl ScalarFnVTable for Select { type Options = FieldSelection; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.select") + static ID: CachedId = CachedId::new("vortex.select"); + *ID } fn serialize(&self, instance: &FieldSelection) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/stat.rs b/vortex-array/src/scalar_fn/fns/stat.rs index ae07ba16c60..84fc5760495 100644 --- a/vortex-array/src/scalar_fn/fns/stat.rs +++ b/vortex-array/src/scalar_fn/fns/stat.rs @@ -8,6 +8,7 @@ use std::fmt::Formatter; use vortex_error::VortexResult; use vortex_error::vortex_bail; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -82,7 +83,8 @@ impl ScalarFnVTable for StatFn { type Options = StatOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.stat") + static ID: CachedId = CachedId::new("vortex.stat"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-array/src/scalar_fn/fns/variant_get/mod.rs b/vortex-array/src/scalar_fn/fns/variant_get/mod.rs index 1f09c819d94..ac6aa562aa6 100644 --- a/vortex-array/src/scalar_fn/fns/variant_get/mod.rs +++ b/vortex-array/src/scalar_fn/fns/variant_get/mod.rs @@ -12,6 +12,7 @@ use vortex_error::vortex_err; use vortex_proto::expr as pb; use vortex_proto::expr::variant_path_element; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use vortex_utils::aliases::StringEscape; use crate::ArrayRef; @@ -45,7 +46,8 @@ impl ScalarFnVTable for VariantGet { type Options = VariantGetOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.variant_get") + static ID: CachedId = CachedId::new("vortex.variant_get"); + *ID } fn serialize(&self, options: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/fns/zip/mod.rs b/vortex-array/src/scalar_fn/fns/zip/mod.rs index b1b17e40bb6..3a558ea44f8 100644 --- a/vortex-array/src/scalar_fn/fns/zip/mod.rs +++ b/vortex-array/src/scalar_fn/fns/zip/mod.rs @@ -12,6 +12,7 @@ use vortex_error::vortex_ensure; use vortex_mask::Mask; use vortex_mask::MaskValues; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::ArrayRef; use crate::ExecutionCtx; @@ -46,7 +47,8 @@ impl ScalarFnVTable for Zip { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.zip") + static ID: CachedId = CachedId::new("vortex.zip"); + *ID } fn serialize(&self, _options: &Self::Options) -> VortexResult>> { diff --git a/vortex-array/src/scalar_fn/internal/row_count.rs b/vortex-array/src/scalar_fn/internal/row_count.rs index ea349f2ddf8..eee838f803d 100644 --- a/vortex-array/src/scalar_fn/internal/row_count.rs +++ b/vortex-array/src/scalar_fn/internal/row_count.rs @@ -21,6 +21,7 @@ use vortex_array::scalar_fn::ScalarFnVTable; use vortex_error::VortexResult; use vortex_error::vortex_bail; use vortex_error::vortex_ensure; +use vortex_session::registry::CachedId; /// Zero-argument placeholder for the row count of the current evaluation scope. /// @@ -48,7 +49,8 @@ impl ScalarFnVTable for RowCount { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::from("vortex.row_count") + static ID: CachedId = CachedId::new("vortex.row_count"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-layout/src/layouts/row_idx/expr.rs b/vortex-layout/src/layouts/row_idx/expr.rs index 2d85d6e43f5..95ddce3d762 100644 --- a/vortex-layout/src/layouts/row_idx/expr.rs +++ b/vortex-layout/src/layouts/row_idx/expr.rs @@ -17,6 +17,7 @@ use vortex_array::scalar_fn::ScalarFnVTable; use vortex_array::scalar_fn::ScalarFnVTableExt; use vortex_error::VortexResult; use vortex_error::vortex_bail; +use vortex_session::registry::CachedId; #[derive(Clone)] pub struct RowIdx; @@ -25,7 +26,8 @@ impl ScalarFnVTable for RowIdx { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.row_idx") + static ID: CachedId = CachedId::new("vortex.row_idx"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-layout/src/layouts/struct_/reader.rs b/vortex-layout/src/layouts/struct_/reader.rs index 5261f85f9a8..d27bd3746e7 100644 --- a/vortex-layout/src/layouts/struct_/reader.rs +++ b/vortex-layout/src/layouts/struct_/reader.rs @@ -157,21 +157,17 @@ impl StructReader { /// Utility for partitioning an expression over the fields of a struct. fn partition_expr(&self, expr: Expression) -> VortexResult { let key = ExactExpr(expr.clone()); - - if let Some(entry) = self.partitioned_expr_cache.get(&key) - && let Some(partitioning) = entry.value().get() - { - return Ok(partitioning.clone()); + let binding = self + .partitioned_expr_cache + .entry(key) + .or_insert_with(|| Arc::new(OnceLock::new())); + let entry = binding.value(); + if let Some(value) = entry.get() { + return Ok(value.clone()); } - let result = self.compute_partitioned_expr(expr)?; - - self.partitioned_expr_cache - .entry(key) - .or_insert_with(|| Arc::new(OnceLock::new())) - .get_or_init(|| result.clone()); - - Ok(result) + let result = entry.get_or_init(|| result); + Ok(result.clone()) } fn compute_partitioned_expr(&self, expr: Expression) -> VortexResult { diff --git a/vortex-tensor/src/scalar_fns/cosine_similarity.rs b/vortex-tensor/src/scalar_fns/cosine_similarity.rs index 7dc24a878a4..0b3176915fd 100644 --- a/vortex-tensor/src/scalar_fns/cosine_similarity.rs +++ b/vortex-tensor/src/scalar_fns/cosine_similarity.rs @@ -28,6 +28,7 @@ use vortex_array::serde::ArrayChildren; use vortex_buffer::Buffer; use vortex_error::VortexResult; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::scalar_fns::inner_product::InnerProduct; use crate::scalar_fns::l2_denorm::DenormOrientation; @@ -79,7 +80,8 @@ impl ScalarFnVTable for CosineSimilarity { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.tensor.cosine_similarity") + static ID: CachedId = CachedId::new("vortex.tensor.cosine_similarity"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-tensor/src/scalar_fns/inner_product.rs b/vortex-tensor/src/scalar_fns/inner_product.rs index 197d5cc2fb3..b3ba7a7b557 100644 --- a/vortex-tensor/src/scalar_fns/inner_product.rs +++ b/vortex-tensor/src/scalar_fns/inner_product.rs @@ -42,6 +42,7 @@ use vortex_buffer::BufferMut; use vortex_error::VortexExpect; use vortex_error::VortexResult; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::matcher::AnyTensor; use crate::scalar_fns::l2_denorm::DenormOrientation; @@ -90,7 +91,8 @@ impl ScalarFnVTable for InnerProduct { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.tensor.inner_product") + static ID: CachedId = CachedId::new("vortex.tensor.inner_product"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-tensor/src/scalar_fns/l2_denorm.rs b/vortex-tensor/src/scalar_fns/l2_denorm.rs index 00ad7d75e8a..c91a614ddff 100644 --- a/vortex-tensor/src/scalar_fns/l2_denorm.rs +++ b/vortex-tensor/src/scalar_fns/l2_denorm.rs @@ -54,6 +54,7 @@ use vortex_error::vortex_ensure; use vortex_error::vortex_ensure_eq; use vortex_error::vortex_err; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::matcher::AnyTensor; use crate::scalar_fns::l2_norm::L2Norm; @@ -149,7 +150,8 @@ impl ScalarFnVTable for L2Denorm { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.tensor.l2_denorm") + static ID: CachedId = CachedId::new("vortex.tensor.l2_denorm"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-tensor/src/scalar_fns/l2_norm.rs b/vortex-tensor/src/scalar_fns/l2_norm.rs index d760c3429bd..fab22bc6f29 100644 --- a/vortex-tensor/src/scalar_fns/l2_norm.rs +++ b/vortex-tensor/src/scalar_fns/l2_norm.rs @@ -41,6 +41,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_ensure_eq; use vortex_error::vortex_err; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use crate::matcher::AnyTensor; use crate::scalar_fns::l2_denorm::L2Denorm; @@ -83,7 +84,8 @@ impl ScalarFnVTable for L2Norm { type Options = EmptyOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.tensor.l2_norm") + static ID: CachedId = CachedId::new("vortex.tensor.l2_norm"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-tensor/src/scalar_fns/sorf_transform/vtable.rs b/vortex-tensor/src/scalar_fns/sorf_transform/vtable.rs index 76648decae2..5e9a87754e0 100644 --- a/vortex-tensor/src/scalar_fns/sorf_transform/vtable.rs +++ b/vortex-tensor/src/scalar_fns/sorf_transform/vtable.rs @@ -43,6 +43,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_ensure_eq; use vortex_error::vortex_err; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use super::SorfOptions; use super::SorfTransform; @@ -55,7 +56,8 @@ impl ScalarFnVTable for SorfTransform { type Options = SorfOptions; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.tensor.sorf_transform") + static ID: CachedId = CachedId::new("vortex.tensor.sorf_transform"); + *ID } fn arity(&self, _options: &Self::Options) -> Arity { diff --git a/vortex-turboquant/src/scalar_fns/decode.rs b/vortex-turboquant/src/scalar_fns/decode.rs index 6791a1aef61..ac27815f5a3 100644 --- a/vortex-turboquant/src/scalar_fns/decode.rs +++ b/vortex-turboquant/src/scalar_fns/decode.rs @@ -36,6 +36,7 @@ use vortex_error::vortex_ensure; use vortex_error::vortex_err; use vortex_mask::Mask; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use vortex_tensor::vector::Vector; use crate::centroids::compute_or_get_centroids; @@ -66,7 +67,8 @@ impl ScalarFnVTable for TQDecode { type Options = EmptyMetadata; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.turboquant.decode") + static ID: CachedId = CachedId::new("vortex.turboquant.decode"); + *ID } fn serialize(&self, _options: &Self::Options) -> VortexResult>> { diff --git a/vortex-turboquant/src/scalar_fns/encode.rs b/vortex-turboquant/src/scalar_fns/encode.rs index 29ce7cc580a..6dd16e4bb66 100644 --- a/vortex-turboquant/src/scalar_fns/encode.rs +++ b/vortex-turboquant/src/scalar_fns/encode.rs @@ -28,6 +28,7 @@ use vortex_error::VortexResult; use vortex_error::vortex_ensure; use vortex_error::vortex_err; use vortex_session::VortexSession; +use vortex_session::registry::CachedId; use vortex_tensor::vector::AnyVector; use super::metadata::deserialize_config; @@ -74,7 +75,8 @@ impl ScalarFnVTable for TQEncode { type Options = TurboQuantConfig; fn id(&self) -> ScalarFnId { - ScalarFnId::new("vortex.turboquant.encode") + static ID: CachedId = CachedId::new("vortex.turboquant.encode"); + *ID } fn serialize(&self, options: &Self::Options) -> VortexResult>> {