Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-8665

Include extra info in error message when date cast fails

    XMLWordPrintableJSON

Details

    • 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();
      }
      

      Attachments

        Activity

          People

            jiawei.wang Jiawei Wang
            gaborkaszab Gabor Kaszab
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: