1. 19 Jul, 2011 8 commits
  2. 18 Jul, 2011 8 commits
  3. 17 Jul, 2011 2 commits
    • Tom Lane's avatar
      Further thoughts about temp_file_limit patch. · 9473bb96
      Tom Lane authored
      Move FileClose's decrement of temporary_files_size up, so that it will be
      executed even if elog() throws an error.  This is reasonable since if the
      unlink() fails, the fact the file is still there is not our fault, and we
      are going to forget about it anyhow.  So we won't count it against
      temp_file_limit anymore.
      
      Update fileSize and temporary_files_size correctly in FileTruncate.
      We probably don't have any places that truncate temp files, but fd.c
      surely should not assume that.
      9473bb96
    • Tom Lane's avatar
      Add temp_file_limit GUC parameter to constrain temporary file space usage. · 23e5b16c
      Tom Lane authored
      The limit is enforced against the total amount of temp file space used by
      each session.
      
      Mark Kirkwood, reviewed by Cédric Villemain and Tatsuo Ishii
      23e5b16c
  4. 16 Jul, 2011 5 commits
    • Tom Lane's avatar
      Improve make_subplanTargetList to avoid including Vars unnecessarily. · 1bc16a94
      Tom Lane authored
      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
    • Tom Lane's avatar
      Replace errdetail("%s", ...) with errdetail_internal("%s", ...). · 1af37ec9
      Tom Lane authored
      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
    • Tom Lane's avatar
      Use errdetail_internal() for SSI transaction cancellation details. · 3ee7c871
      Tom Lane authored
      Per discussion, these seem too technical to be worth translating.
      
      Kevin Grittner
      3ee7c871
    • Tom Lane's avatar
      Add an errdetail_internal() ereport auxiliary routine. · ed7ed767
      Tom Lane authored
      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
    • Magnus Hagander's avatar
      Fix SSPI login when multiple roundtrips are required · 0886dde5
      Magnus Hagander authored
      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. 15 Jul, 2011 5 commits
    • Alvaro Herrera's avatar
      Set different deadlock_timeout on each session in new isolation tests · d71197cd
      Alvaro Herrera authored
      This provides deterministic deadlock-detection ordering for new
      isolation tests, fixing the sporadic failures in them.
      
      Author: Noah Misch
      d71197cd
    • Peter Eisentraut's avatar
      Set information_schema.tables.commit_action to null · bf3c5856
      Peter Eisentraut authored
      The commit action of temporary tables is currently not cataloged, so
      we can't easily show it.  The previous value was outdated from before
      we had different commit actions.
      bf3c5856
    • Bruce Momjian's avatar
      Doc clarification for pg_locks columns. · c1129a14
      Bruce Momjian authored
      Florian Pflug
      c1129a14
    • Heikki Linnakangas's avatar
      Change the way the offset of downlink is stored in GISTInsertStack. · 8d260911
      Heikki Linnakangas authored
      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
    • Heikki Linnakangas's avatar
      Fix two ancient bugs in GiST code to re-find a parent after page split: · bc175eb8
      Heikki Linnakangas authored
      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
  6. 14 Jul, 2011 7 commits
  7. 13 Jul, 2011 3 commits
  8. 12 Jul, 2011 2 commits
    • Tom Lane's avatar
      Avoid listing ungrouped Vars in the targetlist of Agg-underneath-Window. · c1d9579d
      Tom Lane authored
      Regular aggregate functions in combination with, or within the arguments
      of, window functions are OK per spec; they have the semantics that the
      aggregate output rows are computed and then we run the window functions
      over that row set.  (Thus, this combination is not really useful unless
      there's a GROUP BY so that more than one aggregate output row is possible.)
      The case without GROUP BY could fail, as recently reported by Jeff Davis,
      because sloppy construction of the Agg node's targetlist resulted in extra
      references to possibly-ungrouped Vars appearing outside the aggregate
      function calls themselves.  See the added regression test case for an
      example.
      
      Fixing this requires modifying the API of flatten_tlist and its underlying
      function pull_var_clause.  I chose to make pull_var_clause's API for
      aggregates identical to what it was already doing for placeholders, since
      the useful behaviors turn out to be the same (error, report node as-is, or
      recurse into it).  I also tightened the error checking in this area a bit:
      if it was ever valid to see an uplevel Var, Aggref, or PlaceHolderVar here,
      that was a long time ago, so complain instead of ignoring them.
      
      Backpatch into 9.1.  The failure exists in 8.4 and 9.0 as well, but seeing
      that it only occurs in a basically-useless corner case, it doesn't seem
      worth the risks of changing a function API in a minor release.  There might
      be third-party code using pull_var_clause.
      c1d9579d
    • Alvaro Herrera's avatar
      Add support for blocked commands in isolationtester · 846af54d
      Alvaro Herrera authored
      This enables us to test that blocking commands (such as foreign keys
      checks that conflict with some other lock) act as intended.  The set of
      tests that this adds is pretty minimal, but can easily be extended by
      adding new specs.
      
      The intention is that this will serve as a basis for ensuring that
      further tweaks of locking implementation preserve (or improve) existing
      behavior.
      
      Author: Noah Misch
      846af54d