Thread: BUG #14450: inconsistent results on async slave

BUG #14450: inconsistent results on async slave

From
rikard@ngs.hr
Date:
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz
aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDQ1MApMb2dnZWQgYnk6ICAg
ICAgICAgIFJpa2FyZCBQYXZlbGljCkVtYWlsIGFkZHJlc3M6ICAgICAgcmlr
YXJkQG5ncy5ocgpQb3N0Z3JlU1FMIHZlcnNpb246IDkuMy4xNApPcGVyYXRp
bmcgc3lzdGVtOiAgIExpbnV4CkRlc2NyaXB0aW9uOiAgICAgICAgCgpCZWZv
cmUgYXBwbHlpbmcgbmV3IHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uIHRvIHRo
ZSBkYXRhYmFzZSBJIHdhbnRlZCB0bwpjaGVjayBpZiByZXN1bHRzIG9mIHRo
ZSBmdW5jdGlvbiB3ZXJlIHRoZSBzYW1lDQoNClNvIHdlIHJhbiBhIHF1ZXJ5
IGxpa2UgdGhpczoNCg0Kc2VsZWN0IGEuaWQsIG9yaWdpbmFsX2Z1bihhLmlk
KSwgbmV3X2Z1bihhLmlkKQ0KZnJvbSB0YWJsZSBhDQp3aGVyZSBjb2FsZXNj
ZShvcmlnaW5hbF9mdW4oYS5pZCksIE1JTl9EQVRFKSAhPSBjb2FsZXNjZShu
ZXdfZnVuKGEuaWQpLApNSU5fREFURSkNCg0Kb24gYWxsIG91ciBhc3luYyBz
bGF2ZSBpbnN0YW5jZXMuDQpTdHJhbmdlbHkgZm9yIHNtYWxsIG51bWJlciBv
ZiByb3dzICg2IG91dCBvZiA1MDBrKSB0aGlzIHF1ZXJ5IHJldHVybmVkCmRp
ZmZlcmVudCByZXN1bHRzLg0KQWZ0ZXIgcnVubmluZzoNCg0Kc2VsZWN0IG9y
aWdpbmFsX2Z1bihkaWZmX2lkKSwgbmV3X2Z1bihkaWZmX2lkKTsNCg0KZm9y
IG9uZSBvZiB0aG9zZSBpZHMsIHRoZSBmdW5jdGlvbiByZXR1cm5lZCB0aGUg
c2FtZSByZXN1bHQuDQoNCklzIHRoaXMgZXhwZWN0ZWQgYmVoYXZpb3I/DQoN
Cm9yaWdpbmFsX2Z1biA9IHBscGdzcWwgKHZvbGF0aWxlIC0gc2hvdWxkIGJl
IHN0YWJsZSkNCm5ld19mdW4gPSBzcWwNCg0KV2hhdCBpcyBldmVuIG1vcmUg
c3RyYW5nZSwgaXMgdGhhdCBkaWZmZXJlbnQgcmVzdWx0cyB3ZXJlIGxpa2Ug
dGhpczoNCg0KaWQxLCBYMSwgbnVsbA0KaWQyLCBudWxsLCBYMg0KaWQzLCBY
MywgbnVsbA0KaWQ0LCBYNCwgbnVsbA0KaWQ1LCBYNSwgbnVsbA0KaWQ2LCBY
NiwgbnVsbA0KDQpkYXRhIGlzIG9ubHkgaW5zZXJ0ZWQgYW5kIFhfIHJlcHJl
c2VudHMgbWluIGRhdGUgb2Ygc3VtIHN1YnNldCBvZiBkYXRhIGluCm90aGVy
IHRhYmxlcy4NCg0KUmVnYXJkcywNClJpa2FyZAoK

Re: BUG #14450: inconsistent results on async slave

From
Tom Lane
Date:
rikard@ngs.hr writes:
> Is this expected behavior?

You haven't provided nearly enough information to let anyone diagnose
this with certainty; but if the data is changing under you, then replacing
a volatile function with a stable one could certainly cause different
results, because the data visibility rules would be different.  See
https://www.postgresql.org/docs/9.3/static/xfunc-volatility.html
particularly the bit about volatile functions using a new snapshot
on each call.

            regards, tom lane