Erro ao definir n_distinct usando uma variável plpgsql
Tentei usar uma função para definir o valor n_distinct para uma tabela. O código é o seguinte:
create temporary table _temp
(
id integer
);
create function pg_temp.setdistinct(_cnt real)
returns void as $
begin
alter table _temp
alter column id set (n_distinct=_cnt);
end
$ language plpgsql;
select pg_temp.setdistinct(1000);
No entanto, receba os seguintes erros:
ERROR: invalid value for floating point option "n_distinct": _cnt
CONTEXT: SQL statement "alter table _temp
alter column id set (n_distinct=_cnt)"
PL/pgSQL function pg_temp_3.setdistinct(real) line 3 at SQL statement
O problema pode ser contornado usando umEXECUTE
, mas gostaria de saber por que não podemos usar uma variável nessa consulta específica. Existe alguma regra em particular que eu negligenciei?