1. 14 6月, 2012 6 次提交
    • T
      Stamp library minor versions for 9.3. · 357c5493
      Tom Lane 提交于
      This includes fixing the MSVC copy of ecpg/preproc's version info, which
      seems to have been overlooked repeatedly.  Can't we fix that so there are
      not two copies??
      357c5493
    • T
      Stamp HEAD as 9.3devel. · bed88fce
      Tom Lane 提交于
      Let the hacking begin ...
      bed88fce
    • T
      Revisit error message details for JSON input parsing. · 80edfd76
      Tom Lane 提交于
      Instead of identifying error locations only by line number (which could
      be entirely unhelpful with long input lines), provide a fragment of the
      input text too, placing this info in a new CONTEXT entry.  Make the
      error detail messages conform more closely to style guidelines, fix
      failure to expose some of them for translation, ensure compiler can
      check formats against supplied parameters.
      80edfd76
    • T
      Revert "Reduce checkpoints and WAL traffic on low activity database server" · b8b69d89
      Tom Lane 提交于
      This reverts commit 18fb9d8d.  Per
      discussion, it does not seem like a good idea to allow committed changes to
      go un-checkpointed indefinitely, as could happen in a low-traffic server;
      that makes us entirely reliant on the WAL stream with no redundancy that
      might aid data recovery in case of disk failure.
      
      This re-introduces the original problem of hot-standby setups generating a
      small continuing stream of WAL traffic even when idle, but there are other
      ways to address that without compromising crash recovery, so we'll revisit
      that issue in a future release cycle.
      b8b69d89
    • T
      Deprecate use of GLOBAL and LOCAL in temp table creation. · c3bc76bd
      Tom Lane 提交于
      Aside from adjusting the documentation to say that these are deprecated,
      we now report a warning (not an error) for use of GLOBAL, since it seems
      fairly likely that we might change that to request SQL-spec-compliant temp
      table behavior in the foreseeable future.  Although our handling of LOCAL
      is equally nonstandard, there is no evident interest in ever implementing
      SQL modules, and furthermore some other products interpret LOCAL as
      behaving the same way we do.  So no expectation of change and no warning
      for LOCAL; but it still seems a good idea to deprecate writing it.
      
      Noah Misch
      c3bc76bd
    • T
      Support Linux's oom_score_adj API as well as the older oom_adj API. · 93f4d7f8
      Tom Lane 提交于
      The simplest way to handle this is just to copy-and-paste the relevant
      code block in fork_process.c, so that's what I did. (It's possible that
      something more complicated would be useful to packagers who want to work
      with either the old or the new API; but at this point the number of such
      people is rapidly approaching zero, so let's just get the minimal thing
      done.)  Update relevant documentation as well.
      93f4d7f8
  2. 13 6月, 2012 2 次提交
  3. 12 6月, 2012 4 次提交
    • R
      Mark JSON error detail messages for translation. · 36b7e3da
      Robert Haas 提交于
      Per gripe from Tom Lane.
      36b7e3da
    • T
      Ensure pg_ctl behaves sanely when data directory is not specified. · 51e61b04
      Tom Lane 提交于
      Commit aaa6e1de introduced multiple hazards
      in the case where pg_ctl is executed with neither a -D switch nor any
      PGDATA environment variable.  It would dump core on machines which are
      unforgiving about printf("%s", NULL), or failing that possibly give a
      rather unhelpful complaint about being unable to execute "postgres -C",
      rather than the logically prior complaint about not being told where the
      data directory is.
      
      Edmund Horner's report suggests that there is another, Windows-specific
      hazard here, but I'm not the person to fix that; it would in any case only
      be significant when trying to use a config-only PGDATA pointer.
      51e61b04
    • T
      Fix pg_dump output to a named tar-file archive. · bf0945e8
      Tom Lane 提交于
      "pg_dump -Ft -f filename ..." got broken by my recent commit
      4317e024, which I fear I only tested
      in the output-to-stdout variant.
      
      Report and fix by Muhammad Asif Naeem.
      bf0945e8
    • P
      pg_receivexlog: Rename option --dir to --directory · 7d754961
      Peter Eisentraut 提交于
      getopt_long() allows abbreviating long options, so we might as well
      give the option the full name, and users can abbreviate it how they
      like.
      
      Do some general polishing of the --help output at the same time.
      7d754961
  4. 11 6月, 2012 4 次提交
  5. 10 6月, 2012 4 次提交
  6. 09 6月, 2012 2 次提交
  7. 08 6月, 2012 6 次提交
    • R
      When using libpq URI syntax, error out on invalid parameter names. · 3b5548a3
      Robert Haas 提交于
      Dan Farina
      3b5548a3
    • T
      Scan the buffer pool just once, not once per fork, during relation drop. · ece01aae
      Tom Lane 提交于
      This provides a speedup of about 4X when NBuffers is large enough.
      There is also a useful reduction in sinval traffic, since we
      only do CacheInvalidateSmgr() once not once per fork.
      
      Simon Riggs, reviewed and somewhat revised by Tom Lane
      ece01aae
    • P
      Message style improvements · 5d0109bd
      Peter Eisentraut 提交于
      5d0109bd
    • T
      Do unlocked prechecks in bufmgr.c loops that scan the whole buffer pool. · e8d029a3
      Tom Lane 提交于
      DropRelFileNodeBuffers, DropDatabaseBuffers, FlushRelationBuffers, and
      FlushDatabaseBuffers have to scan the whole shared_buffers pool because
      we have no index structure that would find the target buffers any more
      efficiently than that.  This gets expensive with large NBuffers.  We can
      shave some cycles from these loops by prechecking to see if the current
      buffer is interesting before we acquire the buffer header lock.
      Ordinarily such a test would be unsafe, but in these cases it should be
      safe because we are already assuming that the caller holds a lock that
      prevents any new target pages from being loaded into the buffer pool
      concurrently.  Therefore, no buffer tag should be changing to a value of
      interest, only away from a value of interest.  So a false negative match
      is impossible, while a false positive is safe because we'll recheck after
      acquiring the buffer lock.  Initial testing says that this speeds these
      loops by a factor of 2X to 3X on common Intel hardware.
      
      Patch for DropRelFileNodeBuffers by Jeff Janes (based on an idea of
      Heikki's); extended to the remaining sequential scans by Tom Lane
      e8d029a3
    • S
      Wake WALSender to reduce data loss at failover for async commit. · 2c8a4e9b
      Simon Riggs 提交于
      WALSender now woken up after each background flush by WALwriter, avoiding
      multi-second replication delay for an all-async commit workload.
      Replication delay reduced from 7s with default settings to 200ms and often
      much less, allowing significantly reduced data loss at failover.
      
      Andres Freund and Simon Riggs
      2c8a4e9b
    • R
      Fix more crash-safe visibility map bugs, and improve comments. · b50991ee
      Robert Haas 提交于
      In lazy_scan_heap, we could issue bogus warnings about incorrect
      information in the visibility map, because we checked the visibility
      map bit before locking the heap page, creating a race condition.  Fix
      by rechecking the visibility map bit before we complain.  Rejigger
      some related logic so that we rely on the possibly-outdated
      all_visible_according_to_vm value as little as possible.
      
      In heap_multi_insert, it's not safe to clear the visibility map bit
      before beginning the critical section.  The visibility map is not
      crash-safe unless we treat clearing the bit as a critical operation.
      Specifically, if the transaction were to error out after we set the
      bit and before entering the critical section, we could end up writing
      the heap page to disk (with the bit cleared) and crashing before the
      visibility map page made it to disk.  That would be bad.  heap_insert
      has this correct, but somehow the order of operations got rearranged
      when heap_multi_insert was added.
      
      Also, add some more comments to visibilitymap_test, lazy_scan_heap,
      and IndexOnlyNext, expounding on concurrency issues.
      
      Per extensive code review by Andres Freund, and further review by Tom
      Lane, who also made the original report about the bogus warnings.
      b50991ee
  8. 05 6月, 2012 2 次提交
  9. 03 6月, 2012 1 次提交
    • T
      Fix memory leaks in failure paths in buildACLCommands and parseAclItem. · d73b7f97
      Tom Lane 提交于
      This is currently only cosmetic, since all the call sites just curl up
      and die in event of a failure return.  It might be important for some
      future use-case, though, and in any case it quiets warnings from the
      clang static analyzer (as reported by Anna Zaks).
      
      Josh Kupershmidt
      d73b7f97
  10. 01 6月, 2012 5 次提交
  11. 31 5月, 2012 4 次提交
    • T
      Improve comment for GetStableLatestTransactionId(). · a04dc87d
      Tom Lane 提交于
      a04dc87d
    • S
      Only throw recovery conflicts when InHotStandby. Bug fix to recent · a2b516da
      Simon Riggs 提交于
      patch to allow Index Only Scans on Hot Standby.
      
      Bug report from Jaime Casanova
      a2b516da
    • T
      Update time zone data files to tzdata release 2012c. · c8105e62
      Tom Lane 提交于
      DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands,
      Gaza, Haiti, Hebron, Morocco, Syria, Tokelau Islands.
      Historical corrections for Canada.
      c8105e62
    • T
      Force PL and range-type support functions to be owned by a superuser. · ad0009e7
      Tom Lane 提交于
      We allow non-superusers to create procedural languages (with restrictions)
      and range datatypes.  Previously, the automatically-created support
      functions for these objects ended up owned by the creating user.  This
      represents a rather considerable security hazard, because the owning user
      might be able to alter a support function's definition in such a way as to
      crash the server, inject trojan-horse SQL code, or even execute arbitrary
      C code directly.  It appears that right now the only actually exploitable
      problem is the infinite-recursion bug fixed in the previous patch for
      CVE-2012-2655.  However, it's not hard to imagine that future additions of
      more ALTER FUNCTION capability might unintentionally open up new hazards.
      To forestall future problems, cause these support functions to be owned by
      the bootstrap superuser, not the user creating the parent object.
      ad0009e7