Why does this:
create or replace function dummy() returns double precision as $$
SELECT random() $$
LANGUAGE SQL
COST 777;
explain select dummy();
return this:
Result (cost=0.00..0.01 rows=1 width=0)
and not a cost of 777?
functionspostgresqlpostgresql-9.2
Why does this:
create or replace function dummy() returns double precision as $$
SELECT random() $$
LANGUAGE SQL
COST 777;
explain select dummy();
return this:
Result (cost=0.00..0.01 rows=1 width=0)
and not a cost of 777?
Best Answer
I believe the costs refer to different units of measurement. The
cost
when used in functions is the estimated execution cost in units of cpu_operator_cost, whereas theEXPLAIN
plan costs are units of disk page fetches (seq_page_cost).For function cost details, see http://www.postgresql.org/docs/current/static/sql-createfunction.html
For
EXPLAIN
plan costs, see http://www.postgresql.org/docs/current/static/using-explain.html