@@ -602,7 +602,7 @@ std::unique_ptr<cudf::table> CudfHashJoinProbe::filteredOutput(
602602    cudf::column_view rightIndicesCol,
603603    std::function<std::vector<std::unique_ptr<cudf::column>>(
604604        std::vector<std::unique_ptr<cudf::column>>&&,
605-         cudf::mutable_column_view )> func,
605+         cudf::column_view )> func,
606606    rmm::cuda_stream_view stream) {
607607  auto  leftResult =
608608      cudf::gather (leftTableView, leftIndicesCol, oobPolicy, stream);
@@ -623,11 +623,11 @@ std::unique_ptr<cudf::table> CudfHashJoinProbe::filteredOutput(
623623  std::vector<velox::RowTypePtr> rowTypes{probeType, buildType};
624624  exec::ExprSet exprs ({joinNode_->filter ()}, operatorCtx_->execCtx ());
625625  VELOX_CHECK_EQ (exprs.exprs ().size (), 1 );
626-   auto  filterEvaluator = ExpressionEvaluator (
627-       { exprs.exprs ()[0 ]} , facebook::velox::type::concatRowTypes (rowTypes));
628-   auto  filterColumns = filterEvaluator. compute (
626+   auto  filterEvaluator = createCudfExpression (
627+       exprs.exprs ()[0 ], facebook::velox::type::concatRowTypes (rowTypes));
628+   auto  filterColumns = filterEvaluator-> eval (
629629      joinedCols, stream, cudf::get_current_device_resource_ref ());
630-   auto  filterColumn = filterColumns[ 0 ]-> mutable_view ( );
630+   auto  filterColumn = asView (filterColumns );
631631
632632  joinedCols = func (std::move (joinedCols), filterColumn);
633633
@@ -689,7 +689,7 @@ std::vector<std::unique_ptr<cudf::table>> CudfHashJoinProbe::innerJoin(
689689      auto  filterFunc =
690690          [stream](
691691              std::vector<std::unique_ptr<cudf::column>>&& joinedCols,
692-               cudf::mutable_column_view  filterColumn) {
692+               cudf::column_view  filterColumn) {
693693            auto  filterTable =
694694                std::make_unique<cudf::table>(std::move (joinedCols));
695695            auto  filteredTable =
@@ -757,7 +757,7 @@ std::vector<std::unique_ptr<cudf::table>> CudfHashJoinProbe::leftJoin(
757757                         stream](
758758                            std::vector<std::unique_ptr<cudf::column>>&&
759759                                joinedCols,
760-                             cudf::mutable_column_view  filterColumn) {
760+                             cudf::column_view  filterColumn) {
761761        auto  leftColsSize = leftTableView.num_columns ();
762762        auto  rightColsSize = rightTableView.num_columns ();
763763
@@ -922,7 +922,7 @@ std::vector<std::unique_ptr<cudf::table>> CudfHashJoinProbe::rightJoin(
922922      auto  filterFunc =
923923          [&rightMatchedFlags, rightIndicesSpan, stream](
924924              std::vector<std::unique_ptr<cudf::column>>&& joinedCols,
925-               cudf::mutable_column_view  filterColumn) {
925+               cudf::column_view  filterColumn) {
926926            //  apply the filter
927927            auto  filterTable =
928928                std::make_unique<cudf::table>(std::move (joinedCols));
0 commit comments