1. 20 7月, 2011 4 次提交
    • A
      Increase deadlock_timeout to 100ms in FK isolation tests · d6db0e4e
      Alvaro Herrera 提交于
      The previous value of 20ms is dangerously close to the time actually
      spent just waiting for the deadlock to happen, so on occasion it causes
      the test to fail simply because the other session didn't get to run
      early enough, not managing to cause the deadlock that needs to be
      detected.  With this new value, it's expected that most machines on
      normal load will be able to pass the test.
      
      Author: Noah Misch
      d6db0e4e
    • A
      Add expected regress output on stricter isolation levels · a0eae1a2
      Alvaro Herrera 提交于
      These new files allow the new FK tests on isolationtester to pass on the
      serializable and repeatable read isolation levels (which are untested
      by the buildfarm).
      
      Author: Kevin Grittner
      Reviewed by Noah Misch
      a0eae1a2
    • S
      Remove O(N^2) performance issue with multiple SAVEPOINTs. · 7cb71228
      Simon Riggs 提交于
      Subtransaction locks now released en masse at main commit, rather than
      repeatedly re-scanning for locks as we ascend the nested transaction tree.
      Split transaction state TBLOCK_SUBEND into two states, TBLOCK_SUBCOMMIT
      and TBLOCK_SUBRELEASE to allow the commit path to be optimised using
      the existing code in ResourceOwnerRelease() which appears to have been
      intended for this usage, judging from comments therein.
      7cb71228
    • R
      Some refinement for the "fast path" lock patch. · 8e5ac74c
      Robert Haas 提交于
      1. In GetLockStatusData, avoid initializing instance before we've ensured
      that the array is large enough.  Otherwise, if repalloc moves the block
      around, we're hosed.
      
      2. Add the word "Relation" to the name of some identifiers, to avoid
      assuming that the fast-path mechanism will only ever apply to relations
      (though these particular parts certainly will).  Some of the macros
      could possibly use similar treatment, but the names are getting awfully
      long already.
      
      3. Add a missing word to comment in AtPrepare_Locks().
      8e5ac74c
  2. 19 7月, 2011 9 次提交
  3. 18 7月, 2011 8 次提交
  4. 17 7月, 2011 5 次提交
    • T
      Improve make_subplanTargetList to avoid including Vars unnecessarily. · 1bc16a94
      Tom Lane 提交于
      If a Var was used only in a GROUP BY expression, the previous
      implementation would include the Var by itself (as well as the expression)
      in the generated targetlist.  This wouldn't affect the efficiency of the
      scan/join part of the plan at all, but it could result in passing
      unnecessarily-wide rows through sorting and grouping steps.  It turns out
      to take only a little more code, and not noticeably more time, to generate
      a tlist without such redundancy, so let's do that.  Per a recent gripe from
      HarmeekSingh Bedi.
      1bc16a94
    • T
      Replace errdetail("%s", ...) with errdetail_internal("%s", ...). · 1af37ec9
      Tom Lane 提交于
      There may be some other places where we should use errdetail_internal,
      but they'll have to be evaluated case-by-case.  This commit just hits
      a bunch of places where invoking gettext is obviously a waste of cycles.
      1af37ec9
    • T
      Use errdetail_internal() for SSI transaction cancellation details. · 3ee7c871
      Tom Lane 提交于
      Per discussion, these seem too technical to be worth translating.
      
      Kevin Grittner
      3ee7c871
    • T
      Add an errdetail_internal() ereport auxiliary routine. · ed7ed767
      Tom Lane 提交于
      This function supports untranslated detail messages, in the same way that
      errmsg_internal supports untranslated primary messages.  We've needed this
      for some time IMO, but discussion of some cases in the SSI code provided
      the impetus to actually add it.
      
      Kevin Grittner, with minor adjustments by me
      ed7ed767
    • M
      Fix SSPI login when multiple roundtrips are required · 0886dde5
      Magnus Hagander 提交于
      This fixes SSPI login failures showing "The function
      requested is not supported", often showing up when connecting
      to localhost. The reason was not properly updating the SSPI
      handle when multiple roundtrips were required to complete the
      authentication sequence.
      
      Report and analysis by Ahmed Shinwari, patch by Magnus Hagander
      0886dde5
  5. 16 7月, 2011 3 次提交
  6. 15 7月, 2011 7 次提交
    • H
      Change the way the offset of downlink is stored in GISTInsertStack. · 8d260911
      Heikki Linnakangas 提交于
      GISTInsertStack.childoffnum used to mean "offset of the downlink in this
      node, pointing to the child node in the stack". It's now replaced with
      downlinkoffnum, which means "offset of the downlink in the parent of this
      node". gistFindPath() already used childoffnum with this new meaning, and
      had an extra step at the end to pull all the childoffnum values down one
      node in the stack, to adjust the stack for the meaning that childoffnum had
      elsewhere. That's no longer required.
      
      The reason to do this now is this new representation is more convenient for
      the GiST fast build patch that Alexander Korotkov is working on.
      
      While we're at it, replace the linked list used in gistFindPath with a
      standard List, and make gistFindPath() static.
      
      Alexander Korotkov, with some changes by me.
      8d260911
    • H
      Fix two ancient bugs in GiST code to re-find a parent after page split: · bc175eb8
      Heikki Linnakangas 提交于
      First, when following a right-link, we incorrectly marked the current page
      as the parent of the right sibling. In reality, the parent of the right page
      is the same as the parent of the current page (or some page to the right of
      it, gistFindCorrectParent() will sort that out).
      
      Secondly, when we follow a right-link, we must prepend, not append, the right
      page to our list of pages to visit. That's because we assume that once we
      hit a leaf page in the list, all the rest are leaf pages too, and give up.
      
      To hit these bugs, you need concurrent actions and several unlucky accidents.
      Another backend must split the root page, while you're in process of
      splitting a lower-level page. Furthermore, while you scan the internal nodes
      to re-find the parent, another backend needs to again split some more internal
      pages. Even then, the bugs don't necessarily manifest as user-visible errors
      or index corruption.
      
      While we're at it, make the error reporting a bit better if gistFindPath()
      fails to re-find the parent. It used to be an assertion, but an elog() seems
      more appropriate.
      
      Backpatch to all supported branches.
      bc175eb8
    • B
      In docs, start window function sentence with "The asterisk (*)" rather · 1be9cdf6
      Bruce Momjian 提交于
      than "*";  it is confusing to start a sentence with a symbol.
      1be9cdf6
    • T
      In planner, don't assume that empty parent tables aren't really empty. · f3ff0433
      Tom Lane 提交于
      There's a heuristic in estimate_rel_size() to clamp the minimum size
      estimate for a table to 10 pages, unless we can see that vacuum or analyze
      has been run (and set relpages to something nonzero, so this will always
      happen for a table that's actually empty).  However, it would be better
      not to do this for inheritance parent tables, which very commonly are
      really empty and can be expected to stay that way.  Per discussion of a
      recent pgsql-performance report from Anish Kejariwal.  Also prevent it
      from happening for indexes (although this is more in the nature of
      documentation, since CREATE INDEX normally initializes relpages to
      something nonzero anyway).
      
      Back-patch to 9.0, because the ability to collect statistics across a
      whole inheritance tree has improved the planner's estimates to the point
      where this relatively small error makes a significant difference.  In the
      referenced report, merge or hash joins were incorrectly estimated as
      cheaper than a nestloop with inner indexscan on the inherited table.
      That was less likely before 9.0 because the lack of inherited stats would
      have resulted in a default (and rather pessimistic) estimate of the cost
      of a merge or hash join.
      f3ff0433
    • A
      Fix broken markup · c529f880
      Alvaro Herrera 提交于
      c529f880
    • P
      Set information_schema.routines.is_udt_dependent to NO · f4678c20
      Peter Eisentraut 提交于
      It previously said YES, but that is incorrect.
      f4678c20
    • P
      Small update on suggested startup file locations · a99d45b8
      Peter Eisentraut 提交于
      Debian/Ubuntu don't have a /etc/rc.d/ directory, so add some
      alternative names as suggestions.
      a99d45b8
  7. 14 7月, 2011 3 次提交
  8. 13 7月, 2011 1 次提交