Re: Foreign Data Wrapper

From: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>
To: Big Mike <newoculus(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Foreign Data Wrapper
Date: 2015-11-13 19:24:18
Message-ID: CADkLM=eH2ohfOSjTeLVV+LjQcdTrRxS6b65FF-QP628WBcE4LQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Nov 13, 2015 at 1:46 PM, Big Mike <newoculus(at)gmail(dot)com> wrote:

> Writing a Foreign Data Wrapper and interested in isolating the WHERE
> clause to speed up the access of an indexed file on my filesystem. I'm
> attempting to understand the inner workings of how the data is retrieved so
> I'm writing code to just handle one case at the moment: WHERE clause on a
> single column in the foreign 'table'.
>
> SELECT * FROM t WHERE testval = 1
>
> I have this code so far, an implementation of the IterateForeignScan
> interface.
>
> static TupleTableSlot *
> bIterateForeignScan(ForeignScanState *node) {
> ...
> RestrictInfo *rinfo = (RestrictInfo *)node->ss.ps.qual;
> ...
> }
>
> yet am not familiar with what I need to do to pick apart RestrictInfo in
> order to gather 'testvar', '=', and '1' separately so I can interpret and
> pass those through to my file parser.
>
> Am I going about this the correct way or is there another path I should
> follow?
>

I would look at http://multicorn.org/ which gives you a working python
framework. You subclass their ForeignDataWrapper class, override the
__init__() and execute() functions, and that's about it. The execute()
function has a list called quals that would set you up for the filtering
you want to do.

I would get the foreign data wrapper fully debugged this way before
attempting to refactor in C. And when you do finally re-code, you can see
what multicorn itself did to implement your filters.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2015-11-13 19:42:55 Re: Freeze avoidance of very large table.
Previous Message Big Mike 2015-11-13 18:46:21 Foreign Data Wrapper