1. 07 2月, 2014 4 次提交
    • H
      Fix thinko in comment. · e001030c
      Heikki Linnakangas 提交于
      Amit Langote
      e001030c
    • T
      In RelationClearRelation, postpone cache reload if !IsTransactionState(). · 8de3e410
      Tom Lane 提交于
      We may process relcache flush requests during transaction startup or
      shutdown.  In general it's not terribly safe to do catalog access at those
      times, so the code's habit of trying to immediately revalidate unflushable
      relcache entries is risky.  Although there are no field trouble reports
      that are positively traceable to this, we have been able to demonstrate
      failure of the assertions recently added in RelationIdGetRelation() and
      SearchCatCache().  On the other hand, it seems safe to just postpone
      revalidation of the cache entry until we're inside a valid transaction.
      The one case where this is questionable is where we're exiting a
      subtransaction and the outer transaction is holding the relcache entry open
      --- but if we made any significant changes to the rel inside such a
      subtransaction, we've got problems anyway.  There are mechanisms in place
      to prevent that (to wit, locks for cross-session cases and
      CheckTableNotInUse() for intra-session cases), so let's trust to those
      mechanisms to keep us out of trouble.
      8de3e410
    • A
      45e1b6c4
    • T
      Assert(IsTransactionState()) in RelationIdGetRelation(). · ddfc9cb0
      Tom Lane 提交于
      Commit 42c80c69 added an
      Assert(IsTransactionState()) in SearchCatCache(), to catch
      any code that thought it could do a catcache lookup outside
      transactions.  Extend the same idea to relcache lookups.
      ddfc9cb0
  2. 06 2月, 2014 4 次提交
    • P
      doc: Disable indentation of XHTML output · f31005e3
      Peter Eisentraut 提交于
      Indenting the XHTML output can lead to incorrect rendering.  This only
      affects the build via XSLT.
      f31005e3
    • P
      Fix whitespace · f6523375
      Peter Eisentraut 提交于
      f6523375
    • T
      Remove unnecessary relcache flushes after changing btree metapages. · ac8bc3b6
      Tom Lane 提交于
      These flushes were added in my commit d2896a9e, which added the btree
      logic that keeps a cached copy of the index metapage data in index relcache
      entries.  The idea was to ensure that other backends would promptly update
      their cached copies after a change.  However, this is not really necessary,
      since _bt_getroot() has adequate defenses against believing a stale root
      page link, and _bt_getrootheight() doesn't have to be 100% right.
      Moreover, if it were necessary, a relcache flush would be an unreliable way
      to do it, since the sinval mechanism believes that relcache flush requests
      represent transactional updates, and therefore discards them on transaction
      rollback.  Therefore, we might as well drop these flush requests and save
      the time to rebuild the whole relcache entry after a metapage change.
      
      If we ever try to support in-place truncation of btree indexes, it might
      be necessary to revisit this issue so that _bt_getroot() can't get caught
      by trying to follow a metapage link to a page that no longer exists.
      A possible solution to that is to make use of an smgr, rather than
      relcache, inval request to force other backends to discard their cached
      metapages.  But for the moment this is not worth pursuing.
      ac8bc3b6
    • R
      Minor improvements to replication slot documentation. · 14aa601f
      Robert Haas 提交于
      Fix a thinko pointed out by Jeff Davis, and convert a couple of other
      references into links.
      14aa601f
  3. 05 2月, 2014 1 次提交
    • P
      PL/Perl: Fix compiler warning · 4e182361
      Peter Eisentraut 提交于
      The code was assigning a (Datum) 0 to a void pointer.  That creates a
      warning from clang 3.4.  It was probably a thinko to begin with.
      4e182361
  4. 04 2月, 2014 6 次提交
    • T
      Improve connection-failure error handling in contrib/postgres_fdw. · 00d4f2af
      Tom Lane 提交于
      postgres_fdw tended to say "unknown error" if it tried to execute a command
      on an already-dead connection, because some paths in libpq just return a
      null PGresult for such cases.  Out-of-memory might result in that, too.
      To fix, pass the PGconn to pgfdw_report_error, and look at its
      PQerrorMessage() string if we can't get anything out of the PGresult.
      
      Also, fix the transaction-exit logic to reliably drop a dead connection.
      It was attempting to do that already, but it assumed that only connection
      cache entries with xact_depth > 0 needed to be examined.  The folly in that
      is that if we fail while issuing START TRANSACTION, we'll not have bumped
      xact_depth.  (At least for the case I was testing, this fix masks the
      other problem; but it still seems like a good idea to have the PGconn
      fallback logic.)
      
      Per investigation of bug #9087 from Craig Lucas.  Backpatch to 9.3 where
      this code was introduced.
      00d4f2af
    • F
      Fix comparison of an array of characters with zero to compare with '\0' instead. · 489e6ac5
      Fujii Masao 提交于
      Report from Andres Freund.
      489e6ac5
    • R
      Rephrase text to avoid links in regress.sgml · c1fe08eb
      Robert Haas 提交于
      Otherwise, the standalone regress_README build gets unhappy.
      c1fe08eb
    • T
      Fix lexing of U& sequences just before EOF. · 0c2338ab
      Tom Lane 提交于
      Commit a5ff502f was a brick shy of a load
      in the backend lexer too, not just psql.  Per further testing of bug #9068.
      
      In passing, improve related comments.
      0c2338ab
    • T
      Fix *-qualification of named parameters in SQL-language functions. · 0def2573
      Tom Lane 提交于
      Given a composite-type parameter named x, "$1.*" worked fine, but "x.*"
      not so much.  This has been broken since named parameter references were
      added in commit 9bff0780, so patch back
      to 9.2.  Per bug #9085 from Hardy Falk.
      0def2573
    • R
      Adjust pg_sleep_for/pg_sleep_until to use clock_timestamp. · 80353f35
      Robert Haas 提交于
      Otherwise, pg_sleep_until does the wrong thing in a multi-statement
      transaction.
      
      Julien Rouhaud
      80353f35
  5. 03 2月, 2014 6 次提交
  6. 02 2月, 2014 8 次提交
    • F
      Add primary_slotname to recovery.conf.sample. · 0753bdb3
      Fujii Masao 提交于
      0753bdb3
    • F
      Fix typos in docs and comments. · 63be3b78
      Fujii Masao 提交于
      Thom Brown
      63be3b78
    • A
      Fix makefile syntax. · 9abed7d1
      Andrew Dunstan 提交于
      9abed7d1
    • T
      Fix some wide-character bugs in the text-search parser. · 082c0dfa
      Tom Lane 提交于
      In p_isdigit and other character class test functions generated by the
      p_iswhat macro, the code path for non-C locales with multibyte encodings
      contained a bogus pointer cast that would accidentally fail to malfunction
      if types wchar_t and wint_t have the same width.  Apparently that is true
      on most platforms, but not on recent Cygwin releases.  Remove the cast,
      as it seems completely unnecessary (I think it arose from a false analogy
      to the need to cast to unsigned char when dealing with the <ctype.h>
      functions).  Per bug #8970 from Marco Atzeri.
      
      In the same functions, the code path for C locale with a multibyte encoding
      simply ANDed each wide character with 0xFF before passing it to the
      corresponding <ctype.h> function.  This could result in false positive
      answers for some non-ASCII characters, so use a range test instead.
      Noted by me while investigating Marco's complaint.
      
      Also, remove some useless though not actually buggy maskings and casts
      in the hand-coded p_isalnum and p_isalpha functions, which evidently
      got tested a bit more carefully than the macro-generated functions.
      082c0dfa
    • A
      fix whitespace · c8158a2e
      Andrew Dunstan 提交于
      c8158a2e
    • T
      Fix some more bugs in signal handlers and process shutdown logic. · 214c7a4f
      Tom Lane 提交于
      WalSndKill was doing things exactly backwards: it should first clear
      MyWalSnd (to stop signal handlers from touching MyWalSnd->latch),
      then disown the latch, and only then mark the WalSnd struct unused by
      clearing its pid field.
      
      Also, WalRcvSigUsr1Handler and worker_spi_sighup failed to preserve
      errno, which is surely a requirement for any signal handler.
      
      Per discussion of recent buildfarm failures.  Back-patch as far
      as the relevant code exists.
      214c7a4f
    • A
      Don't use deprecated dllwrap on Cygwin. · 7e1531a4
      Andrew Dunstan 提交于
      The preferred method is to use "cc -shared", and this allows binaries
      to be rebased if required, unlike dllwrap.
      
      Backpatch to 9.0 where we have buildfarm coverage.
      
      There are still some issues with Cygwin, especially modern Cygwin, but
      this helps us get closer to good support.
      
      Marco Atzeri.
      7e1531a4
    • A
      Copy the libpq DLL to the bin directory on Mingw and Cygwin. · d587298b
      Andrew Dunstan 提交于
      This has long been done by the MSVC build system, and has caused
      confusion in the past when programs like psql have failed to start
      because they can't find the DLL. If it's in the same directory as it now
      will be they will find it.
      
      Backpatch to all live branches.
      d587298b
  7. 01 2月, 2014 11 次提交