1. 03 5月, 2003 1 次提交
    • T
      Portal and memory management infrastructure for extended query protocol. · de28dc9a
      Tom Lane 提交于
      Both plannable queries and utility commands are now always executed
      within Portals, which have been revamped so that they can handle the
      load (they used to be good only for single SELECT queries).  Restructure
      code to push command-completion-tag selection logic out of postgres.c,
      so that it won't have to be duplicated between simple and extended queries.
      initdb forced due to addition of a field to Query nodes.
      de28dc9a
  2. 21 1月, 2003 1 次提交
    • T
      IN clauses appearing at top level of WHERE can now be handled as joins. · bdfbfde1
      Tom Lane 提交于
      There are two implementation techniques: the executor understands a new
      JOIN_IN jointype, which emits at most one matching row per left-hand row,
      or the result of the IN's sub-select can be fed through a DISTINCT filter
      and then joined as an ordinary relation.
      Along the way, some minor code cleanup in the optimizer; notably, break
      out most of the jointree-rearrangement preprocessing in planner.c and
      put it in a new file prep/prepjointree.c.
      bdfbfde1
  3. 17 12月, 2002 1 次提交
    • T
      Fix GEQO to work again in CVS tip, by being more careful about memory · 9f76d0d9
      Tom Lane 提交于
      allocation in best_inner_indexscan().  While at it, simplify GEQO's
      interface to the main planner --- make_join_rel() offers exactly the
      API it really wants, whereas calling make_rels_by_clause_joins() and
      make_rels_by_clauseless_joins() required jumping through hoops.
      Rewrite gimme_tree for clarity (sometimes iteration is much better than
      recursion), and approximately halve GEQO's runtime by recognizing that
      tours of the forms (a,b,c,d,...) and (b,a,c,d,...) are equivalent
      because of symmetry in make_join_rel().
      9f76d0d9
  4. 21 6月, 2002 1 次提交
  5. 22 3月, 2001 1 次提交
  6. 25 1月, 2001 1 次提交
  7. 18 1月, 2001 1 次提交
  8. 20 9月, 2000 1 次提交
    • T
      Fix GEQO optimizer to work correctly with new outer-join-capable · ba2ea6e0
      Tom Lane 提交于
      query representation.  Note that GEQO_RELS setting is now interpreted
      as the number of top-level items in the FROM list, not necessarily the
      number of relations in the query.  This seems appropriate since we are
      only doing join-path searching over the top-level items.
      ba2ea6e0
  9. 13 9月, 2000 1 次提交
  10. 28 7月, 2000 1 次提交
  11. 13 7月, 2000 1 次提交
    • P
      Remove a bunch of unused configure tests, in particular cases where · cb292206
      Peter Eisentraut 提交于
      * the result is not recorded anywhere
      * the result is not used anywhere
      * the result is only used in some places, whereas others have been getting away with it
      * the result is used improperly
      
      Also make command line options handling a little better (e.g., --disable-locale,
      while redundant, should really still *dis*able).
      cb292206
  12. 28 6月, 2000 1 次提交
    • T
      First phase of memory management rewrite (see backend/utils/mmgr/README · 1aebc361
      Tom Lane 提交于
      for details).  It doesn't really do that much yet, since there are no
      short-term memory contexts in the executor, but the infrastructure is
      in place and long-term contexts are handled reasonably.  A few long-
      standing bugs have been fixed, such as 'VACUUM; anything' in a single
      query string crashing.  Also, out-of-memory is now considered a
      recoverable ERROR, not FATAL.
      Eliminate a large amount of crufty, now-dead code in and around
      memory management.
      Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and
      backend startup.
      1aebc361
  13. 30 5月, 2000 1 次提交
  14. 13 4月, 2000 1 次提交
  15. 16 2月, 2000 1 次提交
    • T
      New cost model for planning, incorporating a penalty for random page · b1577a7c
      Tom Lane 提交于
      accesses versus sequential accesses, a (very crude) estimate of the
      effects of caching on random page accesses, and cost to evaluate WHERE-
      clause expressions.  Export critical parameters for this model as SET
      variables.  Also, create SET variables for the planner's enable flags
      (enable_seqscan, enable_indexscan, etc) so that these can be controlled
      more conveniently than via PGOPTIONS.
      
      Planner now estimates both startup cost (cost before retrieving
      first tuple) and total cost of each path, so it can optimize queries
      with LIMIT on a reasonable basis by interpolating between these costs.
      Same facility is a win for EXISTS(...) subqueries and some other cases.
      
      Redesign pathkey representation to achieve a major speedup in planning
      (I saw as much as 5X on a 10-way join); also minor changes in planner
      to reduce memory consumption by recycling discarded Path nodes and
      not constructing unnecessary lists.
      
      Minor cleanups to display more-plausible costs in some cases in
      EXPLAIN output.
      
      Initdb forced by change in interface to index cost estimation
      functions.
      b1577a7c
  16. 07 2月, 2000 1 次提交
    • T
      Repair planning bugs caused by my misguided removal of restrictinfo link · d8733ce6
      Tom Lane 提交于
      fields in JoinPaths --- turns out that we do need that after all :-(.
      Also, rearrange planner so that only one RelOptInfo is created for a
      particular set of joined base relations, no matter how many different
      subsets of relations it can be created from.  This saves memory and
      processing time compared to the old method of making a bunch of RelOptInfos
      and then removing the duplicates.  Clean up the jointree iteration logic;
      not sure if it's better, but I sure find it more readable and plausible
      now, particularly for the case of 'bushy plans'.
      d8733ce6
  17. 26 1月, 2000 1 次提交
    • B
      Add: · 5c25d602
      Bruce Momjian 提交于
        * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
      
      to all files copyright Regents of Berkeley.  Man, that's a lot of files.
      5c25d602
  18. 09 1月, 2000 1 次提交
  19. 22 9月, 1999 1 次提交
  20. 16 8月, 1999 1 次提交
    • T
      Major planner/optimizer revision: get rid of PathOrder node type, · e6381966
      Tom Lane 提交于
      store all ordering information in pathkeys lists (which are now lists of
      lists of PathKeyItem nodes, not just lists of lists of vars).  This was
      a big win --- the code is smaller and IMHO more understandable than it
      was, even though it handles more cases.  I believe the node changes will
      not force an initdb for anyone; planner nodes don't show up in stored
      rules.
      e6381966
  21. 16 7月, 1999 2 次提交
  22. 15 7月, 1999 1 次提交
  23. 26 5月, 1999 2 次提交
  24. 17 5月, 1999 2 次提交
  25. 18 2月, 1999 2 次提交
  26. 16 2月, 1999 1 次提交
  27. 15 2月, 1999 2 次提交
  28. 14 2月, 1999 2 次提交
  29. 12 2月, 1999 1 次提交
  30. 11 2月, 1999 1 次提交
  31. 04 2月, 1999 2 次提交
  32. 01 9月, 1998 2 次提交