Preciso executar CREATE MATERIALIZED VIEW ... WITH DATA
a partir de uma função/procedimento, mas estou obtendo arquivos ERROR: CREATE MATERIALIZED VIEW ... WITH DATA cannot be executed from a function
.
Existe alguma solução alternativa para isso além de fazer uma função retornar o texto da consulta de criação e copiá-lo e colá-lo para executá-lo?
Parece muito bobo, mas suponho que haja uma boa razão por trás disso ... Enfim, alguma solução alternativa para essa limitação?
Estou executando o postgresql 15.
Isso é para garantir atomicidade e consistência das operações. Conforme declarado no comentário do código-fonte , algumas declarações
Como
CREATE MATERIALIZED VIEW ... WITH DATA
faz pelo menos duas coisas: cria uma tabela e a preenche com dados, é possível que tenha um commit interno, daí o erro.