Re: Doubt about boundParams

From: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Doubt about boundParams
Date: 2011-08-02 10:53:26
Message-ID: CAFjFpRdwK9AW0SXKKfcu8FgRyv_7=bnLHxDMUZX2f7kc26Cz_A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Aug 2, 2011 at 3:45 PM, Heikki Linnakangas <
heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:

> 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.
>

Ok, thanks.

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

--
Best Wishes,
Ashutosh Bapat
EntepriseDB Corporation
The Enterprise Postgres Company

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2011-08-02 11:03:47 Re: Hot standby and GiST page splits (was Re: WIP: Fast GiST index build)
Previous Message Heikki Linnakangas 2011-08-02 10:15:48 Re: Doubt about boundParams