Ошибка при установке 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 заявление, но мне интересно, почему мы не можем использовать переменную в этом конкретном запросе. Есть ли какое-то конкретное правило, которое я упустил?

Ответы на вопрос(1)

Ваш ответ на вопрос