Bryn Llewellyn <bryn@yugabyte.com> writes:
> Why is the "array()" constructor not found in "pg_proc"?
Because it isn't a function. Yeah, it kind of looks like one,
but its argument is a subquery. If SQL had first-class functions
and closures, maybe ARRAY() could be implemented as an ordinary
function. But I don't see any plausible way to do that as things
stand.
There are a bunch of other things that look like functions but
aren't in pg_proc, too :-(. Most of them are just catering to
the SQL committee's weird allergy to writing functions with
plain function syntax. But ARRAY()'s problem is semantic not
syntactic.
regards, tom lane