@@ -396,7 +396,13 @@ struct TGetTimeComponent {
396396 }
397397
398398 if (!userType) {
399- builder.SetError (" User type is missing" );
399+ // XXX: Function became polymorphic when overload for
400+ // wide resources was implemented. Hence, to make it
401+ // backward compatible with previous versions, the
402+ // absence of the userType is considered as using the
403+ // old version (i.e. without type awareness) that
404+ // provides implementation only for narrow dates.
405+ BuildSignature<TFieldStorage, TMResourceName, Accessor>(builder, typesOnly);
400406 return true ;
401407 }
402408
@@ -1314,7 +1320,13 @@ class TGetDateComponent: public ::NYql::NUdf::TBoxedValue {
13141320 }
13151321
13161322 if (!userType) {
1317- builder.SetError (" User type is missing" );
1323+ // XXX: Function became polymorphic when overload for
1324+ // wide resources was implemented. Hence, to make it
1325+ // backward compatible with previous versions, the
1326+ // absence of the userType is considered as using the
1327+ // old version (i.e. without type awareness) that
1328+ // provides implementation only for narrow dates.
1329+ BuildSignature<TResultType, TMResourceName, Accessor>(builder, typesOnly);
13181330 return true ;
13191331 }
13201332
@@ -1417,7 +1429,13 @@ class TGetDateComponentName: public ::NYql::NUdf::TBoxedValue {
14171429 }
14181430
14191431 if (!userType) {
1420- builder.SetError (" User type is missing" );
1432+ // XXX: Function became polymorphic when overload for
1433+ // wide resources was implemented. Hence, to make it
1434+ // backward compatible with previous versions, the
1435+ // absence of the userType is considered as using the
1436+ // old version (i.e. without type awareness) that
1437+ // provides implementation only for narrow dates.
1438+ BuildSignature<TMResourceName, Accessor>(builder, typesOnly);
14211439 return true ;
14221440 }
14231441
@@ -1637,7 +1655,13 @@ TUnboxedValue GetTimezoneName(const IValueBuilder* valueBuilder, const TUnboxedV
16371655 }
16381656
16391657 if (!userType) {
1640- builder.SetError (" User type is missing" );
1658+ // XXX: Function became polymorphic when overload for
1659+ // wide resources was implemented. Hence, to make it
1660+ // backward compatible with previous versions, the
1661+ // absence of the userType is considered as using the
1662+ // old version (i.e. without type awareness) that
1663+ // provides implementation only for narrow dates.
1664+ BuildSignature<TMResourceName>(builder, typesOnly);
16411665 return true ;
16421666 }
16431667
@@ -1869,7 +1893,13 @@ class TToConverter : public TBoxedValue {
18691893 }
18701894
18711895 if (!userType) {
1872- builder.SetError (" User type is missing" );
1896+ // XXX: Function became polymorphic when overload for
1897+ // wide resources was implemented. Hence, to make it
1898+ // backward compatible with previous versions, the
1899+ // absence of the userType is considered as using the
1900+ // old version (i.e. without type awareness) that
1901+ // provides implementation only for narrow dates.
1902+ BuildSignature<TInterval, TResult>(builder, typesOnly);
18731903 return true ;
18741904 }
18751905
@@ -1987,7 +2017,13 @@ class TBoundaryOf: public ::NYql::NUdf::TBoxedValue {
19872017 }
19882018
19892019 if (!userType) {
1990- builder.SetError (" User type is missing" );
2020+ // XXX: Function became polymorphic when overload for
2021+ // wide resources was implemented. Hence, to make it
2022+ // backward compatible with previous versions, the
2023+ // absence of the userType is considered as using the
2024+ // old version (i.e. without type awareness) that
2025+ // provides implementation only for narrow dates.
2026+ BuildSignature<TMResourceName, Boundary>(builder, typesOnly);
19912027 return true ;
19922028 }
19932029
@@ -2309,7 +2345,13 @@ class TBoundaryOfInterval: public ::NYql::NUdf::TBoxedValue {
23092345 }
23102346
23112347 if (!userType) {
2312- builder.SetError (" User type is missing" );
2348+ // XXX: Function became polymorphic when overload for
2349+ // wide resources was implemented. Hence, to make it
2350+ // backward compatible with previous versions, the
2351+ // absence of the userType is considered as using the
2352+ // old version (i.e. without type awareness) that
2353+ // provides implementation only for narrow dates.
2354+ BuildSignature<TMResourceName, Boundary>(builder, typesOnly);
23132355 return true ;
23142356 }
23152357
@@ -2425,7 +2467,13 @@ class TTimeOfDay: public ::NYql::NUdf::TBoxedValue {
24252467 }
24262468
24272469 if (!userType) {
2428- builder.SetError (" User type is missing" );
2470+ // XXX: Function became polymorphic when overload for
2471+ // wide resources was implemented. Hence, to make it
2472+ // backward compatible with previous versions, the
2473+ // absence of the userType is considered as using the
2474+ // old version (i.e. without type awareness) that
2475+ // provides implementation only for narrow dates.
2476+ BuildSignature<TMResourceName>(builder, typesOnly);
24292477 return true ;
24302478 }
24312479
@@ -2546,7 +2594,13 @@ class TShift : public TBoxedValue {
25462594 }
25472595
25482596 if (!userType) {
2549- builder.SetError (" User type is missing" );
2597+ // XXX: Function became polymorphic when overload for
2598+ // wide resources was implemented. Hence, to make it
2599+ // backward compatible with previous versions, the
2600+ // absence of the userType is considered as using the
2601+ // old version (i.e. without type awareness) that
2602+ // provides implementation only for narrow dates.
2603+ BuildSignature<TMResourceName, Shifter>(builder, typesOnly);
25502604 return true ;
25512605 }
25522606
0 commit comments