On Mon, 14 Jun 2021 at 10:03, Thomas Munro <thomas.mu...@gmail.com> wrote: > > On Mon, Jun 14, 2021 at 12:54 AM David Rowley <dgrowle...@gmail.com> wrote: > > I think a more optimal and nicer way of doing that would be setting > > bits in a Bitmapset then checking bms_num_members is equal to > > n_scan_keys. > > Shouldn't it be compared with indnkeyatts? Yes, much nicer, thanks!
Oh yeah, I did mean that. Thanks for the correction. Have you also thought about deferrable unique / primary key constraints? It's possible to the uniqueness temporarily violated during a transaction when the unique constraint is deferred, For example: create table t (id int primary key deferrable initially deferred); begin; insert into t values(1),(1); select * from t; id ---- 1 1 (2 rows) I think you'd just need to add a check to ensure that indimmediate is true around where you're checking the indisunique flag. David