Re: New hook after raw parsing, before analyze

From: Kohei KaiGai <kaigai(at)kaigai(dot)gr(dot)jp>
To: David Beck <dbeck(at)starschema(dot)net>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: New hook after raw parsing, before analyze
Date: 2014-02-13 12:28:34
Message-ID: CADyhKSU5CtqvaOgva8VB2hHNJBSVB4Nzb_thKJgSN4Q+RJ3gHg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

See the discussion of Custom-Scan API.
https://commitfest.postgresql.org/action/patch_view?id=1282

I believe my third patch is what you really want to do...

> This rewritten query would be handled by the FDW table that I previously added to the catalog.
>
> The reason I want this new hook is that I don't want tableA and tableB to be in the catalog.
>
I'd like to see why you wants the pseudo table "fdw_tableA_tableB" to
be in the catalog,
instead of the "tableA" and "tableB". In addition, parser shall raise
an error if referenced
columns (as a part of "tableA" or "tableB") are not in-catalog because
of name lookup
error.

Thanks,

2014-02-13 19:01 GMT+09:00 David Beck <dbeck(at)starschema(dot)net>:
> Hello Hackers,
>
> I work on a foreign data wrapper for a legacy system. I generally find the hook system very useful and flexible way to extend Postgres.
> The post parse analyze hook almost fits what I need, but I have a few use cases where I would need to tap right into the parsed queries but before any catalog based validation is done.
> Please find the attached trivial patch for this new hook.
>
> One of the use cases I have is this:
>
> I have table like data structures in the source system for the FDW I work on.
> These tables are sometimes too big and the source system is able to filter and join them with limitations, thus it is not optimal to transfer the data to Postgres.
> At the same time I want the users to think in terms of the original tables.
>
> The idea is to rewrite the SQL queries like this:
>
> "SELECT * FROM tableA a, tableB b WHERE a.id=b.id AND a.col1=1234 AND b.col2=987"
>
> to:
>
> "SELECT * FROM fdw_tableA_tableB ab WHERE ab.col1=1234 AND ab.col2=987"
>
>
> This rewritten query would be handled by the FDW table that I previously added to the catalog.
>
> The reason I want this new hook is that I don't want tableA and tableB to be in the catalog.
>
> Looking forward to hear your thoughts, opinions, comments.
>
> Best regards, David
>
>
>
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>

--
KaiGai Kohei <kaigai(at)kaigai(dot)gr(dot)jp>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2014-02-13 12:42:27 Re: [BUG] Archive recovery failure on 9.3+.
Previous Message KONDO Mitsumasa 2014-02-13 12:28:04 Re: gaussian distribution pgbench