Fix suggestions for user without grants

This commit is contained in:
Nikolay Degterinsky 2023-11-02 03:56:59 +00:00
parent e33dc02c8c
commit f93c032425
3 changed files with 58 additions and 1 deletions

View File

@ -23,6 +23,7 @@ namespace ErrorCodes
extern const int LOGICAL_ERROR; extern const int LOGICAL_ERROR;
extern const int NOT_IMPLEMENTED; extern const int NOT_IMPLEMENTED;
extern const int SUPPORT_IS_DISABLED; extern const int SUPPORT_IS_DISABLED;
extern const int ACCESS_DENIED;
}; };
enum class FunctionOrigin : Int8 enum class FunctionOrigin : Int8
@ -151,7 +152,8 @@ void StorageSystemFunctions::fillData(MutableColumns & res_columns, ContextPtr c
|| e.code() == ErrorCodes::FUNCTION_NOT_ALLOWED || e.code() == ErrorCodes::FUNCTION_NOT_ALLOWED
|| e.code() == ErrorCodes::LOGICAL_ERROR || e.code() == ErrorCodes::LOGICAL_ERROR
|| e.code() == ErrorCodes::NOT_IMPLEMENTED || e.code() == ErrorCodes::NOT_IMPLEMENTED
|| e.code() == ErrorCodes::SUPPORT_IS_DISABLED) || e.code() == ErrorCodes::SUPPORT_IS_DISABLED
|| e.code() == ErrorCodes::ACCESS_DENIED)
{ {
/// Ignore exception, show is_deterministic = NULL. /// Ignore exception, show is_deterministic = NULL.
} }

View File

@ -0,0 +1,55 @@
#!/usr/bin/expect -f
set basedir [file dirname $argv0]
set basename [file tail $argv0]
exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0
set history_file $env(CLICKHOUSE_TMP)/$basename.history
log_user 0
set timeout 60
match_max 100000
expect_after {
# Do not ignore eof from expect
-i $any_spawn_id eof { exp_continue }
# A default timeout action is to do nothing, change it to fail
-i $any_spawn_id timeout { exit 1 }
}
spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion --history_file=$history_file"
expect ":) "
send -- "DROP USER IF EXISTS 02907_suggestions_readonly_user\r"
expect "Ok."
send -- "CREATE USER 02907_suggestions_readonly_user\r"
expect "Ok."
send -- "exit\r"
expect eof
spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --user=02907_suggestions_readonly_user --history_file=$history_file"
expect ":) "
set timeout 3
expect {
-ex "Cannot load data" {
send_user "Check failed.\n"
exit 1
}
timeout {
}
}
set timeout 60
send -- "exit\r"
expect eof
spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion --history_file=$history_file"
expect ":) "
send -- "DROP USER 02907_suggestions_readonly_user\r"
expect "Ok."
send -- "exit\r"
expect eof