diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2023-03-02 11:34:29 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2023-03-02 11:34:29 -0500 |
commit | 462bb7f12851c215dfc21a88ae0ed4bf7fcb36a3 (patch) | |
tree | 1ab5f6429f5833fd548c1eb079d6129339acb077 /contrib/sepgsql | |
parent | 2f80c95740f88e9e3e04ee0c2063e55a497315b4 (diff) | |
download | postgresql-462bb7f12851c215dfc21a88ae0ed4bf7fcb36a3.tar.gz |
Remove bms_first_member().
This function has been semi-deprecated ever since we invented
bms_next_member(). Its habit of scribbling on the input bitmapset
isn't great, plus for sufficiently large bitmapsets it would take
O(N^2) time to complete a loop. Now we have the additional problem
that reducing the input to empty while leaving it still accessible
would violate a planned invariant. So let's just get rid of it,
after updating the few extant callers to use bms_next_member().
Patch by me; thanks to Nathan Bossart and Richard Guo for review.
Discussion: https://postgr.es/m/1159933.1677621588@sss.pgh.pa.us
Diffstat (limited to 'contrib/sepgsql')
-rw-r--r-- | contrib/sepgsql/dml.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/sepgsql/dml.c b/contrib/sepgsql/dml.c index 3cc927c79e..8c8f6f1e3a 100644 --- a/contrib/sepgsql/dml.c +++ b/contrib/sepgsql/dml.c @@ -231,7 +231,8 @@ check_relation_privileges(Oid relOid, updated = fixup_whole_row_references(relOid, updated); columns = bms_union(selected, bms_union(inserted, updated)); - while ((index = bms_first_member(columns)) >= 0) + index = -1; + while ((index = bms_next_member(columns, index)) >= 0) { AttrNumber attnum; uint32 column_perms = 0; |