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?

questionAnswers(1)

yourAnswerToTheQuestion