On Sun, Jun 26, 2016 at 4:25 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > I noticed that the EXPLAIN code is set up so that in non-text output > modes, you get output like this for partial-aggregate plans: > > "Node Type": "Aggregate", + > "Strategy": "Plain", + > "Operation": "Finalize", + > ... > "Node Type": "Aggregate", + > "Strategy": "Plain", + > "Operation": "Partial", + > > That is, the "Operation" field type has been commandeered to indicate > partial-aggregation cases. This seems like a pretty bad idea to me, > for two reasons: > > 1. In other plan node types, "Operation" refers to SQL-visible semantics, > in fact always Select/Insert/Update/Delete. Re-using it for an > implementation detail doesn't seem very consistent. > > 2. As coded, the field is not printed at all for a non-partial aggregate > node. This is just wrong. A given node type should have a fixed set of > attributes. > > I think we should use some other field name, maybe "Step" or > "PartialMode", and have "Simple" or "Plain" as the default field > contents. It's also arguable that this field should distinguish all the > values of the AggSplit enum we just invented, though I'm not sure how > important it is to report serialization options. I'm not wedded to any > particular ideas here, other than that omitting the field in the simple > case is bad. > > Comments, naming ideas?
Simple sounds better than Plain, as between the two of them, because Plain already means something with respect to aggregates. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers