2011-12-20 14 views
2

大きな整数を扱うための関数はありますか?biginteger配列関数

モジュールintarrayが見つかりましたが、このモジュールの機能はintegerで、bigintでは機能しません。

配列から項目を削除する関数がありません。言及したモジュールでの「マイナス」オペレータの実装ような何か:

int[] - int(配列から右引数に一致するエントリを削除)

+0

配列はPGで不変である、あなたは要求された番号のないコピーを行う必要があります –

答えて

3

改良版と2015を更新しました。
あなた自身の機能を代用することができます。この1は、適度に高速です:

CREATE OR REPLACE FUNCTION arr_subtract(int8[], int8[]) 
    RETURNS int8[] AS 
$func$ 
SELECT ARRAY(
    SELECT a 
    FROM unnest($1) WITH ORDINALITY x(a, ord) 
    WHERE a <> ALL ($2) 
    ORDER BY ord 
    ); 
$func$ LANGUAGE sql IMMUTABLE; 

コール:

SELECT arr_subtract('{3,5,6,7,8,9}':: int8[], '{3,4,8}'::int8[]); 

結果:

{5,6,7,9} 

は、配列の元の順序を保持します。

関連: