1. 15 3月, 2008 3 次提交
  2. 14 3月, 2008 7 次提交
  3. 13 3月, 2008 2 次提交
    • T
      Fix pg_plan_queries() to restore the previous setting of ActiveSnapshot · 1dd56fda
      Tom Lane 提交于
      (probably NULL) before exiting.  Up to now it's just left the variable as it
      set it, which means that after we're done processing the current client
      message, ActiveSnapshot is probably pointing at garbage (because this function
      is typically run in MessageContext which will get reset).  There doesn't seem
      to have been any code path in which that mattered before 8.3, but now the
      plancache module might try to use the stale value if the next client message
      is a Bind for a prepared statement that is in need of replanning.  Per report
      from Alex Hunsaker.
      1dd56fda
    • T
      Fix LISTEN/NOTIFY race condition reported by Laurent Birtz, by postponing · d2ab94da
      Tom Lane 提交于
      pg_listener modifications commanded by LISTEN and UNLISTEN until the end
      of the current transaction.  This allows us to hold the ExclusiveLock on
      pg_listener until after commit, with no greater risk of deadlock than there
      was before.  Aside from fixing the race condition, this gets rid of a
      truly ugly kludge that was there before, namely having to ignore
      HeapTupleBeingUpdated failures during NOTIFY.  There is a small potential
      incompatibility, which is that if a transaction issues LISTEN or UNLISTEN
      and then looks into pg_listener before committing, it won't see any resulting
      row insertion or deletion, where before it would have.  It seems unlikely
      that anyone would be depending on that, though.
      
      This patch also disallows LISTEN and UNLISTEN inside a prepared transaction.
      That case had some pretty undesirable properties already, such as possibly
      allowing pg_listener entries to be made for PIDs no longer present, so
      disallowing it seems like a better idea than trying to maintain the behavior.
      d2ab94da
  4. 12 3月, 2008 1 次提交
    • B
      Add to documentation: · 32aaf480
      Bruce Momjian 提交于
      +         Setting <varname>statement_timeout</> in
      +         <filename>postgresql.conf</> is not recommended because it
      +         affects all sessions.
      
      Backpatch to 8.3.X.
      32aaf480
  5. 11 3月, 2008 3 次提交
  6. 09 3月, 2008 2 次提交
    • T
      d19d3543
    • T
      Refactor heap_page_prune so that instead of changing item states on-the-fly, · f647ed43
      Tom Lane 提交于
      it accumulates the set of changes to be made and then applies them.  It had
      to accumulate the set of changes anyway to prepare a WAL record for the
      pruning action, so this isn't an enormous change; the only new complexity is
      to not doubly mark tuples that are visited twice in the scan.  The main
      advantage is that we can substantially reduce the scope of the critical
      section in which the changes are applied, thus avoiding PANIC in foreseeable
      cases like running out of memory in inval.c.  A nice secondary advantage is
      that it is now far clearer that WAL replay will actually do the same thing
      that the original pruning did.
      
      This commit doesn't do anything about the open problem that
      CacheInvalidateHeapTuple doesn't have the right semantics for a CTID change
      caused by collapsing out a redirect pointer.  But whatever we do about that,
      it'll be a good idea to not do it inside a critical section.
      f647ed43
  7. 07 3月, 2008 4 次提交
  8. 06 3月, 2008 5 次提交
  9. 05 3月, 2008 2 次提交
  10. 04 3月, 2008 4 次提交
  11. 02 3月, 2008 3 次提交
  12. 01 3月, 2008 4 次提交
    • T
      Fix unportable usages of tolower(). On signed-char machines, it is necessary · 0b173a6e
      Tom Lane 提交于
      to explicitly cast the output back to char before comparing it to a char
      value, else we get the wrong result for high-bit-set characters.  Found by
      Rolf Jentsch.  Also, fix several places where <ctype.h> functions were being
      called without casting the argument to unsigned char; this is likewise
      unportable, but we keep making that mistake :-(.  These found by buildfarm
      member salamander, which I will desperately miss if it ever goes belly-up.
      0b173a6e
    • T
      Disable the undocumented xmlvalidate() function, which was unintentionally · 25819aae
      Tom Lane 提交于
      left in the code though it was not meant to be provided.  It represents a
      security hole because unprivileged users could use it to look at (at least the
      first line of) any file readable by the backend.  Fortunately, this is only
      possible if the backend was built with XML support, so the damage is at least
      mitigated; and 8.3 probably hasn't propagated into any security-critical uses
      yet anyway.  Per report from Sergey Burladyan.
      25819aae
    • A
      Don't call AddUserToDacl on Cygwin · da956ae7
      Andrew Dunstan 提交于
      da956ae7
    • T
      Reducing the assumed alignment of struct varlena means that the compiler · c6f40157
      Tom Lane 提交于
      is also licensed to put a local variable declared that way at an unaligned
      address.  Which will not work if the variable is then manipulated with
      SET_VARSIZE or other macros that assume alignment.  So the previous patch
      is not an unalloyed good, but on balance I think it's still a win, since
      we have very few places that do that sort of thing.  Fix the one place in
      tuptoaster.c that does it.  Per buildfarm results from gypsy_moth
      (I'm a bit surprised that only one machine showed a failure).
      c6f40157