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?