> 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