Skip to content
Snippets Groups Projects
  1. May 25, 2016
    • Tom Lane's avatar
      Fix contrib/bloom to work for unlogged indexes. · abaffa90
      Tom Lane authored
      blbuildempty did not do even approximately the right thing: it tried
      to add a metapage to the relation's regular data fork, which already
      has one at that point.  It should look like the ambuildempty methods
      for all the standard index types, ie, initialize a metapage image in
      some transient storage and then write it directly to the init fork.
      To support that, refactor BloomInitMetapage into two functions.
      
      In passing, fix BloomInitMetapage so it doesn't leave the rd_options
      field of the index's relcache entry pointing at transient storage.
      I'm not sure this had any visible consequence, since nothing much
      else is likely to look at a bloom index's rd_options, but it's
      certainly poor practice.
      
      Per bug #14155 from Zhou Digoal.
      
      Report: <20160524144146.22598.42558@wrigleys.postgresql.org>
      abaffa90
  2. Apr 12, 2016
    • Teodor Sigaev's avatar
      Add page id to bloom index · 813b456e
      Teodor Sigaev authored
      Added to ensure that bloom index pages can be distinguished from other pages
      by pg_filedump. Because there wasn't any public/production versions before,
      it doesn't pay attention to any compatibility issues.
      
      Per notice from Tom Lane
      813b456e
  3. Apr 03, 2016
    • Tom Lane's avatar
      Fix contrib/bloom to not fail under CLOBBER_CACHE_ALWAYS. · 8f75fd1f
      Tom Lane authored
      The code was supposing that rd_amcache wouldn't disappear from under it
      during a scan; which is wrong.  Copy the data out of the relcache rather
      than trying to reference it there.
      8f75fd1f
    • Tom Lane's avatar
      Clean up some stuff in new contrib/bloom module. · a9284849
      Tom Lane authored
      Coverity complained about implicit sign-extension in the
      BloomPageGetFreeSpace macro, probably because sizeOfBloomTuple isn't wide
      enough for size calculations.  No overflow is really possible as long as
      maxoff and sizeOfBloomTuple are small enough to represent a realistic
      situation, but it seems like a good idea to declare sizeOfBloomTuple as
      Size not int32.
      
      Add missing check on BloomPageAddItem() result, again from Coverity.
      
      Avoid core dump due to not allocating so->sign array when
      scan->numberOfKeys is zero.  Also thanks to Coverity.
      
      Use FLEXIBLE_ARRAY_MEMBER rather than declaring an array as size 1
      when it isn't necessarily.
      
      Very minor beautification of related code.
      
      Unfortunately, none of the Coverity-detected mistakes look like they
      could account for the remaining buildfarm unhappiness with this
      module.  It's barely possible that the FLEXIBLE_ARRAY_MEMBER mistake
      does account for that, if it's enabling bogus compiler optimizations;
      but I'm not terribly optimistic.  We probably still have bugs to
      find here.
      a9284849
  4. Apr 02, 2016
    • Teodor Sigaev's avatar
      Fixes in bloom contrib module · 80afb62d
      Teodor Sigaev authored
      Looking at result of buildfarm member jaguarundi it seems to me that
      BloomOptions isn't inited sometime, but I don't see yet how it's possible.
      Nevertheless, check of signature length's is missed, so, add
      a limit of it. Also add missed GenericXLogAbort() in case of already
      deleted page in vacuum + minor code refactoring.
      80afb62d
  5. Apr 01, 2016
    • Teodor Sigaev's avatar
      Fixes in bloom contrib module missed during review · 27f3bbfa
      Teodor Sigaev authored
      - macroses llike (var & FLAG) are changed to ((var & FLAG) != 0)
      - do not copy uninitialized part of notFullPage array to page
      27f3bbfa
    • Teodor Sigaev's avatar
      Bloom index contrib module · 9ee014fc
      Teodor Sigaev authored
      Module provides new access method. It is actually a simple Bloom filter
      implemented as pgsql's index. It could give some benefits on search
      with large number of columns.
      
      Module is a single way to test generic WAL interface committed earlier.
      
      Author: Teodor Sigaev, Alexander Korotkov
      Reviewers: Aleksander Alekseev, Michael Paquier, Jim Nasby
      9ee014fc
Loading