Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-27 Thread David Rowley
On 28 April 2016 at 04:08, Robert Haas wrote: > On Tue, Apr 26, 2016 at 11:38 PM, David Rowley >> The patch looks good. The only other thing I thought about was perhaps >> it would be a good idea to re-add the sanity checks in execQual.c. >> Patch for that is attached. >> >> I removed the aggoutpu

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-27 Thread Robert Haas
On Tue, Apr 26, 2016 at 11:38 PM, David Rowley wrote: > On 27 April 2016 at 15:12, Robert Haas wrote: >> On Tue, Apr 26, 2016 at 10:57 PM, David Rowley >> wrote: >>> On 27 April 2016 at 14:30, Robert Haas wrote: On Tue, Apr 26, 2016 at 9:56 PM, Robert Haas wrote: > On Tue, Apr 26, 201

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread David Rowley
On 27 April 2016 at 15:12, Robert Haas wrote: > On Tue, Apr 26, 2016 at 10:57 PM, David Rowley > wrote: >> On 27 April 2016 at 14:30, Robert Haas wrote: >>> On Tue, Apr 26, 2016 at 9:56 PM, Robert Haas wrote: On Tue, Apr 26, 2016 at 9:14 PM, David Rowley wrote: > I'd also have ex

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Robert Haas
On Tue, Apr 26, 2016 at 10:57 PM, David Rowley wrote: > On 27 April 2016 at 14:30, Robert Haas wrote: >> On Tue, Apr 26, 2016 at 9:56 PM, Robert Haas wrote: >>> On Tue, Apr 26, 2016 at 9:14 PM, David Rowley >>> wrote: I'd also have expected the output of both partial nodes to be the s

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Andres Freund
On 2016-04-27 14:57:24 +1200, David Rowley wrote: > "private" is reserved in C++? I understood we want our C code to > compile as C++ too, right? or did I get my wires crossed somewhere? Just headers. Our C code unfortunately is very far away from being C++ compliant. -- Sent via pgsql-hackers

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread David Rowley
On 27 April 2016 at 14:30, Robert Haas wrote: > On Tue, Apr 26, 2016 at 9:56 PM, Robert Haas wrote: >> On Tue, Apr 26, 2016 at 9:14 PM, David Rowley >> wrote: >>> I'd also have expected the output of both partial nodes to be the >>> same, i.e. both prefixed with PARTIAL. Is it intended that they

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Robert Haas
On Tue, Apr 26, 2016 at 9:56 PM, Robert Haas wrote: > On Tue, Apr 26, 2016 at 9:14 PM, David Rowley > wrote: >> I'd also have expected the output of both partial nodes to be the >> same, i.e. both prefixed with PARTIAL. Is it intended that they don't? >> or have I made some other mistake? > > No,

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Robert Haas
On Tue, Apr 26, 2016 at 9:14 PM, David Rowley wrote: > I'd also have expected the output of both partial nodes to be the > same, i.e. both prefixed with PARTIAL. Is it intended that they don't? > or have I made some other mistake? No, that's a defect in the patch. I didn't consider that we need

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread David Rowley
On 27 April 2016 at 12:37, Robert Haas wrote: > On Tue, Apr 26, 2016 at 6:44 PM, David Rowley > wrote: >> On 27 April 2016 at 08:46, Robert Haas wrote: >>> My proposed fix for this issue is attached. Review is welcome; >>> otherwise, I'll just commit this. The output looks like what I >>> sugg

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Robert Haas
On Tue, Apr 26, 2016 at 6:44 PM, David Rowley wrote: > On 27 April 2016 at 08:46, Robert Haas wrote: >> My proposed fix for this issue is attached. Review is welcome; >> otherwise, I'll just commit this. The output looks like what I >> suggested upthread: > > + if (!aggref->aggpartial) > + elog

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread David Rowley
On 27 April 2016 at 08:46, Robert Haas wrote: > My proposed fix for this issue is attached. Review is welcome; > otherwise, I'll just commit this. The output looks like what I > suggested upthread: + if (!aggref->aggpartial) + elog(ERROR, "referenced Aggref is not partial"); I think this is ov

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Tom Lane
Robert Haas writes: > My proposed fix for this issue is attached. Review is welcome; > otherwise, I'll just commit this. The output looks like what I > suggested upthread: I haven't read the patch, but the sample output looks sane. regards, tom lane -- Sent via pgsql

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-26 Thread Robert Haas
On Mon, Apr 25, 2016 at 1:03 PM, Robert Haas wrote: > Yeah, I'd be happy to have more people chime in. I think your example > is interesting, but it doesn't persuade me, because the rule has > always been that EXPLAIN shows the output *columns*, not the output > *rows*. The disappearance of some

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-25 Thread Robert Haas
On Fri, Apr 22, 2016 at 10:11 PM, David Rowley wrote: > The most basic thing I can think of to rationalise my thinking for this is: > > # create table v (v varchar); > # create view v_v as select lower(v) v from v; > # explain verbose select upper(v) from v_v; > QUERY PLAN

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-22 Thread David Rowley
On 23 April 2016 at 13:58, Robert Haas wrote: > On Fri, Apr 22, 2016 at 5:36 PM, David Rowley > wrote: >> I really don't think that we should print FILTER details in a combine >> aggregate node. We'd be claiming to be doing something that we're >> actually not doing. Please see advance_aggregates

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-22 Thread Robert Haas
On Fri, Apr 22, 2016 at 5:36 PM, David Rowley wrote: > I really don't think that we should print FILTER details in a combine > aggregate node. We'd be claiming to be doing something that we're > actually not doing. Please see advance_aggregates() in nodeAgg.c, and > compare that to combine_aggrega

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-22 Thread David Rowley
On 23 April 2016 at 09:19, Robert Haas wrote: > 2. Add a field "bool aggcombine" to args, and set it to true in this > case. When we see that in deparsing, expect the argument list to be > one element long, a TargetEntry containing a Var. Use that to dig out > the partial Aggref to which it poin

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-22 Thread David Rowley
On 23 April 2016 at 06:35, Robert Haas wrote: > 2. You're using the term "combine agg", but as far as the EXPLAIN > ANALYZE output is concerned, that's not a thing. There is > PartialAggregate, Aggregate, and FinalizeAggregate. I think you mean > FinalizeAggregate when you say "combine aggregate

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-22 Thread Robert Haas
On Sun, Apr 17, 2016 at 10:22 AM, Tom Lane wrote: > David Rowley writes: >> On 16 April 2016 at 04:27, Tom Lane wrote: >>> +1 for the latter, if we can do it conveniently. I think exposing >>> the names of the aggregate implementation functions would be very >>> user-unfriendly, as nobody but u

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-22 Thread Robert Haas
On Thu, Apr 21, 2016 at 8:57 PM, David Rowley wrote: > OK, so here's my thoughts. Currently, as mentioned above, I've > included a PARTIAL prefix for partial aggregates. This is > syntactically incorrect for the dumping of views etc, but that should > not matter as partial Aggrefs never come from

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-21 Thread David Rowley
On 21 April 2016 at 17:14, Tom Lane wrote: > David Rowley writes: >> I'd like to admit that I'm a bit confused as to why >> generate_function_name(), when it already knows the funcid, bothers to >> call func_get_detail(), which performs a search for the function based >> on the name and argument

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-20 Thread Tom Lane
David Rowley writes: > I'd like to admit that I'm a bit confused as to why > generate_function_name(), when it already knows the funcid, bothers to > call func_get_detail(), which performs a search for the function based > on the name and argument types, to find the function, most likely with > th

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-20 Thread David Rowley
On 18 April 2016 at 02:22, Tom Lane wrote: > David Rowley writes: >> Note that I've done nothing for the weird schema prefixing problem I >> mentioned. I think I'd need input on the best way to solve this. If >> it's actually a problem. > > It sure looks like a problem to me. Maybe it's only cos

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-20 Thread Robert Haas
On Tue, Apr 19, 2016 at 9:22 PM, Noah Misch wrote: > On Sun, Apr 17, 2016 at 10:22:24AM -0400, Tom Lane wrote: >> David Rowley writes: >> > On 16 April 2016 at 04:27, Tom Lane wrote: >> >> +1 for the latter, if we can do it conveniently. I think exposing >> >> the names of the aggregate impleme

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-19 Thread Noah Misch
On Sun, Apr 17, 2016 at 10:22:24AM -0400, Tom Lane wrote: > David Rowley writes: > > On 16 April 2016 at 04:27, Tom Lane wrote: > >> +1 for the latter, if we can do it conveniently. I think exposing > >> the names of the aggregate implementation functions would be very > >> user-unfriendly, as n

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-17 Thread Tom Lane
David Rowley writes: > On 16 April 2016 at 04:27, Tom Lane wrote: >> +1 for the latter, if we can do it conveniently. I think exposing >> the names of the aggregate implementation functions would be very >> user-unfriendly, as nobody but us hackers knows what those are. > It does not really see

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-17 Thread David Rowley
On 16 April 2016 at 04:27, Tom Lane wrote: > Robert Haas writes: >> I definitely agree that the current output is messed up, but I'm not >> sure your proposed output is much better. I wonder if it shouldn't >> say something like: >> Output: serialfn(transfn(args)) >> for the partial aggregate an

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-15 Thread Tom Lane
Robert Haas writes: > I definitely agree that the current output is messed up, but I'm not > sure your proposed output is much better. I wonder if it shouldn't > say something like: > Output: serialfn(transfn(args)) > for the partial aggregate and > Output: finalfn(combinefn(deserialfn(args))) >

Re: [HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-15 Thread Robert Haas
On Wed, Apr 13, 2016 at 11:03 PM, David Rowley wrote: > There's 2 problems: > > 1) > > I recently noticed that EXPLAIN VERBOSE is a bit bogus when it comes > to parallel aggregates with FILTER (WHERE ...) clauses. > > We get; > > Output: pg_catalog.sum((sum(num) FILTER (WHERE (num > 0 FILTER >

[HACKERS] EXPLAIN VERBOSE with parallel Aggregate

2016-04-13 Thread David Rowley
There's 2 problems: 1) I recently noticed that EXPLAIN VERBOSE is a bit bogus when it comes to parallel aggregates with FILTER (WHERE ...) clauses. We get; Output: pg_catalog.sum((sum(num) FILTER (WHERE (num > 0 FILTER (WHERE (num > 0)) Which is simply a lie, we only filter on the partial

Re: [HACKERS] EXPLAIN VERBOSE vs resjunk output columns

2009-08-21 Thread Greg Stark
On Sat, Aug 22, 2009 at 1:37 AM, Tom Lane wrote: > You can see that from the fact that the estimated row width is > 8 bytes (two integers) ... but tenthous is nowhere to be seen in the > Output: line. +1 for self-consistent output. If we're including their size in "width" then they should be in th

Re: [HACKERS] EXPLAIN VERBOSE vs resjunk output columns

2009-08-21 Thread Stephen Frost
* Tom Lane (t...@sss.pgh.pa.us) wrote: > Currently, explain.c goes out of its way to not print "resjunk" output > columns (those not meant to be seen by the user, such as hidden sort key > columns) in EXPLAIN VERBOSE targetlists. I made 8.4 act that way for > reasons I don't recall at the moment,

[HACKERS] EXPLAIN VERBOSE vs resjunk output columns

2009-08-21 Thread Tom Lane
Currently, explain.c goes out of its way to not print "resjunk" output columns (those not meant to be seen by the user, such as hidden sort key columns) in EXPLAIN VERBOSE targetlists. I made 8.4 act that way for reasons I don't recall at the moment, but I've found several times now that it's misl

Re: [HACKERS] EXPLAIN verbose?

2006-05-11 Thread Qingqing Zhou
"Cristiano Duarte" <[EMAIL PROTECTED]> wrote > Does anyone know how to discover the tables (with schemas or oid) > involved > on a select statement? > I tried EXPLAIN but it only reports the table names, not schemas or > oid. > In general, this is a pretty difficult problem - thinking you may d

[HACKERS] EXPLAIN verbose?

2006-05-09 Thread Cristiano Duarte
Does anyone know how to discover the tables (with schemas or oid) involved on a select statement? I tried EXPLAIN but it only reports the table names, not schemas or oid. I am developing a SNAPSHOT project for PostgreSQL called Pg::snapshots. It can be found here: http://cunha17.theicy.net/person