| From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
|---|---|
| To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | IMMUTABLE break inlining simple SQL functions. |
| Date: | 2009-08-02 12:25:12 |
| Message-ID: | 162867790908020525q102b4b91o1d7110f49824ecb6@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello
I though, so simple SQL functions should be inlined everywhere. When I
tested sample for recent discussion, I found so immutable flag breaks
inlining.
Is it bug?
postgres=# create or replace function foo(a int) returns int as $$
select $1+1$$ language sql STRICT IMMUTABLE;
CREATE FUNCTION
Time: 2,723 ms
postgres=# SELECT * FROM pg_stat_user_functions ;
funcid | schemaname | funcname | calls | total_time | self_time
--------+------------+----------+-------+------------+-----------
16450 | public | foo | 3 | 0 | 0
(1 row)
postgres=# SELECT foo(10);
foo
-----
11
(1 row)
funcid | schemaname | funcname | calls | total_time | self_time
--------+------------+----------+-------+------------+-----------
16450 | public | foo | 4 | 0 | 0
(1 row)
postgres=# create or replace function foo(a int) returns int as $$
select $1+1$$ language sql STRICT;
CREATE FUNCTION
Time: 3,716 ms
postgres=# SELECT foo(11);
foo
-----
12
(1 row)
Time: 1,611 ms
postgres=# SELECT * FROM pg_stat_user_functions ; funcid | schemaname
| funcname | calls | total_time | self_time
--------+------------+----------+-------+------------+-----------
16450 | public | foo | 4 | 0 | 0
(1 row)
regards
Pavel Stehule
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2009-08-02 15:31:55 | Re: ALTER TABLE ... ALTER COLUMN ... SET DISTINCT |
| Previous Message | Joe Conway | 2009-08-02 01:29:55 | Re: [PATCH] Implement (and document, and test) has_sequence_privilege() |