Re: Patch for 8.5, transformationHook - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Patch for 8.5, transformationHook
Date
Msg-id 162867790904180809r27e69f9u3bbf70deabe341fa@mail.gmail.com
Whole thread Raw
In response to Re: Patch for 8.5, transformationHook  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Patch for 8.5, transformationHook  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
2009/4/18 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> 2009/4/11 Tom Lane <tgl@sss.pgh.pa.us>:
>>> No, I was complaining that a hook right there is useless and expensive.
>>> transformExpr() is executed multiple times per query, potentially a very
>>> large number of times per query; so even testing to see if a hook exists
>>> is not a negligible cost.
>
>> I did some tests based on pgbench.
>
> The queries done by pgbench are completely trivial and do not stress
> parser performance.  Even if they did (consider cases likw an IN with a
> few thousand list items), the parser is normally not a bottleneck
> compared to transaction overhead, network round trips, and pgbench
> itself.
>
>> I though about different position of hook, but only in this place the
>> hook is useful (because expressions are recursive).
>
> As I keep saying, a hook there is useless, at least by itself.  You
> have no control over the grammar and no ability to modify what the
> rest of the system understands.

There are lot of things, that should be done with current grammar only
on transformation stage. Currently pg do it now. There are lot of
pseudo functions, that are specially transformed: least, greatest,
coalesce. After hooking we should do some similar work from outer
libraries.

 The only application I can think of is
> to fool with the transformation of FuncCall nodes, which you could do in
> a much lower-overhead way by hooking into transformFuncCall.  Even that
> seems pretty darn marginal for real-world problems.

FuncCall should be. The base what I want is possible via
transformFuncCall. Probably we cannot emulate Oracle's empty string
behave, but it wasn't important :).

regards
Pavel Stehule

>
>                        regards, tom lane
>


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: [PATCH] unalias of ACL_SELECT_FOR_UPDATE
Next
From: Ian Barwick
Date:
Subject: 8.4b1: Query returning results in different order to 8.3