Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 3.3.0
-
ghx-label-9
Description
select cast("2000" as date); ERROR: UDF ERROR: String to Date parse failed.
If we assume the user has millions of rows in a table and makes a cast on them it's hard to debug which one of the made the cast fail as there is no indication in the error message. Let's include at least the input value of the cast to the message.
Here we have everything available to do so:
https://github.com/apache/impala/blob/94652d74521e95e8606ea2d22aabcaddde6fc471/be/src/exprs/cast-functions-ir.cc#L313
DateVal CastFunctions::CastToDateVal(FunctionContext* ctx, const StringVal& val) { if (val.is_null) return DateVal::null(); DateValue dv = DateValue::Parse(reinterpret_cast<char*>(val.ptr), val.len, true); if (UNLIKELY(!dv.IsValid())) { ctx->SetError("String to Date parse failed."); return DateVal::null(); } return dv.ToDateVal(); }