この例は、UDFテーブルでのHASH BY句の使用を示します。テーブル関数add2intは、入力として2つの整数値を取り、それら両方の値と合計を返します。
この例の問合わせは、add2intからすべての列を選択します。add2intでは、その入力であるdtがdt.y1でハッシュされることを指定しています。指定したハッシュ法はadd2int関数に適していない可能性があり、説明目的にのみ使用されます。
予測される問合わせの処理として、最初にdtがスプールされ、AMP間にy1でハッシュされます。最終的にハッシュされたスプールが、add2intへの入力として使用されます。
CREATE TABLE t1 ( a1 INTEGER, b1 INTEGER); CREATE TABLE t2 ( a2 INTEGER, b2 INTEGER); CREATE FUNCTION add2int ( a INTEGER, b INTEGER) RETURNS TABLE ( addend1 INTEGER, addend2 INTEGER, mysum INTEGER) SPECIFIC add2int LANGUAGE C NO SQL PARAMETER STYLE SQL NOT DETERMINISTIC CALLED ON NULL INPUT EXTERNAL NAME 'CS!add3int!add2int.c'; WITH dt(x1,y1) AS (SELECT a1,b1 FROM t1) SELECT * FROM TABLE (add2int(dt.x1,dt.y1) HASH BY y1) AS aa;