optimizer in function

2011-10-08 Thread Hal�sz S�ndor
Does the optimizer look into function called from query?

In my queries the expression (SELECT hwyl FROM Stock) / (SELECT regularPayment 
FROM Stock), where Stock is a one-record table, often is repeated. The 
optimizer sees that, and makes the ratio a constant, and I can afford to be 
clear. If that expression were within a function called from the same spot, 
would the optimizer look into the function and see the same effectiv constant? 
or is it better to make it an argument to the function?


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: optimizer in function

2011-10-08 Thread Michael Dykman
I think the only clues the optimizer consults with regard to UDFs is the
'characteristic' provided at the time you create the routine.

from http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html
*

*

*characteristic*:
COMMENT '*string*'
  | LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }


 - michael dykman
2011/10/8 Halász Sándor h...@tbbs.net

 Does the optimizer look into function called from query?

 In my queries the expression (SELECT hwyl FROM Stock) / (SELECT
 regularPayment FROM Stock), where Stock is a one-record table, often is
 repeated. The optimizer sees that, and makes the ratio a constant, and I can
 afford to be clear. If that expression were within a function called from
 the same spot, would the optimizer look into the function and see the same
 effectiv constant? or is it better to make it an argument to the function?


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/mysql?unsub=mdyk...@gmail.com




-- 
 - michael dykman
 - mdyk...@gmail.com

 May the Source be with you.