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 13, 2024
1 parent b7b3843 commit 87f1191
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 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,15 @@ 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::RuntimeError("{}({}) out of range", col_to->get_name(),
vec_from[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 87f1191

Please sign in to comment.