On 2015/07/10 21:59, David Rowley wrote:
On 10 July 2015 at 21:40, Etsuro Fujita <fujita.ets...@lab.ntt.co.jp
<mailto:fujita.ets...@lab.ntt.co.jp>> wrote:

    To save cycles, I modified create_foreignscan_plan so that it detects
    whether any system columns are requested if scanning a base relation.
    Also, I revised other code there a little bit.

    For ExecInitForeignScan, I simplified the code there to determine the
    scan tuple type, whith seems to me complex beyound necessity.  Maybe
    that might be nitpicking, though.

For the latter, I misunderstood that the latest foreign-join pushdown patch allows fdw_scan_tlist to be set to a targetlist even for simple foreign table scans. Sorry for that, but I have a concern about that. I'd like to mention it in a new thread later.

I just glanced at this and noticed that the method for determining if
there's any system columns could be made a bit nicer.

/* Now, are any system columns requested from rel? */
scan_plan->fsSystemCol = false;
for (i = FirstLowInvalidHeapAttributeNumber + 1; i < 0; i++)
{
if (bms_is_member(i - FirstLowInvalidHeapAttributeNumber, attrs_used))
{
scan_plan->fsSystemCol = true;
break;
}
}

I think could just be written as:
/* Now, are any system columns requested from rel? */
if (!bms_is_empty(attrs_used) &&
bms_next_member(attrs_used, -1) < -FirstLowInvalidHeapAttributeNumber)
scan_plan->fsSystemCol = true;
else
scan_plan->fsSystemCol = false;

I know you didn't change this, but just thought I'd mention it while
there's an opportunity to fix it.

Good catch!

Will update the patch (and drop the ExecInitForeignScan part from the patch).

Sorry for the delay.

Best regards,
Etsuro Fujita


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