> Speaking as somebody who sometimes does really dumb things, I don’t like > this change in error message. The current message clearly identifies the > problem; the new message makes it look like there is a bug in Postgres.
Neither message would be reachable without (erroneous) C hacking, so I don't quite buy that there's a problem.
OK, I must have misunderstood. I had the impression that we were talking about just writing a query which used an aggregate function where a normal function was needed, but on closer consideration I see I had it wrong. For example:
odyssey=> select * from uw_term where count(*) = 1;
ERROR: aggregate functions are not allowed in WHERE
LINE 1: select * from uw_term where count(*) = 1;
^
odyssey=>
But this is a different error message, and thinking about it putting an aggregate in the SELECT will end up using it as an aggregate (e.g. SELECT count(*) FROM ...).
I agree that C hackers need to know what they’re doing ;-)