1. 09 Oct, 2010 1 commit
  2. 08 Oct, 2010 6 commits
  3. 07 Oct, 2010 1 commit
    • Robert Haas's avatar
      Improve WAL reliability documentation, and add more cross-references to it. · 694c56af
      Robert Haas authored
      In particular, we are now more explicit about the fact that you may need
      wal_sync_method=fsync_writethrough for crash-safety on some platforms,
      including MaxOS X.  There's also now an explicit caution against assuming
      that the default setting of wal_sync_method is either crash-safe or best
      for performance.
      694c56af
  4. 06 Oct, 2010 2 commits
    • Tom Lane's avatar
      Reduce the memory requirement for large ispell dictionaries. · 3e5f9412
      Tom Lane authored
      This patch eliminates per-chunk palloc overhead for most small allocations
      needed in the representation of an ispell dictionary.  This saves close to
      a factor of 2 on the current Czech ispell data.  While it doesn't cover
      every last small allocation in the ispell code, we are at the point of
      diminishing returns, because about 95% of the allocations are covered
      already.
      
      Pavel Stehule, rather heavily revised by Tom
      3e5f9412
    • Tom Lane's avatar
      Clean up temporary-memory management during ispell dictionary loading. · 9b910def
      Tom Lane authored
      Add explicit initialization and cleanup functions to spell.c, and keep
      all working state in the already-existing ISpellDict struct.  This lets us
      get rid of a static variable along with some extremely shaky assumptions
      about usage of child memory contexts.
      
      This commit is just code beautification and has no impact on functionality
      or performance, but it opens the way to a less-grotty implementation of
      Pavel's memory-saving hack, which will follow shortly.
      9b910def
  5. 05 Oct, 2010 2 commits
  6. 03 Oct, 2010 1 commit
    • Tom Lane's avatar
      Behave correctly if INSERT ... VALUES is decorated with additional clauses. · 3a13f12b
      Tom Lane authored
      In versions 8.2 and up, the grammar allows attaching ORDER BY, LIMIT,
      FOR UPDATE, or WITH to VALUES, and hence to INSERT ... VALUES.  But the
      special-case code for VALUES in transformInsertStmt() wasn't expecting any
      of those, and just ignored them, leading to unexpected results.  Rather
      than complicate the special-case path, just ensure that the presence of any
      of those clauses makes us treat the query as if it had a general SELECT.
      Per report from Hitoshi Harada.
      3a13f12b
  7. 02 Oct, 2010 2 commits
    • Tom Lane's avatar
      Remove excess argument to open(2). · e77f605d
      Tom Lane authored
      Many compilers don't complain about this, but some do, and it's certainly
      wrong.  Back-patch to 8.4 where the error was introduced.
      
      Mark Kirkwood
      e77f605d
    • Tom Lane's avatar
      Throw an appropriate error if ALTER COLUMN TYPE finds a dependent trigger. · 1f0b62e8
      Tom Lane authored
      Actually making this case work, if the column is used in the trigger's
      WHEN condition, will take some new code that probably isn't appropriate
      to back-patch.  For now, just throw a FEATURE_NOT_SUPPORTED error rather
      than allowing control to reach the "unexpected object" case.  Per bug #5688
      from Daniel Grace.  Back-patch to 9.0 where the possibility of such a
      dependency was introduced.
      1f0b62e8
  8. 30 Sep, 2010 3 commits
    • Tom Lane's avatar
      Use a separate interpreter for each calling SQL userid in plperl and pltcl. · 50595b5f
      Tom Lane authored
      There are numerous methods by which a Perl or Tcl function can subvert
      the behavior of another such function executed later; for example, by
      redefining standard functions or operators called by the target function.
      If the target function is SECURITY DEFINER, or is called by such a
      function, this means that any ordinary SQL user with Perl or Tcl language
      usage rights can do essentially anything with the privileges of the target
      function's owner.
      
      To close this security hole, create a separate Perl or Tcl interpreter for
      each SQL userid under which plperl or pltcl functions are executed within
      a session.  However, all plperlu or pltclu functions run within a session
      still share a single interpreter, since they all execute at the trust
      level of a database superuser anyway.
      
      Note: this change results in a functionality loss when libperl has been
      built without the "multiplicity" option: it's no longer possible to call
      plperl functions under different userids in one session, since such a
      libperl can't support multiple interpreters in one process.  However, such
      a libperl already failed to support concurrent use of plperl and plperlu,
      so it's likely that few people use such versions with Postgres.
      
      Security: CVE-2010-3433
      50595b5f
    • Robert Haas's avatar
      1f0eb5de
    • Tom Lane's avatar
      Update release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22, · a5683ea0
      Tom Lane authored
      8.0.26, and 7.4.30.
      a5683ea0
  9. 29 Sep, 2010 3 commits
  10. 28 Sep, 2010 16 commits
  11. 27 Sep, 2010 2 commits
    • Robert Haas's avatar
      2ce00397
    • Tom Lane's avatar
      Improve git_changelog as per discussion with Robert Haas. · bf429ceb
      Tom Lane authored
      1. Resurrect the behavior where old commits on master will have Branch:
      labels for branches sprouted after the commit was made.  I'm still
      dubious about this mode, but if you want it, say --post-date or -p.
      
      2. Annotate the Branch: labels with the release or branch in which the
      commit was publicly released.  For example, on a release branch you could
      see
      Branch: REL8_3_STABLE Release: REL8_3_2 [92c3a8004] 2008-03-29 00:15:37 +0000
      showing that the fix was released in 8.3.2.  Commits on master will
      usually instead have notes like
      Branch: master Release: REL8_4_BR [6fc9d427] 2008-03-29 00:15:28 +0000
      showing that this commit is ancestral to release branches 8.4 and later.
      If no Release: marker appears, the commit hasn't yet made it into any
      release.
      
      3. Add support for release branches older than 7.4.
      
      4. The implementation is improved by running git log on each branch only
      back to where the branch sprouts from master.  This saves a good deal
      of time (about 50% of the runtime when generating the complete history).
      We generate the post-date-mode tags via a direct understanding that
      they should be applied to master commits made before the branch sprouted,
      rather than backing into them via matching (which isn't any too
      reliable when people used identical log messages for successive commits).
      bf429ceb
  12. 26 Sep, 2010 1 commit