Re: Skipping PgStat_FunctionCallUsage for many expressions

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Skipping PgStat_FunctionCallUsage for many expressions
Date: 2016-11-26 16:41:28
Message-ID: 5A05A520-F872-4AB9-B1BC-00D6147F577C@anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On November 26, 2016 8:06:26 AM PST, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> On Fri, Nov 25, 2016 at 11:12 PM, Andres Freund <andres(at)anarazel(dot)de>
>wrote:
>>> while working on my faster expression evaluation stuff I noticed
>that a
>>> lot of expression types that call functions don't call the necessary
>>> functions to make track_functions work.
>>>
>>> ExecEvalFunc/ExecEvalOper (via ExecMakeFunctionResultNoSets) call
>>> pgstat_init_function_usage/pgstat_end_function_usage, but others
>like
>>> ExecEvalRowCompare, ExecEvalMinMax, ExecEvalNullIf,
>ExecEvalDistinct,
>>> ExecEvalScalarArrayOp (and indirectly ExecEvalArrayCoerceExpr)
>don't.
>>>
>>> Similarly InvokeFunctionExecuteHook isn't used very thoroughly.
>>>
>>> Are these worth fixing? I suspect yes. If so, do we want to
>backpatch?
>
>Those don't call functions, they call operators. Yes, I know that an
>operator has a function underlying it, but the user-level expectation
>for
>track_functions is that what it counts are things that look
>syntactically
>like function calls. I'm not eager to add tracking overhead for cases
>that there's been exactly zero field demand for.

But we do track for OpExprs? Otherwise I'd agree.

Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2016-11-26 18:51:17 Re: [sqlsmith] Failed assertion in TS_phrase_execute
Previous Message Tom Lane 2016-11-26 16:25:14 Wrong order of tests in findDependentObjects()