Skip to content

Commit

Permalink
[fix](cast) return error when numerical cast out-of-range
Browse files Browse the repository at this point in the history
  • Loading branch information
kaijchen committed Mar 12, 2024
1 parent b7b3843 commit a9e42da
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions be/src/vec/functions/function_cast.h
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,16 @@ struct ConvertImpl {
block.get_by_position(result).column =
ColumnNullable::create(std::move(col_to), std::move(col_null_map_to));
return Status::OK();
} else if constexpr (IsDataTypeNumber<FromDataType> &&
IsDataTypeNumber<ToDataType>) {
for (size_t i = 0; i < size; ++i) {
if (vec_from[i] < min_result || vec_from[i] > max_result) {
return Status::InternalError(
"Out of range value for column '{}' at row {}",
col_to->get_name(), i);
}
vec_to[i] = static_cast<ToFieldType>(vec_from[i]);
}
} else {
for (size_t i = 0; i < size; ++i) {
vec_to[i] = static_cast<ToFieldType>(vec_from[i]);
Expand Down

0 comments on commit a9e42da

Please sign in to comment.