BTW, I published the 'ctidscan' module below as an example of custom-scan.
https://github.com/kaigai/ctidscan
--
NEC OSS Promotion Center / PG-Strom Project
KaiGai Kohei <kaigai@ak.jp.nec.com>
> -----Original Message-----
> From: pgsql-hackers-owner@postgresql.org
> [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Kouhei Kaigai
> Sent: Thursday, November 20, 2014 3:42 PM
> To: pgsql-hackers@postgresql.org
> Subject: [HACKERS] T_CustomScan on ExplainTargetRel
>
> Hello,
>
> The attached obvious patch adds T_CustomScan on case-switch of
> ExplainTargetRel() that was oversight.
>
> It looked like working, but what it did was just printing referenced name,
> instead of table name.
>
> postgres=# explain select ctid, * from t0 hoge where ctid > '(50,0)'::tid;
> QUERY PLAN
> ----------------------------------------------------------------------
> --
> Custom Scan (ctidscan) on hoge (cost=0.00..100.00 rows=3333 width=43)
> Filter: (ctid > '(50,0)'::tid)
> ctid quals: (ctid > '(50,0)'::tid)
> (3 rows)
>
> This patch fixes up this behavior, as like other *Scan nodes are doing.
>
> postgres=# explain select ctid, * from t0 hoge where ctid > '(50,0)'::tid;
> QUERY PLAN
> -------------------------------------------------------------
> Seq Scan on t0 hoge (cost=0.00..209.00 rows=3333 width=43)
> Filter: (ctid > '(50,0)'::tid)
> (2 rows)
>
> Thanks,
> --
> NEC OSS Promotion Center / PG-Strom Project KaiGai Kohei
> <kaigai@ak.jp.nec.com>