関数に対するRENAME FUNCTIONリクエストは、すべてのデータベースおよびユーザーの間で、その関数がどの列のデータの圧縮と圧縮解除にも使用されていない場合のみ有効です。この制限があるのは、次のような理由からです。列はある特定のアルゴリズムを使用してすでに圧縮されており、そのアルゴリズムにはコンテキストが格納されています。したがって、アルゴリズム名が変更されると、列を圧縮解除できなくなってしまいます。
次の例を考えてみましょう。アルゴリズム圧縮関数とアルゴリズム圧縮解除関数、およびそれらを使用するテーブルが、示した順に作成されるとします。
CREATE FUNCTION scsu_comp …; CREATE FUNCTION scsu_decomp …; CREATE TABLE t1 ( col1 INTEGER, col2 CHAR(10) COMPRESS ('abc', 'efg') COMPRESS USING scsu_comp DECOMPRESS USING scsu_decomp);
テーブルt1の列col2は、アルゴリズム圧縮関連のUDFであるscsu_comp(圧縮用)およびscsu_decomp(圧縮解除用)を参照します。
テーブルt1の作成後、scsu_compまたはscsu_decompのどちらかに対してRENAME FUNCTIONリクエストを実行すると、リクエスト側にエラーが返されます。