From: | "John D(dot) Burger" <john(at)mitre(dot)org> |
---|---|
To: | PostgreSQL general <pgsql-general(at)postgresql(dot)org> |
Subject: | SQL function inlining |
Date: | 2006-10-20 01:31:22 |
Message-ID: | 952C7930-9190-4AC8-B657-CA8D809F45B9@mitre.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I'm having trouble figuring out when (if) the planner inlines sql
functions (I'm running 7.4). I was assuming that pure sql functions
are kind of like views with parameters, but I can't seem to see any
cases where functions that select from a table get inlined. For
instance:
create function login_count (integer) returns bigint
language sql stable as
'select count(*) from logins where user_id = $1;';
# explain select user_id, login_count(user_id) from users;
QUERY PLAN
--------------------------------------------------------------
Seq Scan on users (cost=0.00..15418.36 rows=480189 width=4)
I'd hoped this would turn into a join on the logins and users tables,
but no joy. Are there any circumstances (in 7.4) where such
functions get inlined?
Thanks.
- John Burger
MITRE
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-10-20 01:41:28 | Re: SQL function inlining |
Previous Message | Jeff Davis | 2006-10-20 00:26:04 | Re: Some newbie question |