1. 08 Jan, 2011 2 commits
    • Tom Lane's avatar
      Fix the built-in GIN support procedure declarations in pg_proc.h. · a032d501
      Tom Lane authored
      Add more "internal" arguments so that these pg_proc entries reflect the
      current preferred API.  This is purely a cosmetic change, since GIN doesn't
      actually consult the pg_proc entry when calling a support function.
      Accordingly, no catversion bump.
      a032d501
    • Tom Lane's avatar
      Fix GIN to support null keys, empty and null items, and full index scans. · 73912e7f
      Tom Lane authored
      Per my recent proposal(s).  Null key datums can now be returned by
      extractValue and extractQuery functions, and will be stored in the index.
      Also, placeholder entries are made for indexable items that are NULL or
      contain no keys according to extractValue.  This means that the index is
      now always complete, having at least one entry for every indexed heap TID,
      and so we can get rid of the prohibition on full-index scans.  A full-index
      scan is implemented much the same way as partial-match scans were already:
      we build a bitmap representing all the TIDs found in the index, and then
      drive the results off that.
      
      Also, introduce a concept of a "search mode" that can be requested by
      extractQuery when the operator requires matching to empty items (this is
      just as cheap as matching to a single key) or requires a full index scan
      (which is not so cheap, but it sure beats failing or giving wrong answers).
      The behavior remains backward compatible for opclasses that don't return
      any null keys or request a non-default search mode.
      
      Using these features, we can now make the GIN index opclass for anyarray
      behave in a way that matches the actual anyarray operators for &&, <@, @>,
      and = ... which it failed to do before in assorted corner cases.
      
      This commit fixes the core GIN code and ginarrayprocs.c, updates the
      documentation, and adds some simple regression test cases for the new
      behaviors using the array operators.  The tsearch and contrib GIN opclass
      support functions still need to be looked over and probably fixed.
      
      Another thing I intend to fix separately is that this is pretty inefficient
      for cases where more than one scan condition needs a full-index search:
      we'll run duplicate GinScanEntrys, each one of which builds a large bitmap.
      There is some existing logic to merge duplicate GinScanEntrys but it needs
      refactoring to make it work for entries belonging to different scan keys.
      
      Note that most of gin.h has been split out into a new file gin_private.h,
      so that gin.h doesn't export anything that's not supposed to be used by GIN
      opclasses or the rest of the backend.  I did quite a bit of other code
      beautification work as well, mostly fixing comments and choosing more
      appropriate names for things.
      73912e7f
  2. 07 Jan, 2011 4 commits
  3. 06 Jan, 2011 5 commits
  4. 05 Jan, 2011 8 commits
  5. 04 Jan, 2011 2 commits
  6. 03 Jan, 2011 5 commits
  7. 02 Jan, 2011 3 commits
    • Peter Eisentraut's avatar
      Implement remaining fields of information_schema.sequences view · 39b88432
      Peter Eisentraut authored
      Add new function pg_sequence_parameters that returns a sequence's start,
      minimum, maximum, increment, and cycle values, and use that in the view.
      (bug #5662; design suggestion by Tom Lane)
      
      Also slightly adjust the view's column order and permissions after review of
      SQL standard.
      39b88432
    • Robert Haas's avatar
      Fix typo. · e657b55e
      Robert Haas authored
      Noted by Magnus Hagander.
      e657b55e
    • Robert Haas's avatar
      Basic foreign table support. · 0d692a0d
      Robert Haas authored
      Foreign tables are a core component of SQL/MED.  This commit does
      not provide a working SQL/MED infrastructure, because foreign tables
      cannot yet be queried.  Support for foreign table scans will need to
      be added in a future patch.  However, this patch creates the necessary
      system catalog structure, syntax support, and support for ancillary
      operations such as COMMENT and SECURITY LABEL.
      
      Shigeru Hanada, heavily revised by Robert Haas
      0d692a0d
  8. 01 Jan, 2011 8 commits
  9. 31 Dec, 2010 3 commits