"David G. Johnston" <david.g.johnston@xxxxxxxxx> writes: > On Wed, Jul 19, 2017 at 8:53 PM, Guyren Howe <guyren@xxxxxxxxx> wrote: >> Thanks. Seeking greater understanding, why is json_agg(*) not equivalent? > Are you referring to the fact that this provokes an error? > "select json_agg(*) from schemata;" The reason for that is that we interpret foo(*) as a call to a zero-argument aggregate, in order to satisfy the spec's insistence that "count(*)" is the way to invoke the argument-free form of count(). But there's no zero-argument function named json_agg(). I think David's answer was based on interpreting the command as select json_agg(schemata.*) from schemata; but that's something entirely different: it results in passing a single composite-type argument to the function. Yet again different is use of * at top level of a SELECT list. SQL is not the most consistent language in the world to begin with, and some of these notations are things we inherited from Berkeley PostQUEL and didn't want to give up, so it's a bit of a mess :-( regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general