Extension to rewrite queries before execution

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Extension to rewrite queries before execution
Date: 2015-08-13 19:49:17
Message-ID: CAMkU=1zhqfwU5cxvWeqX5DM67+u64z2_mwNETEBMarDn7ZrWGA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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.

Thanks,

Jeff

Responses

Browse pgsql-general by date

  From Date Subject
Next Message twoflower 2015-08-13 20:33:36 Re: SELECT blocks UPDATE
Previous Message Melvin Davidson 2015-08-13 17:39:31 Re: I am unable to install PostgreSql