1. 30 Jun, 2011 1 commit
    • Alvaro Herrera's avatar
      Enable CHECK constraints to be declared NOT VALID · 89779524
      Alvaro Herrera authored
      This means that they can initially be added to a large existing table
      without checking its initial contents, but new tuples must comply to
      them; a separate pass invoked by ALTER TABLE / VALIDATE can verify
      existing data and ensure it complies with the constraint, at which point
      it is marked validated and becomes a normal part of the table ecosystem.
      
      An non-validated CHECK constraint is ignored in the planner for
      constraint_exclusion purposes; when validated, cached plans are
      recomputed so that partitioning starts working right away.
      
      This patch also enables domains to have unvalidated CHECK constraints
      attached to them as well by way of ALTER DOMAIN / ADD CONSTRAINT / NOT
      VALID, which can later be validated with ALTER DOMAIN / VALIDATE
      CONSTRAINT.
      
      Thanks to Thom Brown, Dean Rasheed and Jaime Casanova for the various
      reviews, and Robert Hass for documentation wording improvement
      suggestions.
      
      This patch was sponsored by Enova Financial.
      89779524
  2. 29 Jun, 2011 6 commits
    • Alvaro Herrera's avatar
      Fix outdated comment · b36927fb
      Alvaro Herrera authored
      Extracted from a patch by Bernd Helmle
      b36927fb
    • Tom Lane's avatar
      Restore correct btree preprocessing of "indexedcol IS NULL" conditions. · a5652d3e
      Tom Lane authored
      Such a condition is unsatisfiable in combination with any other type of
      btree-indexable condition (since we assume btree operators are always
      strict).  8.3 and 8.4 had an explicit test for this, which I removed in
      commit 29c4ad98, mistakenly thinking that
      the case would be subsumed by the more general handling of IS (NOT) NULL
      added in that patch.  Put it back, and improve the comments about it, and
      add a regression test case.
      
      Per bug #6079 from Renat Nasyrov, and analysis by Dean Rasheed.
      a5652d3e
    • Heikki Linnakangas's avatar
      Move the PredicateLockRelation() call from nodeSeqscan.c to heapam.c. It's · cd70dd6b
      Heikki Linnakangas authored
      more consistent that way, since all the other PredicateLock* calls are
      made in various heapam.c and index AM functions. The call in nodeSeqscan.c
      was unnecessarily aggressive anyway, there's no need to try to lock the
      relation every time a tuple is fetched, it's enough to do it once.
      
      This has the user-visible effect that if a seq scan is initialized in the
      executor, but never executed, we now acquire the predicate lock on the heap
      relation anyway. We could avoid that by taking the lock on the first
      heap_getnext() call instead, but it doesn't seem worth the trouble given
      that it feels more natural to do it in heap_beginscan().
      
      Also, remove the retail PredicateLockTuple() calls from heap_getnext(). In
      a seqscan, started with heap_begin(), we're holding a whole-relation
      predicate lock on the heap so there's no need to lock the tuples
      individually.
      
      Kevin Grittner and me
      cd70dd6b
    • Heikki Linnakangas's avatar
      Grab predicate locks on matching tuples in a lossy bitmap heap scan. · d9fe63ac
      Heikki Linnakangas authored
      Non-lossy case was already handled correctly.
      
      Kevin Grittner
      d9fe63ac
    • Magnus Hagander's avatar
      Protect pg_stat_reset_shared() against NULL input · 79aa4453
      Magnus Hagander authored
      Per bug #6082, reported by Steve Haslam
      79aa4453
    • Peter Eisentraut's avatar
      Unify spelling of "canceled", "canceling", "cancellation" · 21f1e15a
      Peter Eisentraut authored
      We had previously (af26857a)
      established the U.S. spellings as standard.
      21f1e15a
  3. 28 Jun, 2011 6 commits
    • Simon Riggs's avatar
      Introduce compact WAL record for the common case of commit (non-DDL). · 465883b0
      Simon Riggs authored
      XLOG_XACT_COMMIT_COMPACT leaves out invalidation messages and relfilenodes,
      saving considerable space for the vast majority of transaction commits.
      XLOG_XACT_COMMIT keeps same definition as XLOG_PAGE_MAGIC 0xD067 and earlier.
      
      Leonardo Francalanci and Simon Riggs
      465883b0
    • Alvaro Herrera's avatar
      Remove rel.h from objectaddress.h; only relcache.h is necessary. · 6f3efa76
      Alvaro Herrera authored
      Add rel.h to some files that now need it.
      6f3efa76
    • Alvaro Herrera's avatar
      Modernise pg_hba.conf token processing · e5e2fc84
      Alvaro Herrera authored
      The previous coding was ugly, as it marked special tokens as such in the
      wrong stage, relying on workarounds to figure out if they had been
      quoted in the original or not.  This made it impossible to have specific
      keywords be recognized as such only in certain positions in HBA lines,
      for example.  Fix by restructuring the parser code so that it remembers
      whether tokens were quoted or not.  This eliminates widespread knowledge
      of possible known keywords for all fields.
      
      Also improve memory management in this area, to use memory contexts that
      are reset as a whole instead of using retail pfrees; this removes a
      whole lotta crufty (and probably slow) code.
      
      Instead of calling strlen() three times in next_field_expand on the
      returned token to find out whether there was a comma (and strip it),
      pass back the info directly from the callee, which is simpler.
      
      In passing, update historical artifacts in hba.c API.
      
      Authors: Brendan Jurd, Alvaro Herrera
      Reviewed by Pavel Stehule
      e5e2fc84
    • Peter Eisentraut's avatar
      Implement the collation columns of various information schema views · 615c3849
      Peter Eisentraut authored
      Fill in the collation columns of the views attributes, columns,
      domains, and element_types.  Also update collation information in
      sql_implementation_info.
      615c3849
    • Peter Eisentraut's avatar
    • Robert Haas's avatar
      Add a missing_ok argument to get_object_address(). · c533c147
      Robert Haas authored
      This lays the groundwork for an upcoming patch to streamline the
      handling of DROP commands.
      
      KaiGai Kohei
      c533c147
  4. 27 Jun, 2011 7 commits
  5. 26 Jun, 2011 7 commits
  6. 25 Jun, 2011 1 commit
  7. 24 Jun, 2011 1 commit
  8. 23 Jun, 2011 5 commits
  9. 22 Jun, 2011 6 commits