Re: Doubt about boundParams

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Doubt about boundParams
Дата
Msg-id 4E37CE54.4060703@enterprisedb.com
обсуждение исходный текст
Ответ на Doubt about boundParams  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Ответы Re: Doubt about boundParams  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
Список pgsql-hackers
On 02.08.2011 12:54, Ashutosh Bapat wrote:
> Hi All,
> I am looking at usage of bound parameters.
>
> In functions SPI_cursor_open_with_args() and SPI_cursor_open_with_args()
> parameters are flagged as constants and passed to the planner in following
> manner,
> paramLI = _SPI_convert_params(nargs, argtypes,
>                                     Values, Nulls,
>                                     PARAM_FLAG_CONST);
>
>   _SPI_prepare_plan(src,&plan, paramLI);
>
> The bound params "paramLI" are then passed to the planner as boundParams.
> Before actually planning the query, these parameters are evaluated duing
> constant evaluation (eval_const_expressions_mutator()), and the Param nodes
> are replaced with Constant nodes.
> Further, while executing such queries we pass the paramLI structure to the
> execution routine e.g. _SPI_execute_plan(). These parameter values are
> stored in "EState" structure. But, since these parameters are already folded
> into queries, it looks like parameter values stored in EState are never
> used.
>
> Is this correct? Or somewhere we use those parameter values?

That is correct, at the moment. PARAM_FLAG_CONST means that the planner 
is free evaluate the params during planning, but it doesn't have to. You 
still need to pass the params in _SPI_execute_plan() in case the planner 
decided to not convert some params to Consts, even though as the code 
stands today it always will.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Ashutosh Bapat
Дата:
Сообщение: Doubt about boundParams
Следующее
От: Ashutosh Bapat
Дата:
Сообщение: Re: Doubt about boundParams