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: | Raw Message | Whole Thread | 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() |