|
@@ -848,9 +848,16 @@ TValue DoAddYears(const TValue& date, i64 years, const NUdf::IDateBuilder& build
|
|
|
BEGIN_SIMPLE_STRICT_ARROW_UDF(TMakeTzDate, TTzDate(TAutoMap<TResource<TMResourceName>>)) {
|
|
|
auto& builder = valueBuilder->GetDateBuilder();
|
|
|
auto& storage = Reference(args[0]);
|
|
|
- TUnboxedValuePod result(storage.ToDate(builder, true));
|
|
|
- result.SetTimezoneId(storage.TimezoneId);
|
|
|
- return result;
|
|
|
+ try {
|
|
|
+ TUnboxedValuePod result(storage.ToDate(builder, true));
|
|
|
+ result.SetTimezoneId(storage.TimezoneId);
|
|
|
+ return result;
|
|
|
+ } catch (const std::exception& e) {
|
|
|
+ UdfTerminate((TStringBuilder() << Pos_ << "Timestamp "
|
|
|
+ << storage.ToString()
|
|
|
+ << " cannot be casted to TzDate"
|
|
|
+ ).data());
|
|
|
+ }
|
|
|
}
|
|
|
END_SIMPLE_ARROW_UDF(TMakeTzDate, TMakeDateKernelExec<TTzDate>::Do);
|
|
|
|