From 94f4b4d57fefb449eb63bc2d8919198589eb1f39 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 18 Sep 2024 13:12:38 +0200 Subject: [PATCH] Add more tests. --- ..._restore_user_with_existing_role.reference | 3 +++ .../03231_restore_user_with_existing_role.sh | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/tests/queries/0_stateless/03231_restore_user_with_existing_role.reference b/tests/queries/0_stateless/03231_restore_user_with_existing_role.reference index 6615c5844af..834c2b71833 100644 --- a/tests/queries/0_stateless/03231_restore_user_with_existing_role.reference +++ b/tests/queries/0_stateless/03231_restore_user_with_existing_role.reference @@ -5,3 +5,6 @@ Nothing dropped Nothing dropped, mode=replace Nothing dropped, mode=create ACCESS_ENTITY_ALREADY_EXISTS +Everything dropped, restore system.roles, then system.users +user_a 0 +role_b 1 diff --git a/tests/queries/0_stateless/03231_restore_user_with_existing_role.sh b/tests/queries/0_stateless/03231_restore_user_with_existing_role.sh index 08a70d5e71a..7c5fb342955 100755 --- a/tests/queries/0_stateless/03231_restore_user_with_existing_role.sh +++ b/tests/queries/0_stateless/03231_restore_user_with_existing_role.sh @@ -71,3 +71,26 @@ do_check echo "Nothing dropped, mode=create" ${CLICKHOUSE_CLIENT} --query "RESTORE ALL FROM ${backup_name} SETTINGS create_access='create' FORMAT Null" 2>&1 | grep -om1 "ACCESS_ENTITY_ALREADY_EXISTS" do_check + +echo "Everything dropped, restore system.roles, then system.users" +${CLICKHOUSE_CLIENT} --query "DROP USER ${user_a}" +${CLICKHOUSE_CLIENT} --query "DROP ROLE ${role_b}" +${CLICKHOUSE_CLIENT} --query "RESTORE TABLE system.roles FROM ${backup_name} FORMAT Null" +${CLICKHOUSE_CLIENT} --query "SELECT 'user_a', count() FROM system.users WHERE name = '${user_a}'" +${CLICKHOUSE_CLIENT} --query "SELECT 'role_b', count() FROM system.roles WHERE name = '${role_b}'" +${CLICKHOUSE_CLIENT} --query "RESTORE TABLE system.users FROM ${backup_name} FORMAT Null" +do_check + +# TODO: Cannot restore system.users, then system.roles correctly. The result after the second RESTORE ALL is the following: +# CREATE USER user_a IDENTIFIED WITH no_password DEFAULT ROLE NONE SETTINGS custom_x = 2; CREATE ROLE role_b SETTINGS custom_x = 1 +# because there is no `role_b` at the time when `user_a` is restored, +# and no information about the default role and the grant at the time when `role_b` is restored. +# +# echo "Everything dropped, restore system.users, then system.roles" +# ${CLICKHOUSE_CLIENT} --query "DROP USER ${user_a}" +# ${CLICKHOUSE_CLIENT} --query "DROP ROLE ${role_b}" +# ${CLICKHOUSE_CLIENT} --query "RESTORE TABLE system.users FROM ${backup_name} SETTINGS allow_unresolved_access_dependencies=true FORMAT Null" +# ${CLICKHOUSE_CLIENT} --query "SELECT 'user_a', count() FROM system.users WHERE name = '${user_a}'" +# ${CLICKHOUSE_CLIENT} --query "SELECT 'role_b', count() FROM system.roles WHERE name = '${role_b}'" +# ${CLICKHOUSE_CLIENT} --query "RESTORE TABLE system.roles FROM ${backup_name} SETTINGS update_access_entities_dependents=true FORMAT Null" +# do_check