From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | Melvin Davidson <melvin6925(at)gmail(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Extension to rewrite queries before execution |
Date: | 2015-08-14 15:53:34 |
Message-ID: | CAMkU=1yBa260ar_ZYJkVyYZ2Gq9k9YpNCO054i-OG3Zs9wvTDg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> On Thu, Aug 13, 2015 at 1:37 PM, Melvin Davidson <melvin6925(at)gmail(dot)com>
wrote:
> On Thu, Aug 13, 2015 at 3:49 PM, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
>
>> I am looking for an extension or a technique that will allow me to
>> intercept a query by the exact query text, and replace that query with a
>> different one.
>>
>> The context is running a third-party app which issues queries I have no
>> control over. I'd like to intercept a specific query (which has no bind
>> parameters) and either replace the query text with a different text which,
>> for example, swaps out an "in list" clause to instead be an "exists
>> (subquery)".
>>
>> Or just wrap the query in a "set enable_* =off;" or "set work_mem=*;"
>> before and a reset of it after.
>>
>> Is there anything out there like this? This would be for 9.4.
>>
>> I'm willing to put the query text, and its replacement, directly into the
>> extension source code and compile it, but of course something more flexible
>> would be ideal.
>>
>>
You have not stated which Version or PostgreSQL, nor the O/S involved. That
> being said, depending on what the specific query is, you might consider
> using a Rule or Trigger to handle it. If you use a Trigger ( which is the
> preferred method) you can also embed "set" commands the associated function.
>
Sure I did, 9.4. OS would be Linux, although I would hope a solution would
be work. If you mean the built-in-to-core rules or triggers, those
wouldn't work. Neither one allows you to rewrite a where clause as far as
I can tell. Rules allows you add one, but not more than that. And
triggers don't exists for select queries.
Cheers,
Jeff
From | Date | Subject | |
---|---|---|---|
Next Message | Michael H | 2015-08-14 15:55:55 | stack depth |
Previous Message | Tom Lane | 2015-08-14 15:00:59 | Re: Count of non-null values per table column |