ON CLUSTER permite alterar perfis de configuração em um cluster; consulte DDL distribuído.
Substituição vs. modificação de configurações
ALTER SETTINGS PROFILE oferece duas formas diferentes de alterar as configurações e os perfis pai (herdados) de um perfil. Elas funcionam de maneiras bem diferentes, por isso é importante escolher a opção certa.
Forma de substituição: SETTINGS / INHERIT isolados
SETTINGS isolada (sem ADD, MODIFY ou DROP) substitui toda a lista de configurações e todos os perfis pai do perfil exatamente pelo que você listar. Tudo o que já existia, mas não foi listado, é removido silenciosamente — não há aviso.
SETTINGS em CREATE SETTINGS PROFILE: a cláusula define a lista completa de configurações.
Forma incremental: ADD / MODIFY / DROP
ADD, MODIFY e DROP alteram entradas individuais, deixando todo o restante do perfil inalterado:
ADD SETTINGS variable = value [constraints]— adiciona uma configuração que ainda não está presente.MODIFY SETTINGS variable = value [constraints]— substitui a entrada de uma única configuração. A entrada inteira (valor e restrições) é sobrescrita, portanto especifique novamenteMIN/MAX/READONLY/etc. se quiser mantê-los.DROP SETTINGS variable [,...]— remove as configurações listadas.ADD PROFILES 'profile_name' [,...]/DROP PROFILES 'profile_name' [,...]— adiciona ou remove perfis pai (herdados).DROP ALL SETTINGS/DROP ALL PROFILES— remove todas as configurações ou todos os perfis pai.
DROP SETTINGS a ADD SETTINGS b = 1.
SET variable = value é um alias para MODIFY SETTINGS variable = value. Essa forma é oferecida porque SET soa natural e porque digitar a cláusula SETTINGS de substituição quando se pretendia uma alteração incremental é um erro comum.
Exemplos
SHOW CREATE SETTINGS PROFILE:
Incremental vs substituição total
ADD SETTINGS ou MODIFY SETTINGS (veja os exemplos abaixo).
ADD vs MODIFY
ADD SETTINGS quanto MODIFY SETTINGS preservam as outras configurações no perfil, mas tratam de forma diferente uma entrada existente para a mesma configuração:
ADD SETTINGS variable = value ...primeiro exclui qualquer entrada existente paravariablee depois insere a nova. Portanto, substitui o valor junto com todas as restrições dessa configuração. QualquerMIN,MAXou permissão de escrita (READONLY/WRITABLE/CONST/CHANGEABLE_IN_READONLY) definida anteriormente paravariableque você não repetir será descartada.MODIFY SETTINGS variable = value ...faz a mesclagem campo a campo: substitui apenas os campos que você realmente especifica (o valor,MIN,MAXou a permissão de escrita) e mantém os demais campos dessa configuração como estavam.
Exemplos
ALTERAR CONFIGURAÇÕES
MODIFY faz a mesclagem campo a campo, alterar apenas o valor de uma configuração mantém as restrições existentes:
ADD SETTINGS
MODIFY, executar ADD novamente apenas com um valor remove as restrições definidas anteriormente para essa configuração: