Skip to content
Snippets Groups Projects
  1. Jan 03, 2017
  2. Oct 01, 2016
    • Tom Lane's avatar
      Fix bugs in contrib/pg_visibility. · 9a109452
      Tom Lane authored
      collect_corrupt_items() failed to initialize tuple.t_self.  While
      HeapTupleSatisfiesVacuum() doesn't actually use that value, it does
      Assert that it's valid, so that the code would dump core if ip_posid
      chanced to be zero.  (That's somewhat unlikely, which probably explains
      how this got missed.  In any case it wouldn't matter for field use.)
      
      Also, collect_corrupt_items was returning the wrong TIDs, that is the
      contents of t_ctid rather than the tuple's own location.  This would
      be the same thing in simple cases, but it could be wrong if, for
      example, a past update attempt had been rolled back, leaving a live
      tuple whose t_ctid doesn't point at itself.
      
      Also, in pg_visibility(), guard against trying to read a page past
      the end of the rel.  The VM code handles inquiries beyond the end
      of the map by silently returning zeroes, and it seems like we should
      do the same thing here.
      
      I ran into the assertion failure while using pg_visibility to check
      pg_upgrade's behavior, and then noted the other problems while
      reading the code.
      
      Report: <29043.1475288648@sss.pgh.pa.us>
      9a109452
  3. Jun 17, 2016
    • Robert Haas's avatar
      pg_visibility: Add pg_truncate_visibility_map function. · 71d05a2c
      Robert Haas authored
      This requires some core changes as well so that we can properly
      WAL-log the truncation.  Specifically, it changes the format of the
      XLOG_SMGR_TRUNCATE WAL record, so bump XLOG_PAGE_MAGIC.
      
      Patch by me, reviewed but not fully endorsed by Andres Freund.
      71d05a2c
  4. Jun 15, 2016
    • Robert Haas's avatar
      Add integrity-checking functions to pg_visibility. · e472ce96
      Robert Haas authored
      The new pg_check_visible() and pg_check_frozen() functions can be used to
      verify that the visibility map bits for a relation's data pages match the
      actual state of the tuples on those pages.
      
      Amit Kapila and Robert Haas, reviewed (in earlier versions) by Andres
      Freund.  Additional testing help by Thomas Munro.
      e472ce96
  5. Jun 10, 2016
  6. Apr 20, 2016
    • Kevin Grittner's avatar
      Revert no-op changes to BufferGetPage() · a343e223
      Kevin Grittner authored
      The reverted changes were intended to force a choice of whether any
      newly-added BufferGetPage() calls needed to be accompanied by a
      test of the snapshot age, to support the "snapshot too old"
      feature.  Such an accompanying test is needed in about 7% of the
      cases, where the page is being used as part of a scan rather than
      positioning for other purposes (such as DML or vacuuming).  The
      additional effort required for back-patching, and the doubt whether
      the intended benefit would really be there, have indicated it is
      best just to rely on developers to do the right thing based on
      comments and existing usage, as we do with many other conventions.
      
      This change should have little or no effect on generated executable
      code.
      
      Motivated by the back-patching pain of Tom Lane and Robert Haas
      a343e223
  7. Apr 08, 2016
    • Kevin Grittner's avatar
      Modify BufferGetPage() to prepare for "snapshot too old" feature · 8b65cf4c
      Kevin Grittner authored
      This patch is a no-op patch which is intended to reduce the chances
      of failures of omission once the functional part of the "snapshot
      too old" patch goes in.  It adds parameters for snapshot, relation,
      and an enum to specify whether the snapshot age check needs to be
      done for the page at this point.  This initial patch passes NULL
      for the first two new parameters and BGP_NO_SNAPSHOT_TEST for the
      third.  The follow-on patch will change the places where the test
      needs to be made.
      8b65cf4c
  8. Mar 08, 2016
    • Robert Haas's avatar
      Add pg_visibility contrib module. · ba0a198f
      Robert Haas authored
      This lets you examine the visibility map as well as page-level
      visibility information.  I initially wrote it as a debugging aid,
      but was encouraged to polish it for commit.
      
      Patch by me, reviewed by Masahiko Sawada.
      
      Discussion: 56D77803.6080503@BlueTreble.com
      ba0a198f
Loading