Re: EXPLAIN doesn't show the actual function expression for FunctionScan

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: EXPLAIN doesn't show the actual function expression for FunctionScan
Date: 2010-08-24 16:06:34
Message-ID: 619.1282665994@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> If you try to put all that on the same line, I think it might get
>> awkwardly long. Perhaps something like:

>> Function Scan on function_name
>> Expression: function_name(function_arg1, function_arg2, ...)

> Yeah, that's what I had in mind, but I'm still fumbling for the right
> label. "Expression" seems a bit too generic.

How about "Function Call"?

A moment's hacking later:

regression=# explain verbose SELECT lv|| op|| rv FROM unnest(ARRAY[
ROW('1.2.2'::semver, '='::text, '1.2.2'::semver),
ROW('1.2.23', '=', '1.2.23')
]) AS f(lv semver, op text, rv semver);
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------
Function Scan on pg_catalog.unnest f (cost=0.00..1.50 rows=100 width=96)
Output: (((lv)::text || op) || (rv)::text)
Function Call: unnest(ARRAY[ROW(('1.2.2'::text)::semver, '='::text, ('1.2.2'::text)::semver), ROW('1.2.23', '=', '1.2.23')])
(3 rows)

Look reasonable?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-08-24 16:27:20 Re: Typing Records
Previous Message Alvaro Herrera 2010-08-24 16:02:03 Re: EXPLAIN doesn't show the actual function expression for FunctionScan