Re: Update with subselect sometimes returns wrong result
| От | David Johnston |
|---|---|
| Тема | Re: Update with subselect sometimes returns wrong result |
| Дата | |
| Msg-id | 1385866801641-5781041.post@n5.nabble.com обсуждение |
| Ответ на | Re: Update with subselect sometimes returns wrong result (Andres Freund <andres@2ndquadrant.com>) |
| Список | pgsql-bugs |
Andres Freund-3 wrote > deleted row at: (0,1) > deleted row at: (0,5) > new row at: (0,1) > new row at: (0,5) > updated row from (0,1) to (0,3) iter 401 > deleted row at: (0,2) > deleted row at: (0,3) Am I reading this right? Rows == ctid(,#) Rows 1 & 5 exist; are deleted Add two new rows, store them at 1 & 5 replacing the just deleted rows --? does auto-vacuum work that fast that these physical locations are immediately available... Update row 1, store new value in 3 marking 1 as deleted (not shown here) Rows 2? & 3 exist and are now deleted ?Where did Row 2 come from...was expecting row 5...? > new row at: (0,2) > new row at: (0,3) > updated row from (0,1) to (0,3) iter 405 > deleted row at: (0,2) > deleted row at: (0,3) Likewise: how did Row 1 come into being (so that it could be updated) when only 2 and 3 were added on the prior iteration? Then, at the point of the assertion failure, rows 4 & 5 are updated but rows 2 & 3 were the rows that were added...so neither of the just-inserted rows were returned... Sorry I cannot actually debug code but figured my observations might be helpful none-the-less. David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/Update-with-subselect-sometimes-returns-wrong-result-tp5780925p5781041.html Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.
В списке pgsql-bugs по дате отправления: