Eu tenho uma tabela PostgreSQL 13 bastante grande que preciso adicionar uma nova TEXT
coluna e com esta nova coluna gostaria de adicionar uma GENERATED ALWAYS
coluna com a seguinte definição:
ALTER TABLE my_table
ADD COLUMN text_col TEXT,
ADD COLUMN text_col__tsvector GENERATED ALWAYS AS (to_tsvector('pt_unaccent', "text_col")) STORED;
No entanto, quando executo o DDL acima, demora muito para ser concluído. Pelo que entendi, é porque é text_col__tsvector
necessário executar a expressão para todas as linhas da tabela, mesmo que text_col
seja NULL
.
Minha dúvida é: sabendo que a text_col
coluna sempre começará como NULL
(nenhum valor padrão está definido) existe uma maneira de fazer o postgres pular a parte da primeira geração na criação do text_col__tsvector
? Ou alterar a parte da expressão ( to_tsvector('pt_unaccent', "text_col")
) da GENERATED ALWAYS
coluna para ignorar NULL
valores?