2011-12-20 32 views
2

是否有任何可用於大整數工作的函數?biginteger數組函數

我找到了一個模塊intarray,但是該模塊的功能僅適用於integer,而不是bigint

我想念一個從數組中刪除項目的函數。就像一個「減」運算符提到模塊中實現:

int[] - int(刪除匹配來自陣列右邊的參數項)

+0

陣列是以pg不可改變的,你有沒有申請數字做複製 –

回答

3

更新2015年有更好的版本。
您可以替換自己的功能。這一個是相當快的:

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} 

保持陣列的原始順序。

相關: