CREATE OR REPLACE FUNCTION public.getsqlcost(p_sql text) RETURNS numeric AS
$BODY$
DECLARE
v varchar;
BEGIN
-- Result (cost=0.00..0.01 rows=1 width=0)
EXECUTE 'EXPLAIN ' || p_sql INTO v;
RETURN CAST(split_part(TRIM(SUBSTRING(upper(v) FROM 'COST=(.+) ROWS')), '..', 2) AS numeric);
END;
$BODY$
LANGUAGE plpgsql;
SELECT * FROM getsqlcost('SELECT clock_timestamp()');