Re: Custom/Foreign-Join-APIs (Re: [v9.5] Custom Plan API)

Поиск
Список
Период
Сортировка
От Kouhei Kaigai
Тема Re: Custom/Foreign-Join-APIs (Re: [v9.5] Custom Plan API)
Дата
Msg-id 9A28C8860F777E439AA12E8AEA7694F8010D5C01@BPXM15GP.gisp.nec.co.jp
обсуждение исходный текст
Ответ на Custom/Foreign-Join-APIs (Re: [v9.5] Custom Plan API)  (Kouhei Kaigai <kaigai@ak.jp.nec.com>)
Список pgsql-hackers
> On Wed, Apr 22, 2015 at 10:48 PM, Kouhei Kaigai <kaigai@ak.jp.nec.com> wrote:
> >> +       else if (scan->scanrelid == 0 &&
> >> +                        (IsA(scan, ForeignScan) || IsA(scan, CustomScan)))
> >> +               varno = INDEX_VAR;
> >>
> >> Suppose scan->scanrelid == 0 but the scan type is something else?  Is
> >> that legal?  Is varno == 0 the correct outcome in that case?
> >>
> > Right now, no other scan type has capability to return a tuples
> > with flexible type/attributes more than static definition.
> > I think it is a valid restriction that only foreign/custom-scan
> > can have scanrelid == 0.
> 
> But the code as you've written it doesn't enforce any such
> restriction.  It just spends CPU cycles testing for a condition which,
> to the best of your knowledge, will never happen.
> 
> If it's really a can't happen condition, how about checking it via an Assert()?
> 
> else if (scan->scanrelid == 0)
> {
>     Assert(IsA(scan, ForeignScan) || IsA(scan, CustomScan));
>     varno = INDEX_VAR;
> }
>
Thanks for your suggestion. I'd like to use this idea on the next patch.

--
NEC Business Creation Division / PG-Strom Project
KaiGai Kohei <kaigai@ak.jp.nec.com>

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

Предыдущее
От: Joel Jacobson
Дата:
Сообщение: Re: PL/pgSQL, RAISE and error context
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: a fast bloat measurement tool (was Re: Measuring relation free space)