Fix bitshiftright()'s zero-padding some more.
authorTom Lane
Fri, 4 Oct 2019 14:34:21 +0000 (10:34 -0400)
committerTom Lane
Fri, 4 Oct 2019 14:34:21 +0000 (10:34 -0400)
commit6c3b6406db3b132b84d7be6fe838da9d46cd02f8
tree9304d871efc967c247570c0d5956edfe24d0236a
parentc2e3b311d9ef85e99b04944e7e6f98e3a336de84
Fix bitshiftright()'s zero-padding some more.

Commit 5ac0d9360 failed to entirely fix bitshiftright's habit of
leaving one-bits in the pad space that should be all zeroes,
because in a moment of sheer brain fade I'd concluded that only
the code path used for not-a-multiple-of-8 shift distances needed
to be fixed.  Of course, a multiple-of-8 shift distance can also
cause the problem, so we need to forcibly zero the extra bits
in both cases.

Per bug #16037 from Alexander Lakhin.  As before, back-patch to all
supported branches.

Discussion: https://postgr.es/m/16037-1d1ebca564db54f4@postgresql.org
src/backend/utils/adt/varbit.c
src/test/regress/expected/bit.out
src/test/regress/sql/bit.sql