Thread: T_CustomScan on ExplainTargetRel

T_CustomScan on ExplainTargetRel

From
Kouhei Kaigai
Date:
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>


Attachment

Re: T_CustomScan on ExplainTargetRel

From
Kouhei Kaigai
Date:
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>




Re: T_CustomScan on ExplainTargetRel

From
Tom Lane
Date:
Kouhei Kaigai <kaigai@ak.jp.nec.com> writes:
> The attached obvious patch adds T_CustomScan on case-switch of
> ExplainTargetRel() that was oversight.

Applied, thanks.
        regards, tom lane