On Fri, Mar 11, 2016 at 8:50 AM, Simon Riggs <simon@2ndquadrant.com> wrote: > On 3 February 2016 at 23:12, Thomas Munro <thomas.munro@enterprisedb.com> > wrote: > >> >> It quacks suspiciously like a bug. > > > Agreed > > What's more important is that is very publicly a bug in the eyes of others > and should be fixed and backpatched soon. > > We have a maintenance release coming in a couple of weeks and I'd like to > see this in there.
As I understand it, the approach I've taken here can't be backpatched because it changes the aminsert_function interface (it needs the current snapshot when inserting), so I was proposing this as an improvement for 9.6. I guess there are other way to get the right snapshot into btinsert (and thence _bt_check_unique), but I didn't think it would be very classy to introduce a 'current snapshot' global variable to smuggle it in.
But this is a Serializable transaction, so it only has one snapshot...
This is where adding comments on patch theory would help.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services