I would think that ``` sqlite> insert into x (rowid, x) values (1,10) on conflict (rowid) do update set x = excluded.x returning old.rowid, new.rowid, old.x, new.x, *; ┌───────────┬───────────┬───────┬───────┬────┐ │ old.rowid │ new.rowid │ old.x │ new.x │ x │ ├───────────┼───────────┼───────┼───────┼────┤ │ 1 │ 1 │ 10 │ 10 │ 10 │ └───────────┴───────────┴───────┴───────┴────┘ ``` above should return ``` sqlite> insert into x (rowid, x) values (1,10) on conflict (rowid) do update set x = excluded.x returning old.rowid, new.rowid, old.x, new.x, *; ┌───────────┬───────────┬───────┬───────┬────┐ │ old.rowid │ new.rowid │ old.x │ new.x │ x │ ├───────────┼───────────┼───────┼───────┼────┤ │ 1 │ 1 │ 1 │ 10 │ 10 │ └───────────┴───────────┴───────┴───────┴────┘ ``` and that ``` sqlite> insert into x values (1) returning old.rowid, old.x, new.rowid, new.x, *; ┌───────────┬───────┬───────────┬───────┬───┐ │ old.rowid │ old.x │ new.rowid │ new.x │ x │ ├───────────┼───────┼───────────┼───────┼───┤ │ 2 │ 1 │ 2 │ 1 │ 1 │ └───────────┴───────┴───────────┴───────┴───┘ ``` above should return ``` sqlite> insert into x values (1) returning old.rowid, old.x, new.rowid, new.x, *; ┌───────────┬───────┬───────────┬───────┬───┐ │ old.rowid │ old.x │ new.rowid │ new.x │ x │ ├───────────┼───────┼───────────┼───────┼───┤ │ │ │ 2 │ 1 │ 1 │ └───────────┴───────┴───────────┴───────┴───┘ ```