> On Wed, Apr 22, 2015 at 10:48 PM, Kouhei Kaigai <kai...@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 <kai...@ak.jp.nec.com>

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to