Skip to content

Commit 12207e4

Browse files
authored
TryFromString in decimal validation (#9586)
1 parent 334dad0 commit 12207e4

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

ydb/library/yql/ast/yql_expr.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3032,14 +3032,22 @@ bool TDataExprParamsType::Validate(TPosition position, TExprContext& ctx) const
30323032
return false;
30333033
}
30343034

3035-
const auto precision = FromString<ui8>(GetParamOne());
3035+
ui8 precision;
3036+
if (!TryFromString<ui8>(GetParamOne(), precision)){
3037+
ctx.AddError(TIssue(position, TStringBuilder() << "Invalid decimal precision: " << GetParamOne()));
3038+
return false;
3039+
}
30363040

30373041
if (!precision || precision > 35) {
30383042
ctx.AddError(TIssue(position, TStringBuilder() << "Invalid decimal precision: " << GetParamOne()));
30393043
return false;
30403044
}
30413045

3042-
const auto scale = FromString<ui8>(GetParamTwo());
3046+
ui8 scale;
3047+
if (!TryFromString<ui8>(GetParamTwo(), scale)){
3048+
ctx.AddError(TIssue(position, TStringBuilder() << "Invalid decimal scale: " << GetParamTwo()));
3049+
return false;
3050+
}
30433051

30443052
if (scale > precision) {
30453053
ctx.AddError(TIssue(position, TStringBuilder() << "Invalid decimal parameters: (" << GetParamOne() << "," << GetParamTwo() << ")."));

0 commit comments

Comments
 (0)