> 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. I don't know if you are interested in using other than extensions, but you could do it by hacking pgpool-II. It has built-in raw parser with some functions to walk through the tree such as raw_expression_tree_walker(). Also you could do the rewriting only for particular applications (of course only if the application set application name). Best regards, -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese:http://www.sraoss.co.jp -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general