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!
String cluster;
    while (true)
    {
        if (!auth_data)
        {
            AuthenticationData new_auth_data;
            if (parseAuthenticationData(pos, expected, attach_mode, new_auth_data))
            {
                auth_data = std::move(new_auth_data);
                continue;
            }
        }
        AllowedClientHosts new_hosts;
        if (parseHosts(pos, expected, "", new_hosts))
        {
            if (!hosts)
                hosts.emplace();
            hosts->add(new_hosts);
            continue;
        }
        std::vector<std::shared_ptr<ASTSettingsProfileElement>> new_settings;
        if (parseSettings(pos, expected, attach_mode, new_settings))
        {
            if (!settings)
                settings = std::make_shared<ASTSettingsProfileElements>();
            insertAtEnd(settings->elements, std::move(new_settings));
            continue;
        }
        if (!default_roles && parseDefaultRoles(pos, expected, attach_mode, default_roles))
            continue;