From a85e973650a083e4b279126a0aec07924d84e765 Mon Sep 17 00:00:00 2001 From: Max Gabrielsson Date: Fri, 12 Apr 2024 10:08:33 +0200 Subject: [PATCH] check that distance func is func --- src/hnsw/hnsw_plan_index_scan.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hnsw/hnsw_plan_index_scan.cpp b/src/hnsw/hnsw_plan_index_scan.cpp index d666c15..09a7de9 100644 --- a/src/hnsw/hnsw_plan_index_scan.cpp +++ b/src/hnsw/hnsw_plan_index_scan.cpp @@ -60,6 +60,10 @@ class HNSWIndexScanOptimizer : public OptimizerExtension { auto &projection = immediate_child->Cast(); auto projection_index = bound_column_ref.binding.column_index; + if(projection.expressions[projection_index]->type != ExpressionType::BOUND_FUNCTION) { + // The expression has to be a function + return; + } auto &bound_function = projection.expressions[projection_index]->Cast(); if (!HNSWIndex::IsDistanceFunction(bound_function.function.name)) { // We can only optimize if the order by expression is a distance function