Greg Stark wrote:

It would have been awfully nice to do be able to do

SELECT ... FROM (VALUES (a,b,c),(d,e,f),(g,h,i))


The trouble with supporting it for any case other than INSERT is that
you have to work out what the column datatypes of the construct ought
to be.  This is the same as the equivalent problem for UNION constructs,
but the UNION type resolution algorithm looks kinda ugly for thousands
of inputs :-(

I always thought UNION just decided on the type based on the first branch and
then coerced all the others to that type. I always cast all the columns on the
first union branch just in case.


Could we get away with requiring an explicit type expression where there's some abiguity or uncertainty, like this

SELECT ... FROM (VALUES (a,b,c),(d,e,f),(g,h,i)) as (a int, b text, c float)

That's what you have to do with an SRF that returns a SETOF RECORD in the same 
situation, after all.


cheers

andrew

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to