Error al configurar n_distinct usando una variable plpgsql

Intenté usar una función para establecer el valor n_distinct para una tabla. El código es el siguiente:

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);

Sin embargo, reciba los siguientes errores:

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

El problema puede saltarse usando unEXECUTE , pero me pregunto por qué no podemos usar una variable en esta consulta en particular. ¿Hay alguna regla en particular que haya pasado por alto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta