summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_translation.cpp
diff options
context:
space:
mode:
authorflown4qqqq <[email protected]>2025-03-02 00:52:13 +0300
committerflown4qqqq <[email protected]>2025-03-02 01:16:41 +0300
commit199aeeaa8d7db8a474c4ea12634114b8fd17d079 (patch)
tree2e464bc34aeddaa1e037d730f33b8a03e6d8e86e /yql/essentials/sql/v1/sql_translation.cpp
parent247abd10e4b384dda8303047190443af033df23f (diff)
Change the text of error for create user with password.
commit_hash:6631b600dda026c616983f0b08daa912beb0f5db
Diffstat (limited to 'yql/essentials/sql/v1/sql_translation.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_translation.cpp41
1 files changed, 25 insertions, 16 deletions
diff --git a/yql/essentials/sql/v1/sql_translation.cpp b/yql/essentials/sql/v1/sql_translation.cpp
index 71dfafb3c49..af492431c88 100644
--- a/yql/essentials/sql/v1/sql_translation.cpp
+++ b/yql/essentials/sql/v1/sql_translation.cpp
@@ -3819,35 +3819,44 @@ bool TSqlTranslation::RoleNameClause(const TRule_role_name& node, TDeferredAtom&
}
bool TSqlTranslation::PasswordParameter(const TRule_password_option& passwordOption, TUserParameters& result) {
- // password_option: ENCRYPTED? PASSWORD expr;
- TSqlExpression expr(Ctx, Mode);
- TNodePtr password = expr.Build(passwordOption.GetRule_expr3());
- if (!password) {
- Error() << "Couldn't parse the password";
- return false;
+ // password_option: ENCRYPTED? PASSWORD password_value;
+ // password_value: STRING_VALUE | NULL;
+
+ const auto& token = passwordOption.GetRule_password_value3().GetToken1();
+ TString stringValue(Ctx.Token(token));
+
+ if (to_lower(stringValue) == "null") {
+ // result.Password = default value
+ } else {
+ auto password = StringContent(Ctx, Ctx.Pos(), stringValue);
+
+ if (!password) {
+ Error() << "Password should be enclosed into quotation marks.";
+ return false;
+ }
+
+ result.Password = TDeferredAtom(Ctx.Pos(), std::move(password->Content));
}
result.IsPasswordEncrypted = passwordOption.HasBlock1();
- if (!password->IsNull()) {
- result.Password = MakeAtomFromExpression(Ctx.Pos(), Ctx, password);
- }
return true;
}
bool TSqlTranslation::HashParameter(const TRule_hash_option& hashOption, TUserParameters& result) {
- // hash_option: HASH expr;
- TSqlExpression expr(Ctx, Mode);
- TNodePtr hash = expr.Build(hashOption.GetRule_expr2());
+ // hash_option: HASH STRING_VALUE;
+
+ const auto& token = hashOption.GetToken2();
+ TString stringValue(Ctx.Token(token));
+
+ auto hash = StringContent(Ctx, Ctx.Pos(), stringValue);
if (!hash) {
- Error() << "Couldn't parse the hash of password";
+ Error() << "Hash should be enclosed into quotation marks.";
return false;
}
- if (!hash->IsNull()) {
- result.Hash = MakeAtomFromExpression(Ctx.Pos(), Ctx, hash);
- }
+ result.Hash = TDeferredAtom(Ctx.Pos(), std::move(hash->Content));
return true;
}