Why cann't simplify stable function in planning phase? - Mailing list pgsql-hackers

From tender wang
Subject Why cann't simplify stable function in planning phase?
Date
Msg-id CAHewXNnndduJQpLH1pGh0W9Xoe-k63vOx6sO9HxPeYSkpZT-tg@mail.gmail.com
Whole thread Raw
Responses Re: Why cann't simplify stable function in planning phase?
Re: Why cann't simplify stable function in planning phase?
List pgsql-hackers
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

pgsql-hackers by date:

Previous
From: o.tselebrovskiy@postgrespro.ru
Date:
Subject: A bug with ExecCheckPermissions
Next
From: "Hayato Kuroda (Fujitsu)"
Date:
Subject: RE: Time delayed LR (WAS Re: logical replication restrictions)