現在、本番データベースでPostgreSQL 9.2を使用しています。PostgreSQL9.4を使用して、新しいRDSインスタンスに移行したいと考えています。ただし、関数を作成する権限が必要ですが、RDSで関数を作成できるのはスーパーユーザーのみであり、私のユーザーにスーパーユーザーとしての権限を付与することはできません。
CREATE FUNCTION crosstab50(text, OUT rownumber integer, OUT c1 text,...)
RETURNS SETOF record
LANGUAGE c
STABLE STRICT
AS '$libdir/tablefunc', 'crosstab';
しかし、復元操作中にこのエラーが発生します。
ERROR: permission denied for language c
RDSでは、任意のC関数をインストールできません。制限された環境です。
crosstab
はtablefunc
拡張の一部です。 CREATE EXTENSION tablefunc
それがホワイトリストに含まれているが、基礎となるC関数が既に読み込まれて承認されている場合でも、新しいバリアントを追加できない場合。