I'm trying to create a new user on a clickhouse cluster with  3 shards using this command:
`CREATE USER IF NOT EXISTS user ON CLUSTER '{cluster}' IDENTIFIED WITH sha256_password BY 'password' DEFAULT ROLE NONE`

This command gets expanded to:

`CREATE USER IF NOT EXISTS user ON CLUSTER {cluster} IDENTIFIED WITH sha256_hash BY '<hash>' SALT '<salt>' DEFAULT ROLE NONE`

However, on each of the shard I get this error:

`Syntax error: failed at position 123 ('SALT'): SALT '<salt>' DEFAULT ROLE NONE. Expected one of: HOST, SETTINGS, DEFAULT ROLE, GRANTEES, DEFAULT DATABASE, end of query.`

However, if I switch to use `plaintext_password` instead, everything works fine. Looks like the expansion and the addition of the "SALT" was not expected when handling this command.

* Which ClickHouse server version to use: 22.4

**Expected behavior**
The user to be created with no errors.

Thanks!
}
    bool if_exists = false;
    bool if_not_exists = false;
    bool or_replace = false;
    if (alter)
    {
        if (ParserKeyword{"IF EXISTS"}.ignore(pos, expected))
            if_exists = true;
    }
    else
    {
        if (ParserKeyword{"IF NOT EXISTS"}.ignore(pos, expected))
            if_not_exists = true;
        else if (ParserKeyword{"OR REPLACE"}.ignore(pos, expected))
            or_replace = true;
    }
    ASTPtr names_ast;
    if (!ParserUserNamesWithHost{}.parse(pos, names_ast, expected))
        return false;
    auto names = typeid_cast<std::shared_ptr<ASTUserNamesWithHost>>(names_ast);
    auto names_ref = names->names;
    String new_name;
    std::optional<AuthenticationData> auth_data;
    std::optional<AllowedClientHosts> hosts;
    std::optional<AllowedClientHosts> add_hosts;
    std::optional<AllowedClientHosts> remove_hosts;
    std::shared_ptr<ASTRolesOrUsersSet> default_roles;
    std::shared_ptr<ASTSettingsProfileElements> settings;
    std::shared_ptr<ASTRolesOrUsersSet> grantees;
    std::shared_ptr<ASTDatabaseOrNone> default_database;