1. 25 Feb, 2009 4 commits
  2. 24 Feb, 2009 3 commits
    • Peter Eisentraut's avatar
      7380b638
    • Peter Eisentraut's avatar
      Add the possibility to specify an explicit validator function for foreign-data · 7babccb9
      Peter Eisentraut authored
      wrappers (similar to procedural languages).  This way we don't need to retain
      the nearly empty libraries, and we are more free in how to implement the
      wrapper API in the future.
      7babccb9
    • Tom Lane's avatar
      Repair a longstanding bug in CLUSTER and the rewriting variants of ALTER · f73bed30
      Tom Lane authored
      TABLE: if the command is executed by someone other than the table owner (eg,
      a superuser) and the table has a toast table, the toast table's pg_type row
      ends up with the wrong typowner, ie, the command issuer not the table owner.
      This is quite harmless for most purposes, since no interesting permissions
      checks consult the pg_type row.  However, it could lead to unexpected failures
      if one later tries to drop the role that issued the command (in 8.1 or 8.2),
      or strange warnings from pg_dump afterwards (in 8.3 and up, which will allow
      the DROP ROLE because we don't create a "redundant" owner dependency for table
      rowtypes).  Problem identified by Cott Lang.
      
      Back-patch to 8.1.  The problem is actually far older --- the CLUSTER variant
      can be demonstrated in 7.0 --- but it's mostly cosmetic before 8.1 because we
      didn't track ownership dependencies before 8.1.  Also, fixing it before 8.1
      would require changing the call signature of heap_create_with_catalog(), which
      seems to carry a nontrivial risk of breaking add-on modules.
      f73bed30
  3. 23 Feb, 2009 3 commits
  4. 22 Feb, 2009 1 commit
  5. 20 Feb, 2009 3 commits
    • Peter Eisentraut's avatar
      another small message tweak · 1491b4c4
      Peter Eisentraut authored
      1491b4c4
    • Andrew Dunstan's avatar
      Reconnect to the right database when using parallel restore with -C. Fixes bug... · fae3083c
      Andrew Dunstan authored
      Reconnect to the right database when using parallel restore with -C. Fixes bug reported by Olivier Prenant
      fae3083c
    • Tom Lane's avatar
      Simplify overcomplicated (and overly restrictive) test to see whether an · 7920ed38
      Tom Lane authored
      IS NULL condition is rendered redundant by detection of an antijoin.
      If we know that a join is an antijoin, then *any* Var coming out of its
      righthand side must be NULL, not only the joining column(s).  Also,
      it's still gonna be null after being passed up through higher joins,
      whether they're outer joins or not.  I was misled by a faulty analogy
      to reduce_outer_joins() in the original coding.  But consider
      
      select * from a left join b on a.x = b.y where b.y is null and b.z is null;
      
      The first IS NULL condition justifies deciding that the join is an antijoin
      (if the = is strict) and then the second one is just plain redundant.
      7920ed38
  6. 19 Feb, 2009 6 commits
  7. 18 Feb, 2009 5 commits
    • Tom Lane's avatar
      Remove the special cases to prevent minus-zero results in float4 and float8 · 86ffdcad
      Tom Lane authored
      unary minus operators.  We weren't attempting to prevent minus zero anywhere
      else; in view of our gradual trend to make the float datatypes more IEEE
      standard compliant, we should allow minus zero here rather than disallow it
      elsewhere.
      
      We don't, however, expect that all platforms will produce minus zero, so
      we need to adjust the one affected regression test to allow both results.
      
      Per discussion of bug #4660.
      
      (In passing, clean up a couple other minor infelicities in float.c.)
      86ffdcad
    • Heikki Linnakangas's avatar
      Start background writer during archive recovery. Background writer now performs · cdd46c76
      Heikki Linnakangas authored
      its usual buffer cleaning duties during archive recovery, and it's responsible
      for performing restartpoints.
      
      This requires some changes in postmaster. When the startup process has done
      all the initialization and is ready to start WAL redo, it signals the
      postmaster to launch the background writer. The postmaster is signaled again
      when the point in recovery is reached where we know that the database is in
      consistent state. Postmaster isn't interested in that at the moment, but
      that's the point where we could let other backends in to perform read-only
      queries. The postmaster is signaled third time when the recovery has ended,
      so that postmaster knows that it's safe to start accepting connections.
      
      The startup process now traps SIGTERM, and performs a "clean" shutdown. If
      you do a fast shutdown during recovery, a shutdown restartpoint is performed,
      like a shutdown checkpoint, and postmaster kills the processes cleanly. You
      still have to continue the recovery at next startup, though.
      
      Currently, the background writer is only launched during archive recovery.
      We could launch it during crash recovery as well, but it seems better to keep
      that codepath as simple as possible, for the sake of robustness. And it
      couldn't do any restartpoints during crash recovery anyway, so it wouldn't be
      that useful.
      
      log_restartpoints is gone. Use log_checkpoints instead. This is yet to be
      documented.
      
      This whole operation is a pre-requisite for Hot Standby, but has some value of
      its own whether the hot standby patch makes 8.4 or not.
      
      Simon Riggs, with lots of modifications by me.
      cdd46c76
    • Bruce Momjian's avatar
      Add --freeze option to vacuumdb. · 36a9cf38
      Bruce Momjian authored
      36a9cf38
    • Bruce Momjian's avatar
      1d88d4e2
    • Peter Eisentraut's avatar
      Message wordsmithing · b9a36693
      Peter Eisentraut authored
      b9a36693
  8. 17 Feb, 2009 7 commits
  9. 16 Feb, 2009 2 commits
  10. 15 Feb, 2009 3 commits
  11. 14 Feb, 2009 1 commit
    • Tom Lane's avatar
      A couple of marginal performance hacks for the information_schema views: · 3f7626e9
      Tom Lane authored
      replace the old recursive-SQL-function implementation of _pg_keysequal()
      with use of the built-in array containment operators, and change
      table_constraints' UNION to UNION ALL.  Per discussion with Octavio Alvarez.
      
      initdb not forced since this doesn't affect results, but you'd need to
      initdb or reload the information_schema to see the new definitions.
      3f7626e9
  12. 13 Feb, 2009 1 commit
    • Tom Lane's avatar
      Fix UNLISTEN to fall out quickly if the current backend has never executed · ca5646fc
      Tom Lane authored
      any LISTEN command.  This is more important than it used to be because
      DISCARD ALL invokes UNLISTEN.  Connection-pooled applications making heavy
      use of DISCARD ALL were seeing significant contention for pg_listener,
      as reported by Matteo Beccati.  It seems unlikely that clients using LISTEN
      would use pooled connections, so this simple tweak seems sufficient,
      especially since the pg_listener implementation is slated to go away soon
      anyway.
      
      Back-patch to 8.3, where DISCARD ALL was introduced.
      ca5646fc
  13. 12 Feb, 2009 1 commit