Dear Tom, Thanks for your early response.
An addition: the nastier difference increased by adding an index (it was an essential index for this query): func with param improved from 2700ms to 2300ms func with constant improved from 400ms to 31ms inline query improved from 390ms to 2ms So am I reading correct and it is completely normal and can't be helped? (couldn't have tried 7.4 yet) In case it reveals something: ------------------------------- cut here ------------------------------- SELECT field FROM (SELECT field, sum(something)=0 AS boolvalue FROM (SELECT * FROM subselect1 NATURAL LEFT JOIN subselect2 UNION SELECT * FROM subselect3 NATURAL LEFT JOIN subselect4 ) AS u GROUP BY field) AS t WHERE not boolvalue ORDER BY simple_sql_func_returns_bool(field) DESC LIMIT 1; ------------------------------- cut here ------------------------------- G. ----- Original Message ----- From: "Tom Lane" <[EMAIL PROTECTED]> Sent: Friday, November 14, 2003 9:59 PM > "=?iso-8859-2?B?U1rbQ1MgR+Fib3I=?=" <[EMAIL PROTECTED]> writes: > > I have two SQL function that produce different times and I can't understand > > why. > > The planner often produces different plans when there are constants in > WHERE clauses than when there are variables, because it can get more > accurate ideas of how many rows will be retrieved. > > regards, tom lane > ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]