On Fri, Sep 30, 2011 at 5:23 AM, Vitalii Tymchyshyn <tivv00@xxxxxxxxx> wrote: > Since you are using except and not except all, you are not looking at arrays > with duplicates. > For this case next function what the fastest for me: > > create or replace function array_except2(anyarray,anyarray) returns > anyarray as $$ > select ARRAY( > ( > select r.elements > from ( > (select 1,unnest($1)) > union all > (select 2,unnest($2)) > ) as r (arr, elements) > group by 1 > having min(arr)=max(arr) > )) > $$ language sql strict immutable; Nice! Your version shaved almost a full second off, now 2.5s from 3.4s it was earlier. -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance