REPLACE FUNCTIONとアルゴリズム圧縮 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

すべてのデータベースおよびユーザーのどの列でも、データを圧縮および圧縮解除するためにその圧縮関連の関数を使用していない場合のみ、REPLACE FUNCTIONリクエストを実行することができます。列のデータが決まったアルゴリズムを使用してすでに圧縮されていると、そのアルゴリズムが変更された場合は圧縮解除できないため、このような制限が必要になります。

ただし、このルールには唯一の例外があり、データ ディクショナリで既存の関数の仕様を変更することがなく、その実行モードがPROTECTEDである場合には、アルゴリズム圧縮に対するREPLACE FUNCTIONリクエストが有効です。

たとえば、オブジェクトが次のような順序で作成されているDDLリクエストについて考えてみましょう。

     CREATE FUNCTION scsu_comp …;
     CREATE FUNCTION scsu_decomp …;
     CREATE TABLE t1 (
       col_1 INTEGER,
       col_2 CHARACTER(10) COMPRESS ('abc', 'efg')
                           COMPRESS USING scsu_comp
                           DECOMPRESS USING scsu_decomp);

テーブルt1の列col_2は、それぞれアルゴリズム圧縮および圧縮解除のUDFscsu_compおよびscsu_decompを参照します。

テーブルt1が作成されると、scsu_compまたはscsu_decompの任意のに対するREPLACE FUNCTIONリクエストは、リクエスト側にエラーを返します。例外条件に早期に気付いている、という前提は、十分なものではありません。