Note that the first (working) case only returns columns a and b from table x. It would appear that table qualifiers are not permitted and that the columns must exist in the updated table (though returning a correlated scalar subquery result seems to work). However only columns from the table being updated are visible to the correlate.