diff --git a/be/src/vec/exprs/vcompound_pred.h b/be/src/vec/exprs/vcompound_pred.h index 56e21ad082..3d633d6776 100644 --- a/be/src/vec/exprs/vcompound_pred.h +++ b/be/src/vec/exprs/vcompound_pred.h @@ -65,7 +65,8 @@ public: int lhs_id = -1; int rhs_id = -1; RETURN_IF_ERROR(_children[0]->execute(context, block, &lhs_id)); - ColumnPtr lhs_column = block->get_by_position(lhs_id).column; + ColumnPtr lhs_column = + block->get_by_position(lhs_id).column->convert_to_full_column_if_const(); size_t size = lhs_column->size(); uint8* __restrict data = _get_raw_data(lhs_column); @@ -81,7 +82,8 @@ public: auto get_rhs_colum = [&]() { if (rhs_id == -1) { RETURN_IF_ERROR(_children[1]->execute(context, block, &rhs_id)); - rhs_column = block->get_by_position(rhs_id).column; + rhs_column = + block->get_by_position(rhs_id).column->convert_to_full_column_if_const(); data_rhs = _get_raw_data(rhs_column); int filted = simd::count_zero_num((int8_t*)data_rhs, size); full_rhs = filted == 0;