Ошибка при установке n_distinct с использованием переменной plpgsql
Я попытался использовать функцию, чтобы установить значение n_distinct для таблицы. Код выглядит следующим образом:
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);
Пока что получаю следующие ошибки:
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
Проблема может быть обойдена с помощьюEXECUTE
заявление, но мне интересно, почему мы не можем использовать переменную в этом конкретном запросе. Есть ли какое-то конкретное правило, которое я упустил?