1. 30 Aug, 2011 6 commits
  2. 29 Aug, 2011 5 commits
    • Tom Lane's avatar
      Fix concat_ws() to not insert a separator after leading NULL argument(s). · a5b7640b
      Tom Lane authored
      Per bug #6181 from Itagaki Takahiro.  Also do some marginal code cleanup
      and improve error handling.
      a5b7640b
    • Tom Lane's avatar
      Use a non-locking test in TAS_SPIN() on all IA64 platforms. · be1e8053
      Tom Lane authored
      Per my testing, this works just as well with gcc as it does with HP's
      compiler; and there is no reason to think that the effect doesn't occur
      with icc, either.
      
      Also, rewrite the header comment about enforcing sequencing around spinlock
      operations, per Robert's gripe that it was misleading.
      be1e8053
    • Robert Haas's avatar
      Improve spinlock performance for HP-UX, ia64, non-gcc. · c01c25fb
      Robert Haas authored
      At least on this architecture, it's very important to spin on a
      non-atomic instruction and only retry the atomic once it appears
      that it will succeed.  To fix this, split TAS() into two macros:
      TAS(), for trying to grab the lock the first time, and TAS_SPIN(),
      for spinning until we get it.  TAS_SPIN() defaults to same as TAS(),
      but we can override it when we know there's a better way.
      
      It's likely that some of the other cases in s_lock.h require
      similar treatment, but this is the only one we've got conclusive
      evidence for at present.
      c01c25fb
    • Tom Lane's avatar
      Actually, all of parallel restore's limitations should be tested earlier. · 6e1f1fee
      Tom Lane authored
      On closer inspection, whining in restore_toc_entries_parallel is really
      much too late for any user-facing error case.  The right place to do it
      is at the start of RestoreArchive(), before we've done anything interesting
      (suh as trying to DROP all the targets ...)
      
      Back-patch to 8.4, where parallel restore was introduced.
      6e1f1fee
    • Tom Lane's avatar
      Be more user-friendly about unsupported cases for parallel pg_restore. · d6e7abe4
      Tom Lane authored
      If we are unable to do a parallel restore because the input file is stdin
      or is otherwise unseekable, we should complain and fail immediately, not
      after having done some of the restore.  Complaining once per thread isn't
      so cool either, and the messages should be worded to make it clear this is
      an unsupported case not some weird race-condition bug.  Per complaint from
      Lonni Friedman.
      
      Back-patch to 8.4, where parallel restore was introduced.
      d6e7abe4
  3. 28 Aug, 2011 2 commits
  4. 27 Aug, 2011 10 commits
    • Tom Lane's avatar
      Don't assume that "E" response to NEGOTIATE_SSL_CODE means pre-7.0 server. · a49fbaaf
      Tom Lane authored
      These days, such a response is far more likely to signify a server-side
      problem, such as fork failure.  Reporting "server does not support SSL"
      (in sslmode=require) could be quite misleading.  But the results could
      be even worse in sslmode=prefer: if the problem was transient and the
      next connection attempt succeeds, we'll have silently fallen back to
      protocol version 2.0, possibly disabling features the user needs.
      
      Hence, it seems best to just eliminate the assumption that backing off
      to non-SSL/2.0 protocol is the way to recover from an "E" response, and
      instead treat the server error the same as we would in non-SSL cases.
      
      I tested this change against a pre-7.0 server, and found that there
      was a second logic bug in the "prefer" path: the test to decide whether
      to make a fallback connection attempt assumed that we must have opened
      conn->ssl, which in fact does not happen given an "E" response.  After
      fixing that, the code does indeed connect successfully to pre-7.0,
      as long as you didn't set sslmode=require.  (If you did, you get
      "Unsupported frontend protocol", which isn't completely off base
      given the server certainly doesn't support SSL.)
      
      Since there seems no reason to believe that pre-7.0 servers exist anymore
      in the wild, back-patch to all supported branches.
      a49fbaaf
    • Peter Eisentraut's avatar
    • Tom Lane's avatar
      Ensure we discard unread/unsent data when abandoning a connection attempt. · 724e30c9
      Tom Lane authored
      There are assorted situations wherein PQconnectPoll() will abandon a
      connection attempt and try again with different parameters (eg, SSL versus
      not SSL).  However, the code forgot to discard any pending data in libpq's
      I/O buffers when doing this.  In at least one case (server returns E
      message during SSL negotiation), there is unread input data which bollixes
      the next connection attempt.  I have not checked to see whether this is
      possible in the other cases where we close the socket and retry, but it
      seems like a matter of good defensive programming to add explicit
      buffer-flushing code to all of them.
      
      This is one of several issues exposed by Daniel Farina's report of
      misbehavior after a server-side fork failure.
      
      This has been wrong since forever, so back-patch to all supported branches.
      724e30c9
    • Bruce Momjian's avatar
      Allow more include files to be compiled in their own by adding missing · 4bd7333b
      Bruce Momjian authored
      include dependencies.
      
      Modify pgcompinclude to skip a common fcinfo error.
      4bd7333b
    • Bruce Momjian's avatar
      Add support for #elif to pgrminclude. · d010391a
      Bruce Momjian authored
      d010391a
    • Peter Eisentraut's avatar
      Implement the information schema with_hierarchy column · fd5b397c
      Peter Eisentraut authored
      In PostgreSQL, this is included in the SELECT privilege, so show YES
      or NO depending on whether SELECT is granted.
      fd5b397c
    • Peter Eisentraut's avatar
      Spelling improvement · 3104cc89
      Peter Eisentraut authored
      3104cc89
    • Bruce Momjian's avatar
      68c019a5
    • Bruce Momjian's avatar
      Change references of CVS to .git. · e7088713
      Bruce Momjian authored
      e7088713
    • Bruce Momjian's avatar
      Add postgres.h to *.c files for pg_upgrade, ltree, and btree_gist, and · f1312b5e
      Bruce Momjian authored
      remove from local *.h files.
      
      Per suggestion from Alvaro.
      f1312b5e
  5. 26 Aug, 2011 17 commits