Re: pre-MED - Mailing list pgsql-hackers

From David Fetter
Subject Re: pre-MED
Date
Msg-id 20081031144852.GF15545@fetter.org
Whole thread Raw
In response to pre-MED  (David Fetter <david@fetter.org>)
Responses Re: pre-MED
Re: pre-MED
Re: pre-MED
List pgsql-hackers
On Wed, Oct 29, 2008 at 09:40:00AM -0700, David Fetter wrote:
> Folks,
>
> Please find enclosed a WIP patch to add the ability for functions to
> see the qualifiers of the query in which they're called.  It's not
> working just yet, and I'm not sure how best to get it working, but I'd
> like to see this as part of 8.4, as SQL/MED is just way too ambitious
> given the time frame.
>
> Any tips, hints, pointers, etc. would be much appreciated.
>
> Also, PL/Perl shouldn't be the only language to have this capability.
> How might we add similar capabilities to PL/PythonU and PL/Tcl?  To
> the rest of the PLs?  Would it make any sense to have it in SQL
> language functions?

Please find attached a patch which works in PL/Perl, the work having
been done by Andrew (RhodiumToad) Gierth.  It's not clear to me how
this would be generally surface-able to SQL, though.  Any ideas?

CREATE OR REPLACE FUNCTION show_qual()
RETURNS TEXT
LANGUAGE plperl
AS $$
return $_QUAL->{qual_string};
$$;

postgres=# SELECT * FROM show_qual() s(a) where a like '%';
a
------------------
(a ~~ '%'::text)

However, there are little lacunæ like this:

SELECT * FROM show_qual() s(a)
WHERE A NOT IN (
    SELECT 'foo' UNION ALL SELECT 'bar'
);
a
------------------------
(NOT (hashed subplan))

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
Skype: davidfetter      XMPP: david.fetter@gmail.com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: PG_PAGE_LAYOUT_VERSION 5 - time for change
Next
From: "Nikhil Sontakke"
Date:
Subject: Re: Fwd: [PATCHES] Auto Partitioning Patch - WIP version 1