Thread: pgsql: Improve index AMs' opclass validation procedures.
Improve index AMs' opclass validation procedures. The amvalidate functions added in commit 65c5fcd353a859da were on the crude side. Improve them in a few ways: * Perform signature checking for operators and support functions. * Apply more thorough checks for missing operators and functions, where possible. * Instead of reporting problems as ERRORs, report most problems as INFO messages and make the amvalidate function return FALSE. This allows more than one problem to be discovered per run. * Report object names rather than OIDs, and work a bit harder on making the messages understandable. Also, remove a few more opr_sanity regression test queries that are now superseded by the amvalidate checks. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/be44ed27b86ebd165bbedf06a4ac5a8eb943d43c Modified Files -------------- src/backend/access/brin/brin_validate.c | 260 ++++++++++++++++++++------- src/backend/access/gin/ginvalidate.c | 233 ++++++++++++++++++------ src/backend/access/gist/gistvalidate.c | 241 +++++++++++++++++++------ src/backend/access/hash/hashvalidate.c | 289 +++++++++++++++++++++++------- src/backend/access/index/Makefile | 2 +- src/backend/access/index/amvalidate.c | 246 +++++++++++++++++++++++++ src/backend/access/nbtree/nbtvalidate.c | 274 ++++++++++++++++------------ src/backend/access/spgist/spgvalidate.c | 211 +++++++++++++++++----- src/backend/utils/cache/lsyscache.c | 23 +++ src/include/access/amvalidate.h | 36 ++++ src/include/utils/lsyscache.h | 1 + src/test/regress/expected/opr_sanity.out | 204 +-------------------- src/test/regress/sql/opr_sanity.sql | 171 +----------------- 13 files changed, 1417 insertions(+), 774 deletions(-)
On 22 January 2016 at 13:47, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Improve index AMs' opclass validation procedures. > > The amvalidate functions added in commit 65c5fcd353a859da were on the > crude side. Improve them in a few ways: > > * Perform signature checking for operators and support functions. > > * Apply more thorough checks for missing operators and functions, > where possible. > > * Instead of reporting problems as ERRORs, report most problems as INFO > messages and make the amvalidate function return FALSE. This allows > more than one problem to be discovered per run. > > * Report object names rather than OIDs, and work a bit harder on making > the messages understandable. > > Also, remove a few more opr_sanity regression test queries that are > now superseded by the amvalidate checks. I'm getting 3 new warnings with this change which mention about 32-bit bit shifting then bitwise anding to a 64-bit variable. The attached fixes the warnings -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Attachment
David Rowley <david.rowley@2ndquadrant.com> writes: > I'm getting 3 new warnings with this change which mention about 32-bit > bit shifting then bitwise anding to a 64-bit variable. > The attached fixes the warnings Pushed, thanks. regards, tom lane