From: | "jg" <jg(at)rilk(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Coalesce bug ? |
Date: | 2012-12-21 15:03:37 |
Message-ID: | 4974-50d47a80-11-6b8b4580@118860037 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
In PostgreSQL 9.2, I have the following behavior, and I found it strange.
ps3 is executed or "never executed" ? !!!
JG
[postgres(at)]test=# create or replace function ps3(a int) returns int as $$ BEGIN
RAISE WARNING 'Call ps3(%)=%',$1,$1; RETURN $1::int;
END; $$ LANGUAGE plpgsql STRICT IMMUTABLE;
CREATE FUNCTION
Temps : 22,632 ms
[postgres(at)]test=# select coalesce( (select ps3(1)), (SELECT ps3(2)) );
WARNING: Call ps3(1)=1
WARNING: Call ps3(2)=2
coalesce
----------
1
(1 ligne)
Temps : 0,692 ms
[postgres(at)]test=# select coalesce( ps3(1), ps3(2) );
WARNING: Call ps3(1)=1
coalesce
----------
1
(1 ligne)
Temps : 0,441 ms
[postgres(at)]test=# explain (analyze, verbose, buffers) select coalesce( (select ps3(1)), (SELECT ps3(2)) );
WARNING: Call ps3(1)=1
WARNING: Call ps3(2)=2
QUERY PLAN
--------------------------------------------------------------------------------------------
Result (cost=0.02..0.03 rows=1 width=0) (actual time=0.006..0.006 rows=1 loops=1)
Output: COALESCE($0, $1)
InitPlan 1 (returns $0)
-> Result (cost=0.00..0.01 rows=1 width=0) (actual time=0.001..0.001 rows=1 loops=1)
Output: 1
InitPlan 2 (returns $1)
-> Result (cost=0.00..0.01 rows=1 width=0) (never executed)
Output: 2
Total runtime: 0.024 ms
(9 lignes)
Temps : 0,819 ms
From | Date | Subject | |
---|---|---|---|
Next Message | Denis Papathanasiou | 2012-12-21 15:24:54 | Re: Using POSIX Regular Expressions on xml type fields gives inconsistent results |
Previous Message | jg | 2012-12-21 14:55:58 | Heavy Function Optimisation |