1. 01 6月, 2007 6 次提交
    • T
      Fix several hash functions that were taking chintzy shortcuts instead of · 1f559b7d
      Tom Lane 提交于
      delivering a well-randomized hash value.  I got religion on this after
      observing that performance of multi-batch hash join degrades terribly if the
      higher-order bits of hash values aren't random, as indeed was true for say
      hashes of small integer values.  It's now expected and documented that hash
      functions should use hash_any or some comparable method to ensure that all
      bits of their output are about equally random.
      
      initdb forced because this change invalidates existing hash indexes.  For the
      same reason, this isn't back-patchable; the hash join performance problem
      will get a band-aid fix in the back branches.
      1f559b7d
    • B
      Wording improvement. · 397d00af
      Bruce Momjian 提交于
      397d00af
    • B
      Update FAQ_DEV URL to output for text format. · 4dc63193
      Bruce Momjian 提交于
      4dc63193
    • B
    • T
      The shortcut exit that I recently added to ExecInitIndexScan() for · cc3e9dee
      Tom Lane 提交于
      EXPLAIN-only operation was a little too short; it skipped initializing the
      node's result tuple type, which may be needed depending on what's above the
      indexscan node.  Call ExecAssignResultTypeFromTL before exiting.  (For good
      luck I moved up the ExecAssignScanProjectionInfo call as well, so that
      everything except indexscan-specific initialization will still be done.)
      Per example from Grant Finnemore.
      cc3e9dee
    • T
      Change build_index_pathkeys() so that the expressions it builds to represent · 10f719af
      Tom Lane 提交于
      index key columns always have the type expected by the index's associated
      operators, ie, we add RelabelType nodes when dealing with binary-compatible
      index opclasses.  This is needed to get varchar indexes to play nicely with
      the new EquivalenceClass machinery, as per recent gripe from Josh Berkus that
      CVS HEAD was failing to match a varchar index column to a constant restriction
      in the query.
      
      It seems likely that this change will allow removal of a lot of ugly ad-hoc
      RelabelType-stripping that the planner has traditionally done while matching
      expressions to other expressions, but I'll worry about that some other day.
      10f719af
  2. 31 5月, 2007 17 次提交
  3. 29 5月, 2007 6 次提交
  4. 28 5月, 2007 3 次提交
  5. 27 5月, 2007 6 次提交
  6. 26 5月, 2007 1 次提交
    • T
      Create hooks to let a loadable plugin monitor (or even replace) the planner · 604ffd28
      Tom Lane 提交于
      and/or create plans for hypothetical situations; in particular, investigate
      plans that would be generated using hypothetical indexes.  This is a
      heavily-rewritten version of the hooks proposed by Gurjeet Singh for his
      Index Advisor project.  In this formulation, the index advisor can be
      entirely a loadable module instead of requiring a significant part to be
      in the core backend, and plans can be generated for hypothetical indexes
      without requiring the creation and rolling-back of system catalog entries.
      
      The index advisor patch as-submitted is not compatible with these hooks,
      but it needs significant work anyway due to other 8.2-to-8.3 planner
      changes.  With these hooks in the core backend, development of the advisor
      can proceed as a pgfoundry project.
      604ffd28
  7. 25 5月, 2007 1 次提交
    • T
      Remove ruleutils.c's use of varnoold/varoattno as a shortcut for determining · ce5b24ab
      Tom Lane 提交于
      what a Var node refers to.  This is no longer necessary because the new
      flat-range-table representation of plan trees makes it relatively easy to dig
      down through child plan levels to find the original reference; and to keep
      doing it that way, we'd have to store joinaliasvars lists in flattened RTEs,
      as demonstrated by bug report from Leszek Trenkner.  This change makes
      varnoold/varoattno truly just debug aids, which wasn't quite the case before.
      Perhaps we should drop them, or only have them in assert-enabled builds?
      ce5b24ab