From 28848fab1671dbd94c41aaab10365ed2e3dab1da Mon Sep 17 00:00:00 2001 From: Rui Mo Date: Tue, 23 Aug 2022 15:40:21 +0800 Subject: [PATCH] Filter out null for IN (#41) Remove alias (#46) --- velox/substrait/SubstraitToVeloxExpr.cpp | 11 ----------- velox/substrait/SubstraitToVeloxExpr.h | 4 ---- velox/substrait/SubstraitToVeloxPlan.cpp | 2 ++ 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/velox/substrait/SubstraitToVeloxExpr.cpp b/velox/substrait/SubstraitToVeloxExpr.cpp index 86e6e06006fda..062ee315d7484 100644 --- a/velox/substrait/SubstraitToVeloxExpr.cpp +++ b/velox/substrait/SubstraitToVeloxExpr.cpp @@ -212,14 +212,6 @@ SubstraitVeloxExprConverter::toVeloxExpr( } } -std::shared_ptr -SubstraitVeloxExprConverter::toAliasExpr( - const std::vector>& params) { - VELOX_CHECK(params.size() == 1, "Alias expects one parameter."); - // Alias is omitted due to name change is not needed. - return params[0]; -} - std::shared_ptr SubstraitVeloxExprConverter::toIsNotNullExpr( const std::vector>& params, @@ -280,9 +272,6 @@ SubstraitVeloxExprConverter::toVeloxExpr( if (veloxFunction == "extract") { return toExtractExpr(std::move(params), toVeloxType(typeName)); } - if (veloxFunction == "alias") { - return toAliasExpr(std::move(params)); - } if (veloxFunction == "is_not_null") { return toIsNotNullExpr(std::move(params), toVeloxType(typeName)); diff --git a/velox/substrait/SubstraitToVeloxExpr.h b/velox/substrait/SubstraitToVeloxExpr.h index 418d6a1440791..9dbe0f4dd32f8 100644 --- a/velox/substrait/SubstraitToVeloxExpr.h +++ b/velox/substrait/SubstraitToVeloxExpr.h @@ -60,10 +60,6 @@ class SubstraitVeloxExprConverter { const ::substrait::Expression::Cast& castExpr, const RowTypePtr& inputType); - /// Create expression for alias. - std::shared_ptr toAliasExpr( - const std::vector>& params); - /// Create expression for is_not_null. std::shared_ptr toIsNotNullExpr( const std::vector>& params, diff --git a/velox/substrait/SubstraitToVeloxPlan.cpp b/velox/substrait/SubstraitToVeloxPlan.cpp index d47869dcbc823..99f189ad83155 100644 --- a/velox/substrait/SubstraitToVeloxPlan.cpp +++ b/velox/substrait/SubstraitToVeloxPlan.cpp @@ -1622,6 +1622,8 @@ void SubstraitVeloxPlanConverter::constructSubfieldFilters( // Handle 'in' filter. if (filterInfo->valuesVector_.size() > 0) { + // To filter out null is a default behaviour of Spark IN expression. + nullAllowed = false; setInFilter( filterInfo->valuesVector_, nullAllowed, inputName, filters); // Currently, In cannot coexist with other filter conditions