Simon Riggs <simon@2ndquadrant.com> writes:
> 1. Why doesn't the subselect work?
Because x = ANY (SELECT y FROM ...) is defined by the SQL standard to
involve performing x = y at each row of the SELECT output. There's
no wiggle room there.
The standard does not specify any meaning for x = ANY (not-a-SELECT)
and we've shoehorned some array behavior into that gap, but it's
completely different semantics.
> 2. Why does a function returning a polymorphic type have to have at
> least one polymorphic argument?
So that the parser can figure out what type a particular call is
supposed to return.
> 3. Why is a composite type with just one attribute not the same type as
> the attribute?
Why in the world would you expect these to be the same? It'd be akin to
claiming that a one-element array is the same as the element type.
regards, tom lane