I made this function: CREATE OR REPLACE FUNCTION test_fun() RETURNS void LANGUAGE SQL BEGIN ATOMIC MERGE INTO target USING source s on s.id = target.id WHEN MATCHED THEN UPDATE SET data = s.data WHEN NOT MATCHED THEN INSERT VALUES (s.id, s.data); end;
It appears to work fine, but: regression=# \sf+ test_fun() ERROR: unrecognized query command type: 5 and it also breaks pg_dump. Somebody screwed up pretty badly here. Is there any hope of fixing it for Monday's releases? (I'd guess that decompiling the WHEN clause would take a nontrivial amount of new code, so maybe fixing it on such short notice is impractical. But ugh.) regards, tom lane