web-dev-qa-db-ja.com

RDSクロス集計:エラー:言語cの権限が拒否されました

現在、本番データベースで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
4
Valter Silva

RDSでは、任意のC関数をインストールできません。制限された環境です。

crosstabtablefunc拡張の一部です。 CREATE EXTENSION tablefuncそれがホワイトリストに含まれているが、基礎となるC関数が既に読み込まれて承認されている場合でも、新しいバリアントを追加できない場合。

4
Craig Ringer