My tests seem to confirm that
INSERT INTO a (x, y) SELECT y, x FROM b
maps b.y
to a.x
, i.e., the fields are matched only by ordinal position and not by name. Is this always the case, i.e., can I rely on that behaviour? Unfortunately, the documentation does not specify this (or I didn't find it).