1. 15 8月, 2007 2 次提交
  2. 14 8月, 2007 8 次提交
    • M
    • M
      It seems I always forget .in files. · 81879059
      Michael Meskes 提交于
      81879059
    • M
      Hopefully fixed missing CHAR_BIT symbol · cbe74faf
      Michael Meskes 提交于
      cbe74faf
    • M
      Fixed compiler warning for enum handling · aa130f5c
      Michael Meskes 提交于
      aa130f5c
    • M
      As usual I forgot some files. :-) · 146242fc
      Michael Meskes 提交于
      146242fc
    • M
      - Finished major rewrite to use new protocol version · 635a0b9a
      Michael Meskes 提交于
      - Really prepare statements
      - Added more regression tests
      - Added auto-prepare mode
      - Use '$n' for positional variables, '?' is still possible via ecpg option
      - Cleaned up the sources a little bit
      635a0b9a
    • T
      TEMPORARILY make synchronous_commit default to OFF, so that we can get more · b83bd31b
      Tom Lane 提交于
      thorough testing of async-commit mode from the buildfarm.  This patch MUST
      get reverted before 8.3 release!
      b83bd31b
    • T
      Fix two bugs induced in VACUUM FULL by async-commit patch. · 647fd9a1
      Tom Lane 提交于
      First, we cannot assume that XLogAsyncCommitFlush guarantees hint bits will be
      settable, because clog.c's inexact LSN bookkeeping results in windows where a
      previously flushed transaction is considered unhintable because it shares an
      LSN slot with a later unflushed transaction.  But repair_frag requires
      XMIN_COMMITTED to be correct so that it can distinguish tuples moved by the
      current vacuum.  Since not being able to set the bit is an uncommon corner
      case, the most practical way of dealing with it seems to be to abandon
      shrinking (ie, don't invoke repair_frag) when we find a non-dead tuple whose
      XMIN_COMMITTED bit couldn't be set.
      
      Second, it is possible for the same reason that a RECENTLY_DEAD tuple does not
      get its XMAX_COMMITTED bit set during scan_heap.  But by the time repair_frag
      examines the tuple it might be possible to set the bit.  We therefore must
      take buffer content lock when calling HeapTupleSatisfiesVacuum a second time,
      else we can get an Assert failure in SetBufferCommitInfoNeedsSave.  This
      latter bug is latent in existing releases, but I think it cannot actually
      occur without async commit, since the first HeapTupleSatisfiesVacuum call
      should always have set the bit.  So I'm not going to back-patch it.
      
      In passing, reduce the existing "cannot shrink relation" messages from NOTICE
      to LOG level.  The new message must be no higher than LOG if we don't want
      unpredictable regression test failures, and consistency seems like a good
      idea.  Also arrange that only one such message is reported per VACUUM FULL;
      in typical scenarios you could get spammed with many such messages, which
      seems a bit useless.
      647fd9a1
  3. 13 8月, 2007 3 次提交
    • T
      Document that the regexp split functions ignore zero-length matches in · a44af6df
      Tom Lane 提交于
      certain corner cases.  Per discussion, the code does what we want, but
      it really needs to be documented that these functions act differently
      from regexp_matches.
      a44af6df
    • T
      Remove an "optimization" I installed in 2001, to make repalloc() attempt to · b70d4a62
      Tom Lane 提交于
      enlarge the memory chunk in-place when it was feasible to do so.  This turns
      out to not work well at all for scenarios involving repeated cycles of
      palloc/repalloc/pfree: the eventually freed chunks go into the wrong freelist
      for the next initial palloc request, and so we consume memory indefinitely.
      While that could be defended against, the number of cases where the
      optimization can still be applied drops significantly, and adjusting the
      initial sizes of StringInfo buffers makes it drop to almost nothing.
      Seems better to just remove the extra complexity.
      Per recent discussion and testing.
      b70d4a62
    • T
      Increase the initial size of StringInfo buffers to 1024 bytes (from 256); · 70868c01
      Tom Lane 提交于
      likewise increase the initial size of the scanner's literal buffer to 1024
      (from 128).  Instrumentation of the regression tests suggests that this
      saves a useful amount of repalloc() traffic --- the number of calls occurring
      during one set of tests drops from about 6900 to about 3900.  The old sizes
      were chosen in the late 90's with an eye to machines much smaller than
      are common today.
      70868c01
  4. 12 8月, 2007 1 次提交
  5. 11 8月, 2007 1 次提交
    • T
      Code review for regexp_matches/regexp_split patch. Refactor to avoid assuming · 1b706193
      Tom Lane 提交于
      that cached compiled patterns will still be there when the function is next
      called.  Clean up looping logic, thereby fixing bug identified by Pavel
      Stehule.  Share setup code between the two functions, add some comments, and
      avoid risky mixing of int and size_t variables.  Clean up the documentation a
      tad, and accept all the flag characters mentioned in table 9-19 rather than
      just a subset.
      1b706193
  6. 10 8月, 2007 2 次提交
  7. 09 8月, 2007 4 次提交
    • T
      faa11796
    • T
      Revise postmaster startup/shutdown logic to eliminate the problem that a · bbe3c02d
      Tom Lane 提交于
      constant flow of new connection requests could prevent the postmaster from
      completing a shutdown or crash restart.  This is done by labeling child
      processes that are "dead ends", that is, we know that they were launched only
      to tell a client that it can't connect.  These processes are managed
      separately so that they don't confuse us into thinking that we can't advance
      to the next stage of a shutdown or restart sequence, until the very end
      where we must wait for them to drain out so we can delete the shmem segment.
      Per discussion of a misbehavior reported by Keaton Adams.
      
      Since this code was baroque already, and my first attempt at fixing the
      problem made it entirely impenetrable, I took the opportunity to rewrite it
      in a state-machine style.  That eliminates some duplicated code sections and
      hopefully makes everything a bit clearer.
      bbe3c02d
    • N
      Fix a gradual memory leak in ExecReScanAgg(). Because the aggregation · c556b29a
      Neil Conway 提交于
      hash table is allocated in a child context of the agg node's memory
      context, MemoryContextReset() will reset but *not* delete the child
      context. Since ExecReScanAgg() proceeds to build a new hash table
      from scratch (in a new sub-context), this results in leaking the
      header for the previous memory context. Therefore, use
      MemoryContextResetAndDeleteChildren() instead.
      
      Credit: My colleague Sailesh Krishnamurthy at Truviso for isolating
      the cause of the leak.
      c556b29a
    • T
      Fix thinko in multi-autovac-workers code: validity checks made by · af1022d2
      Tom Lane 提交于
      GUC assign hooks are supposed to be made whether doit is true or not.
      af1022d2
  8. 07 8月, 2007 1 次提交
  9. 06 8月, 2007 2 次提交
  10. 05 8月, 2007 5 次提交
  11. 04 8月, 2007 3 次提交
    • T
      Fix a problem in my recent patch to initialize cancel_key for autovac workers · 0b9d3d4d
      Tom Lane 提交于
      as well as regular backends: if no regular backend launches before the autovac
      launcher tries to start an autovac worker, the postmaster would get an Assert
      fault due to calling PostmasterRandom before random_seed was initialized.
      Cleanest solution seems to be to take the initialization of random_seed out
      of ServerLoop and let PostmasterRandom do it for itself.
      0b9d3d4d
    • T
      Switch over to using the src/timezone functions for formatting timestamps · bdd6b622
      Tom Lane 提交于
      displayed in the postmaster log.  This avoids Windows-specific problems with
      localized time zone names that are in the wrong encoding, and generally seems
      like a good idea to forestall other potential platform-dependent issues.
      To preserve the existing behavior that all backends will log in the same time
      zone, create a new GUC variable log_timezone that can only be changed on a
      system-wide basis, and reference log-related calculations to that zone instead
      of the TimeZone variable.
      
      This fixes the issue reported by Hiroshi Saito that timestamps printed by
      xlog.c startup could be improperly localized on Windows.  We still need a
      simpler patch for that problem in the back branches, however.
      bdd6b622
    • T
      Fix some sloppiness in the recent multiple-autovacuum-worker patch. It was · 73852bd5
      Tom Lane 提交于
      not bothering to initialize is_autovacuum for regular backends, meaning there
      was a significant chance of the postmaster prematurely sending them SIGTERM
      during database shutdown.  Also, leaving the cancel key unset for an autovac
      worker meant that any client could send it SIGINT, which doesn't sound
      especially good either.
      73852bd5
  12. 03 8月, 2007 4 次提交
  13. 02 8月, 2007 4 次提交