Hi hackers,
In evaluate_function(), I find codes as shown below:
/*
* Ordinarily we are only allowed to simplify immutable functions. But for
* purposes of estimation, we consider it okay to simplify functions that
* are merely stable; the risk that the result might change from planning
* time to execution time is worth taking in preference to not being able
* to estimate the value at all.
*/
if (funcform->provolatile == PROVOLATILE_IMMUTABLE)
/* okay */ ;
else if (context->estimate && funcform->provolatile == PROVOLATILE_STABLE)
/* okay */ ;
else
return NULL;
The codes say that stable function can not be simplified here(e.g. planning phase).
I want to know the reason why stable function can not be simplified in planning phase.
Maybe show me a example that it will be incorrect for a query if simplify stable function in
planning phases.
With kindest regards, tender wang