• Andres Freund's avatar
    Fix system column accesses in ON CONFLICT ... RETURNING. · ecbdd009
    Andres Freund authored
    After 277cb789 ON CONFLICT ... SET ... RETURNING failed with
    ERROR:  virtual tuple table slot does not have system attributes
    when taking the update path, as the slot used to insert into the
    table (and then process RETURNING) was defined to be a virtual slot in
    that commit. Virtual slots don't support system columns except for
    tableoid and ctid, as the other system columns are AM dependent.
    
    Fix that by using a slot of the table's type. Add tests for system
    column accesses in ON CONFLICT ...  RETURNING.
    
    Reported-By: Roby, bisected to the relevant commit by Jeff Janes
    Author: Andres Freund
    Discussion: https://postgr.es/m/73436355-6432-49B1-92ED-1FE4F7E7E100@finefun.com.au
    Backpatch: 12-, where the bug was introduced in 277cb789
    ecbdd009
update.sql 24 KB