1. 19 Dec, 2010 2 commits
    • Tom Lane's avatar
      Fix erroneous parsing of tsquery input "... & !(subexpression) | ..." · abc10262
      Tom Lane authored
      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
    • Magnus Hagander's avatar
      Support for collecting crash dumps on Windows · dcb09b59
      Magnus Hagander authored
      Add support for collecting "minidump" style crash dumps on
      Windows, by setting up an exception handling filter. Crash
      dumps will be generated in PGDATA/crashdumps if the directory
      is created (the existance of the directory is used as on/off
      switch for the generation of the dumps).
      
      Craig Ringer and Magnus Hagander
      dcb09b59
  2. 18 Dec, 2010 2 commits
  3. 17 Dec, 2010 5 commits
  4. 16 Dec, 2010 11 commits
  5. 15 Dec, 2010 2 commits
  6. 14 Dec, 2010 4 commits
  7. 13 Dec, 2010 4 commits
  8. 12 Dec, 2010 2 commits
  9. 11 Dec, 2010 6 commits
  10. 10 Dec, 2010 2 commits
    • Tom Lane's avatar
      Use symbolic names not octal constants for file permission flags. · 04f4e10c
      Tom Lane authored
      Purely cosmetic patch to make our coding standards more consistent ---
      we were doing symbolic some places and octal other places.  This patch
      fixes all C-coded uses of mkdir, chmod, and umask.  There might be some
      other calls I missed.  Inconsistency noted while researching tablespace
      directory permissions issue.
      04f4e10c
    • Tom Lane's avatar
      Fix efficiency problems in tuplestore_trim(). · 244407a7
      Tom Lane authored
      The original coding in tuplestore_trim() was only meant to work efficiently
      in cases where each trim call deleted most of the tuples in the store.
      Which, in fact, was the pattern of the original usage with a Material node
      supporting mark/restore operations underneath a MergeJoin.  However,
      WindowAgg now uses tuplestores and it has considerably less friendly
      trimming behavior.  In particular it can attempt to trim one tuple at a
      time off a large tuplestore.  tuplestore_trim() had O(N^2) runtime in this
      situation because of repeatedly shifting its tuple pointer array.  Fix by
      avoiding shifting the array until a reasonably large number of tuples have
      been deleted.  This can waste some pointer space, but we do still reclaim
      the tuples themselves, so the percentage wastage should be pretty small.
      
      Per Jie Li's report of slow percent_rank() evaluation.  cume_dist() and
      ntile() would certainly be affected as well, along with any other window
      function that has a moving frame start and requires reading substantially
      ahead of the current row.
      
      Back-patch to 8.4, where window functions were introduced.  There's no
      need to tweak it before that.
      244407a7