1. 13 6月, 2011 4 次提交
  2. 12 6月, 2011 4 次提交
  3. 11 6月, 2011 6 次提交
    • B
      Add C comment mentioning pg_stat_activity.procpid should have been · a4bebdd9
      Bruce Momjian 提交于
      called 'pid'.
      a4bebdd9
    • T
      Work around gcc 4.6.0 bug that breaks WAL replay. · c2ba0121
      Tom Lane 提交于
      ReadRecord's habit of using both direct references to tmpRecPtr and
      references to *RecPtr (which is pointing at tmpRecPtr) triggers an
      optimization bug in gcc 4.6.0, which apparently has forgotten about
      aliasing rules.  Avoid the compiler bug, and make the code more readable
      to boot, by getting rid of the direct references.  Improve the comments
      while at it.
      
      Back-patch to all supported versions, in case they get built with 4.6.0.
      
      Tom Lane, with some cosmetic suggestions from Alex Hunsaker
      c2ba0121
    • H
      Fix locking while setting flags in MySerializableXact. · cb2d158c
      Heikki Linnakangas 提交于
      Even if a flag is modified only by the backend owning the transaction, it's
      not safe to modify it without a lock. Another backend might be setting or
      clearing a different flag in the flags field concurrently, and that
      operation might be lost because setting or clearing a bit in a word is not
      atomic.
      
      Make did-write flag a simple backend-private boolean variable, because it
      was only set or tested in the owning backend (except when committing a
      prepared transaction, but it's not worthwhile to optimize for the case of a
      read-only prepared transaction). This also eliminates the need to add
      locking where that flag is set.
      
      Also, set the did-write flag when doing DDL operations like DROP TABLE or
      TRUNCATE -- that was missed earlier.
      cb2d158c
    • A
      Add comment about pg_ctl stop · d69149ed
      Alvaro Herrera 提交于
      d69149ed
    • A
      Use "transient" files for blind writes, take 2 · fba105b1
      Alvaro Herrera 提交于
      "Blind writes" are a mechanism to push buffers down to disk when
      evicting them; since they may belong to different databases than the one
      a backend is connected to, the backend does not necessarily have a
      relation to link them to, and thus no way to blow them away.  We were
      keeping those files open indefinitely, which would cause a problem if
      the underlying table was deleted, because the operating system would not
      be able to reclaim the disk space used by those files.
      
      To fix, have bufmgr mark such files as transient to smgr; the lower
      layer is allowed to close the file descriptor when the current
      transaction ends.  We must be careful to have any other access of the
      file to remove the transient markings, to prevent unnecessary expensive
      system calls when evicting buffers belonging to our own database (which
      files we're likely to require again soon.)
      
      This commit fixes a bug in the previous one, which neglected to cleanly
      handle the LRU ring that fd.c uses to manage open files, and caused an
      unacceptable failure just before beta2 and was thus reverted.
      fba105b1
    • A
      3d114b63
  4. 10 6月, 2011 14 次提交
  5. 09 6月, 2011 5 次提交
    • H
      Mark the SLRU page as dirty when setting an entry in pg_serial. In the · 5234161a
      Heikki Linnakangas 提交于
      passing, fix an incorrect comment.
      5234161a
    • P
      Fix documentation of information_schema.element_types · 7d43ae67
      Peter Eisentraut 提交于
      The documentation of the columns collection_type_identifier and
      dtd_identifier was wrong.  This effectively reverts commits
      8e1ccad5 and
      57352df6 and updates the name
      array_type_identifier (the name in SQL:1999) to
      collection_type_identifier.
      
      closes bug #5926
      7d43ae67
    • T
      Make citext's equality and hashing functions collation-insensitive. · 3ebc061c
      Tom Lane 提交于
      This is an ugly hack to get around the fact that significant parts of the
      core backend assume they don't need to worry about passing collation to
      equality and hashing functions.  That's true for the core string datatypes,
      but citext should ideally have equality behavior that depends on the
      specified collation's LC_CTYPE.  However, there's no chance of fixing the
      core before 9.2, so we'll have to live with this compromise arrangement for
      now.  Per bug #6053 from Regina Obe.
      
      The code changes in this commit should be reverted in full once the core
      code is up to speed, but be careful about reverting the docs changes:
      I fixed a number of obsolete statements while at it.
      3ebc061c
    • P
      Reorder pg_ctl promote after pg_ctl status · 1bcdd663
      Peter Eisentraut 提交于
      Since start/stop/restart/reload/status is a kind of standard command
      set, it seems odd to insert the special-purpose "promote" in between
      the closely related "restart" and "reload".  So put it after "status"
      in code and documentation.
      
      Put the documentation of the -U option in some sensible place.
      
      Rewrite the synopsis sentence in help and documentation to make it
      less of a growing mouthful.
      1bcdd663
    • T
      Allow domains over arrays to match ANYARRAY parameters again. · b7e8feb3
      Tom Lane 提交于
      This use-case was broken in commit 529cb267
      of 2010-10-21, in which I commented "For the moment, we just forbid such
      matching.  We might later wish to insert an automatic downcast to the
      underlying array type, but such a change should also change matching of
      domains to ANYELEMENT for consistency".  We still lack consensus about what
      to do with ANYELEMENT; but not matching ANYARRAY is a clear loss of
      functionality compared to prior releases, so let's go ahead and make that
      happen.  Per complaint from Regina Obe and extensive subsequent discussion.
      b7e8feb3
  6. 08 6月, 2011 3 次提交
    • H
      Make DDL operations play nicely with Serializable Snapshot Isolation. · 8f9622bb
      Heikki Linnakangas 提交于
      Truncating or dropping a table is treated like deletion of all tuples, and
      check for conflicts accordingly. If a table is clustered or rewritten by
      ALTER TABLE, all predicate locks on the heap are promoted to relation-level
      locks, because the tuple or page ids of any existing tuples will change and
      won't be valid after rewriting the table. Arguably ALTER TABLE should be
      treated like a mass-UPDATE of every row, but if you e.g change the datatype
      of a column, you could also argue that it's just a change to the physical
      layout, not a logical change. Reindexing promotes all locks on the index to
      relation-level lock on the heap.
      
      Kevin Grittner, with a lot of cosmetic changes by me.
      8f9622bb
    • R
      Complain politely about access temp/unlogged tables during recovery. · 16925c1e
      Robert Haas 提交于
      This has never been supported, but we previously let md.c issue the
      complaint for us at whatever point we tried to examine the backing file.
      Now we print a nicer error message.
      
      Per bug #6041, reported by Emanuel, and extensive discussion with Tom
      Lane over where to put the check.
      16925c1e
    • A
      Revert psql bits to display NOT VALID for FKs · 135a5079
      Alvaro Herrera 提交于
      These are superseded by pg_get_constraintdef's ability to display the
      same when appropriate, which is a better place to do it anyway.
      135a5079
  7. 07 6月, 2011 2 次提交
    • H
      a31ff707
    • T
      Fix rewriter to cope (more or less) with CTEs in the query being rewritten. · fc1286d3
      Tom Lane 提交于
      Since the original implementation of CTEs only allowed them in SELECT
      queries, the rule rewriter did not expect to find any CTEs in statements
      being rewritten by ON INSERT/UPDATE/DELETE rules.  We had dealt with this
      to some extent but the code was still several bricks shy of a load, as
      illustrated in bug #6051 from Jehan-Guillaume de Rorthais.
      
      In particular, we have to be able to copy CTEs from the original query's
      cteList into that of a rule action, in case the rule action references the
      CTE (which it pretty much always will).  This also implies we were doing
      things in the wrong order in RewriteQuery: we have to recursively rewrite
      the CTE queries before expanding the main query, so that we have the
      rewritten queries available to copy.
      
      There are unpleasant limitations yet to resolve here, but at least we now
      throw understandable FEATURE_NOT_SUPPORTED errors for them instead of just
      failing with bizarre implementation-dependent errors.  In particular, we
      can't handle propagating the same CTE into multiple post-rewrite queries
      (because then the CTE would be evaluated multiple times), and we can't cope
      with conflicts between CTE names in the original query and in the rule
      actions.
      fc1286d3
  8. 06 6月, 2011 1 次提交
  9. 05 6月, 2011 1 次提交