diff options
| author | panikku <[email protected]> | 2025-07-09 11:52:13 +0300 |
|---|---|---|
| committer | panikku <[email protected]> | 2025-07-09 12:09:06 +0300 |
| commit | bc7d8b2a5d721477f53ffd19cd08d168be84ef4d (patch) | |
| tree | 555439f626e43b6d9fd1041590c3db8fcfef5a55 /yql/essentials/udfs | |
| parent | f767018cb425a62788b8e81932f2c2bc2a2e0953 (diff) | |
YQL-20005: User friendly datetime format error output
Еще идея была с таким выводом:
Invalid format character 'q' in DateTime::Format.
Allowed format characters: - %Y: year (e.g., 2023) - %m: month (e.g., 01 to 12) - %d: day of the month (e.g., 01 to 31)
More format characters available in the documentation: https://nda.ya.ru/t/NC9Huj1V7GFfJn
commit_hash:6ba063a3fe8d164b1c9d9c5f80e558c521cbaf29
Diffstat (limited to 'yql/essentials/udfs')
5 files changed, 19 insertions, 1 deletions
diff --git a/yql/essentials/udfs/common/datetime2/datetime_udf.cpp b/yql/essentials/udfs/common/datetime2/datetime_udf.cpp index e85bcc87812..952b369d094 100644 --- a/yql/essentials/udfs/common/datetime2/datetime_udf.cpp +++ b/yql/essentials/udfs/common/datetime2/datetime_udf.cpp @@ -3004,7 +3004,8 @@ private: break; } default: - ythrow yexception() << "invalid format character: " << *ptr; + throw yexception() << "character '" << *ptr << "' is not a valid format specifier." + << "\nSee documentation for valid format characters"; } dataStart = ptr + 1U; diff --git a/yql/essentials/udfs/common/datetime2/test/canondata/result.json b/yql/essentials/udfs/common/datetime2/test/canondata/result.json index 45a328e4dfd..fbb279acbd9 100644 --- a/yql/essentials/udfs/common/datetime2/test/canondata/result.json +++ b/yql/essentials/udfs/common/datetime2/test/canondata/result.json @@ -29,6 +29,11 @@ "uri": "file://test.test_BlockTo_/results.txt" } ], + "test.test[DateTimeInvalidSpecifierFail]": [ + { + "uri": "file://test.test_DateTimeInvalidSpecifierFail_/extracted" + } + ], "test.test[EndOf]": [ { "uri": "file://test.test_EndOf_/results.txt" diff --git a/yql/essentials/udfs/common/datetime2/test/canondata/test.test_DateTimeInvalidSpecifierFail_/extracted b/yql/essentials/udfs/common/datetime2/test/canondata/test.test_DateTimeInvalidSpecifierFail_/extracted new file mode 100644 index 00000000000..0367aecdffa --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test/canondata/test.test_DateTimeInvalidSpecifierFail_/extracted @@ -0,0 +1,9 @@ +<tmp_path>/program.sql:<main>: Error: Execution + + <tmp_path>/program.sql:<main>:2:1: Error: Execution of node: Result + SELECT + ^ + <tmp_path>/program.sql:<main>:4:15: Error: character 'q' is not a valid format specifier. +See documentation for valid format characters + DateTime::Format("%q")(CurrentUtcDatetime()); + ^
\ No newline at end of file diff --git a/yql/essentials/udfs/common/datetime2/test/cases/DateTimeInvalidSpecifierFail.cfg b/yql/essentials/udfs/common/datetime2/test/cases/DateTimeInvalidSpecifierFail.cfg new file mode 100644 index 00000000000..5dae597903c --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test/cases/DateTimeInvalidSpecifierFail.cfg @@ -0,0 +1 @@ +xfail diff --git a/yql/essentials/udfs/common/datetime2/test/cases/DateTimeInvalidSpecifierFail.sql b/yql/essentials/udfs/common/datetime2/test/cases/DateTimeInvalidSpecifierFail.sql new file mode 100644 index 00000000000..94e9dd3de36 --- /dev/null +++ b/yql/essentials/udfs/common/datetime2/test/cases/DateTimeInvalidSpecifierFail.sql @@ -0,0 +1,2 @@ +SELECT + DateTime::Format("%q")(CurrentUtcDatetime()); |
