diff options
author | flown4qqqq <[email protected]> | 2025-03-02 00:52:13 +0300 |
---|---|---|
committer | flown4qqqq <[email protected]> | 2025-03-02 01:16:41 +0300 |
commit | 199aeeaa8d7db8a474c4ea12634114b8fd17d079 (patch) | |
tree | 2e464bc34aeddaa1e037d730f33b8a03e6d8e86e /yql/essentials/sql/v1/sql_translation.cpp | |
parent | 247abd10e4b384dda8303047190443af033df23f (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.cpp | 41 |
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; } |