Thread: [COMMITTERS] pgsql: Clean up manipulations of hash indexes' hasho_flag field.
Clean up manipulations of hash indexes' hasho_flag field. Standardize on testing a hash index page's type by doing (opaque->hasho_flag & LH_PAGE_TYPE) == LH_xxx_PAGE Various places were taking shortcuts like opaque->hasho_flag & LH_BUCKET_PAGE which while not actually wrong, is still bad practice because it encourages use of opaque->hasho_flag & LH_UNUSED_PAGE which *is* wrong (LH_UNUSED_PAGE == 0, so the above is constant false). hash_xlog.c's hash_mask() contained such an incorrect test. This also ensures that we mask out the additional flag bits that hasho_flag has accreted since 9.6. pgstattuple's pgstat_hash_page(), for one, was failing to do that and was thus actively broken. Also fix assorted comments that hadn't been updated to reflect the extended usage of hasho_flag, and fix some macros that were testing just "(hasho_flag & bit)" to use the less dangerous, project-approved form "((hasho_flag & bit) != 0)". Coverity found the bug in hash_mask(); I noted the one in pgstat_hash_page() through code reading. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/2040bb4a0b50ef0434a1a723f00d040ab4f1c06f Modified Files -------------- contrib/pageinspect/hashfuncs.c | 12 +++++++----- contrib/pgstattuple/pgstattuple.c | 2 +- src/backend/access/hash/hash_xlog.c | 8 +++++--- src/backend/access/hash/hashovfl.c | 2 +- src/backend/access/hash/hashutil.c | 4 ++-- src/include/access/hash.h | 26 +++++++++++++------------- 6 files changed, 29 insertions(+), 25 deletions(-)
Re: [COMMITTERS] pgsql: Clean up manipulations of hash indexes'hasho_flag field.
From
Amit Kapila
Date:
On Sat, Apr 15, 2017 at 2:34 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Clean up manipulations of hash indexes' hasho_flag field. > Attached patch to fix one remaining cleanup for the hasho_flag field. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Attachment
Re: [COMMITTERS] pgsql: Clean up manipulations of hash indexes' hasho_flag field.
From
Tom Lane
Date:
Amit Kapila <amit.kapila16@gmail.com> writes: > Attached patch to fix one remaining cleanup for the hasho_flag field. Pushed, thanks. regards, tom lane