diff options
Diffstat (limited to 'yql/essentials/sql/v1/sql_ut_antlr4.cpp')
-rw-r--r-- | yql/essentials/sql/v1/sql_ut_antlr4.cpp | 59 |
1 files changed, 51 insertions, 8 deletions
diff --git a/yql/essentials/sql/v1/sql_ut_antlr4.cpp b/yql/essentials/sql/v1/sql_ut_antlr4.cpp index 05e85605ef..4b1233bfee 100644 --- a/yql/essentials/sql/v1/sql_ut_antlr4.cpp +++ b/yql/essentials/sql/v1/sql_ut_antlr4.cpp @@ -483,7 +483,6 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqCreateUser.IsOk()); - UNIT_ASSERT(reqCreateUser.Root); auto reqAlterUser = SqlToYql(R"( USE plato; @@ -491,7 +490,7 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(!reqAlterUser.IsOk()); - UNIT_ASSERT_STRING_CONTAINS(reqAlterUser.Issues.ToString(), "Error: mismatched input ';' expecting {ENCRYPTED, LOGIN, NOLOGIN, PASSWORD, RENAME, WITH}"); + UNIT_ASSERT_STRING_CONTAINS(reqAlterUser.Issues.ToString(), "Error: mismatched input ';' expecting {ENCRYPTED, HASH, LOGIN, NOLOGIN, PASSWORD, RENAME, WITH}"); auto reqPasswordAndLogin = SqlToYql(R"( USE plato; @@ -499,7 +498,6 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqPasswordAndLogin.IsOk()); - UNIT_ASSERT(reqPasswordAndLogin.Root); auto reqPasswordAndNoLogin = SqlToYql(R"( USE plato; @@ -507,7 +505,6 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqPasswordAndNoLogin.IsOk()); - UNIT_ASSERT(reqPasswordAndNoLogin.Root); auto reqLogin = SqlToYql(R"( USE plato; @@ -515,7 +512,6 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqLogin.IsOk()); - UNIT_ASSERT(reqLogin.Root); auto reqNoLogin = SqlToYql(R"( USE plato; @@ -523,7 +519,6 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqNoLogin.IsOk()); - UNIT_ASSERT(reqNoLogin.Root); auto reqLoginNoLogin = SqlToYql(R"( USE plato; @@ -540,7 +535,6 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqAlterLoginNoLogin.IsOk()); - UNIT_ASSERT(reqAlterLoginNoLogin.Root); auto reqAlterLoginNoLoginWithPassword = SqlToYql(R"( USE plato; @@ -549,7 +543,56 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { )"); UNIT_ASSERT(reqAlterLoginNoLoginWithPassword.IsOk()); - UNIT_ASSERT(reqAlterLoginNoLoginWithPassword.Root); + } + + Y_UNIT_TEST(CreateUserWithHash) { + auto reqCreateUser = SqlToYql(R"( + USE plato; + CREATE USER user1 HASH '{ + "hash": "p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=", + "salt": "U+tzBtgo06EBQCjlARA6Jg==", + "type": "argon2id" + }'; + )"); + + UNIT_ASSERT(reqCreateUser.IsOk()); + + auto reqCreateUserWithNoLogin = SqlToYql(R"( + USE plato; + CREATE USER user1 HASH '{ + "hash": "p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=", + "salt": "U+tzBtgo06EBQCjlARA6Jg==", + "type": "argon2id" + }' + NOLOGIN; + )"); + + UNIT_ASSERT(reqCreateUserWithNoLogin.IsOk()); + + auto reqCreateUserWithPassword = SqlToYql(R"( + USE plato; + CREATE USER user1 HASH '{ + "hash": "p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=", + "salt": "U+tzBtgo06EBQCjlARA6Jg==", + "type": "argon2id" + }' + PASSWORD '123'; + )"); + + UNIT_ASSERT(!reqCreateUserWithPassword.IsOk()); + UNIT_ASSERT_STRING_CONTAINS(reqCreateUserWithPassword.Issues.ToString(), "Error: Conflicting or redundant options"); + + auto reqAlterUser = SqlToYql(R"( + USE plato; + CREATE USER user1; + ALTER USER user1 HASH '{ + "hash": "p4ffeMugohqyBwyckYCK1TjJfz3LIHbKiGL+t+oEhzw=", + "salt": "U+tzBtgo06EBQCjlARA6Jg==", + "type": "argon2id" + }'; + )"); + + UNIT_ASSERT(reqAlterUser.IsOk()); } Y_UNIT_TEST(JoinWithoutConcreteColumns) { |