1. 22 12月, 2010 2 次提交
  2. 21 12月, 2010 2 次提交
    • R
      Work around unfortunate getppid() behavior on BSD-ish systems. · 24ecde77
      Robert Haas 提交于
      On MacOS X, and apparently also on other BSD-derived systems, attaching
      a debugger causes getppid() to return the pid of the debugging process
      rather than the actual parent PID.  As a result, debugging the
      autovacuum launcher, startup process, or WAL sender on such systems
      causes it to exit, because the previous coding of PostmasterIsAlive()
      detects postmaster death by testing whether getppid() == PostmasterPid.
      
      Work around that behavior by checking the return value of getppid()
      more carefully.  If it's PostmasterPid, the postmaster must be alive;
      if it's 1, assume the postmaster is dead.  If it's any other value,
      assume we've been debugged and fall through to the less-reliable
      kill() test.
      
      Review by Tom Lane.
      24ecde77
    • R
      Allow transactions that don't write WAL to commit asynchronously. · f6a0863e
      Robert Haas 提交于
      This case can arise if a transaction has written data, but only to
      temporary tables.  Loss of the commit record in case of a crash won't
      matter, because the temporary tables will be lost anyway.
      
      Reviewed by Heikki Linnakangas and Simon Riggs.
      f6a0863e
  3. 20 12月, 2010 4 次提交
    • A
      Fix typo · f9e9763b
      Alvaro Herrera 提交于
      Jaime Casanova
      f9e9763b
    • M
      Remove thread dumping constant that requires newer Platform SDK · d382828f
      Magnus Hagander 提交于
      Since we're not multithreaded it only provides marginally useful
      information, and it does require a newer version of the Platform SDK
      than we target. We may want to reconsider this in the future along
      with a fix for MinGW.
      d382828f
    • T
      Fix up handling of simple-form CASE with constant test expression. · 1b19e2c0
      Tom Lane 提交于
      eval_const_expressions() can replace CaseTestExprs with constants when
      the surrounding CASE's test expression is a constant.  This confuses
      ruleutils.c's heuristic for deparsing simple-form CASEs, leading to
      Assert failures or "unexpected CASE WHEN clause" errors.  I had put in
      a hack solution for that years ago (see commit
      514ce7a3 of 2006-10-01), but bug #5794
      from Peter Speck shows that that solution failed to cover all cases.
      
      Fortunately, there's a much better way, which came to me upon reflecting
      that Peter's "CASE TRUE WHEN" seemed pretty redundant: we can "simplify"
      the simple-form CASE to the general form of CASE, by simply omitting the
      constant test expression from the rebuilt CASE construct.  This is
      intuitively valid because there is no need for the executor to evaluate
      the test expression at runtime; it will never be referenced, because any
      CaseTestExprs that would have referenced it are now replaced by constants.
      This won't save a whole lot of cycles, since evaluating a Const is pretty
      cheap, but a cycle saved is a cycle earned.  In any case it beats kluging
      ruleutils.c still further.  So this patch improves const-simplification
      and reverts the previous change in ruleutils.c.
      
      Back-patch to all supported branches.  The bug exists in 8.1 too, but it's
      out of warranty.
      1b19e2c0
    • T
      Fix erroneous parsing of tsquery input "... & !(subexpression) | ..." · abc10262
      Tom Lane 提交于
      After parsing a parenthesized subexpression, we must pop all pending
      ANDs and NOTs off the stack, just like the case for a simple operand.
      Per bug #5793.
      
      Also fix clones of this routine in contrib/intarray and contrib/ltree,
      where input of types query_int and ltxtquery had the same problem.
      
      Back-patch to all supported versions.
      abc10262
  4. 19 12月, 2010 2 次提交
  5. 18 12月, 2010 4 次提交
  6. 17 12月, 2010 6 次提交
  7. 16 12月, 2010 8 次提交
  8. 15 12月, 2010 1 次提交
  9. 14 12月, 2010 8 次提交
  10. 13 12月, 2010 2 次提交
  11. 12 12月, 2010 1 次提交
    • T
      Clean up some copied-and-pasted code in pg_upgrade. · 3864afa1
      Tom Lane 提交于
      1. Don't reimplement S_ISDIR() and S_ISREG() badly.
      2. Don't reimplement access() badly.
      
      This code appears to have been copied from ancient versions of the
      corresponding backend routines, and not patched to incorporate subsequent
      fixes (see my commits of 2008-03-31 and 2010-01-14 respectively).
      It might be a good idea to change it to just *call* those routines,
      but for now I'll just transpose these fixes over.
      3864afa1