Обсуждение: BUG #14328: SELECT FOR UPDATE doesn't return existing row
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDMyOApMb2dnZWQgYnk6ICAg ICAgICAgIERpbWEgUGF2bG92CkVtYWlsIGFkZHJlc3M6ICAgICAgaW15ZmVz c0BnbWFpbC5jb20KUG9zdGdyZVNRTCB2ZXJzaW9uOiA5LjQuNApPcGVyYXRp bmcgc3lzdGVtOiAgIFdpbmRvd3MgMTAKRGVzY3JpcHRpb246ICAgICAgICAK ClNFTEVDVCBGT1IgVVBEQVRFIHJldHVybnMgMCByb3dzIGluIHNjZW5hcmlv IGJlbG93LiBCdXQgaWYgSSBqdXN0IGV4ZWN1dGUKc3FsIHF1ZXJ5IGZyb20g c2Vjb25kIHRyYW5zYWN0aW9uIGl0IGFsd2F5cyByZXR1cm5zIDEgcm93Lg0K DQpFTlZJUk9OTUVOVDoNCi0tLS0tLS0tLS0tLS0NCkNSRUFURSBUQUJMRSB0 MSAoX3BrIHNlcmlhbCwgdDFjMSBpbnRlZ2VyLCB0MWMyIGludGVnZXIsIHQx YzMgdGV4dCk7DQpDUkVBVEUgVEFCTEUgdDIgKF9wayBzZXJpYWwsIHQyYzEg dGV4dCwgdDJjMiBpbnRlZ2VyKTsNCmluc2VydCBpbnRvIHQxICh0MWMxLCB0 MWMyLCB0MWMzKSB2YWx1ZXMoMTIzNDU2Nzg5LCAxMDAsCidzdHJpbmdfdmFs dWVfMScpOw0KaW5zZXJ0IGludG8gdDIgKHQyYzEsIHQyYzIpIHZhbHVlcygn c3RyaW5nX3ZhbHVlXzInLCAxMDApOw0KDQpUUkFOU0FDVElPTiAxOg0KLS0t LS0tLS0tLS0tLS0NCkJFR0lOOw0KLS0gVGhpcyBxdWVyeSB1cGRhdGVzIHQx YzEgdG8gaXRzIGN1cnJlbnQgdmFsdWUsIGl0IGRvZXNuJ3QgY2hhbmdlCmFu eXRoaW5nDQpVUERBVEUgdDEgU0VUIHQxYzMgPSAnc3RyaW5nX3ZhbHVlXzEn IFdIRVJFIHQxYzEgPSAxMjM0NTY3ODk7DQoNCi0tIFF1ZXJ5IHJldHVybmVk IHN1Y2Nlc3NmdWxseTogb25lIHJvdyBhZmZlY3RlZCwgNTEgbXNlYyBleGVj dXRpb24gdGltZS4NCg0KDQpUUkFOU0FDVElPTiAyOg0KLS0tLS0tLS0tLS0t LS0NCldJVEggDQogICAgY3RlMSBBUyAoDQogICAgICAgIFNFTEVDVCB0MmMy IEZST00gdDIgV0hFUkUgdDJjMSA9ICdzdHJpbmdfdmFsdWVfMicNCiAgICAp LA0KDQogICAgY3RlMiBBUyAoDQogICAgICAgIFNFTEVDVCAqIEZST00gdDEN CiAgICAgICAgV0hFUkUgDQogICAgICAgICAgICAgdDFjMSA9IDEyMzQ1Njc4 OSANCiAgICAgICAgICAgIEFORCB0MWMyID0gKFNFTEVDVCB0MmMyIEZST00g Y3RlMSkNCiAgICAgICAgRk9SIFVQREFURQ0KICAgICkgDQoNClNFTEVDVCAq IEZST00gY3RlMg0KDQotLSBXYWl0aW5nDQoNCg0KVFJBTlNBQ1RJT04gMToN Ci0tLS0tLS0tLS0tLS0tDQpDT01NSVQ7DQoNCi0tIFF1ZXJ5IHJldHVybmVk IHN1Y2Nlc3NmdWxseSB3aXRoIG5vIHJlc3VsdCBpbiA0MSBtc2VjLg0KDQoN ClRSQU5TQUNUSU9OIDI6DQotLS0tLS0tLS0tLS0tLQ0KLS0gUmV0dXJuZWQg MCByb3dzDQoNCgoK
I can reproduce this on 9.4 on Debian Linux. This relates to a question on Stack Overflow: http://stackoverflow.com/q/395= 50510/50552 The row seems to be dropped from the result set after the query waits on the= lock. Cheers, Andomar > On 19 Sep 2016, at 18:01, imyfess@gmail.com wrote: >=20 > 14328
imyfess@gmail.com writes: > SELECT FOR UPDATE returns 0 rows in scenario below. But if I just execute > sql query from second transaction it always returns 1 row. I've pushed a patch for this. Thanks for the report! regards, tom lane