CREATE OR REPLACE FUNCTION md6_add(text) returns text language plperl
as $$
use Digest::MD6; # document dependency explicitly
my $md6 = $_SHARED{md6} ||= Digest::MD6->new;
$md6->add(@_);
return 1;
$$;
CREATE OR REPLACE FUNCTION md6_hex() returns text language plperl
as $$
my $md6 = $_SHARED{md6} or die "md6_add has not been called";
return $md6->hexdigest;
$$;
SELECT count(md6_add(v::text)) from generate_series(1,100000) v;
SELECT md6_hex();
DO 'DB::enable_profile()' language plperl;
CREATE OR REPLACE FUNCTION call_via_spi() returns void language plperl
as $$
$sql = "select count(md6_add(v::text)) from generate_series(1,100000) v";
spi_exec_query($sql);
$$;
SELECT call_via_spi();