patch: plpgsql - remove unnecessary ccache search when a array variable is updated - Mailing list pgsql-hackers

From Pavel Stehule
Subject patch: plpgsql - remove unnecessary ccache search when a array variable is updated
Date
Msg-id BANLkTik4Cms2TFM5_V9ADNatTo0efVwi1A@mail.gmail.com
Whole thread Raw
Responses Re: patch: plpgsql - remove unnecessary ccache search when a array variable is updated
Re: patch: plpgsql - remove unnecessary ccache search when a array variable is updated
List pgsql-hackers
Hello

this patch significantly reduce a ccache searching. On my test - bubble sort

postgres=# \sf buble
CREATE OR REPLACE FUNCTION public.buble(integer[])
 RETURNS integer[]
 LANGUAGE plpgsql
AS $function$
declare
  unsorted bool := true;
  aux int;
begin
  while unsorted
  loop
    unsorted := false;
    for i in array_lower($1,1) .. array_upper($1,1) - 1
    loop
      if $1[i] > $1[i+1] then
        aux := $1[i];
        $1[i] := $1[i+1]; $1[i+1] := aux;
        unsorted := true;
      end if;
    end loop;
  end loop;
  return $1;
end;
$function$ immutable

it decrease evaluation time about 15%.

Regards

Pavel Stehule

p.s. I know so bubble sort is not effective for large arrays. This
algorithm was used because a array is intensive modified.

Attachment

pgsql-hackers by date:

Previous
From: Dan Ports
Date:
Subject: Re: pika buildfarm member failure on isolationCheck tests
Next
From: Vlad Arkhipov
Date:
Subject: date_part for infinity intervals