1. 01 Nov, 2003 1 commit
  2. 22 Oct, 2003 1 commit
  3. 21 Oct, 2003 1 commit
  4. 31 Aug, 2003 1 commit
  5. 17 Aug, 2003 1 commit
  6. 22 Jun, 2003 1 commit
    • Tom Lane's avatar
      Revise hash join and hash aggregation code to use the same datatype- · bff0422b
      Tom Lane authored
      specific hash functions used by hash indexes, rather than the old
      not-datatype-aware ComputeHashFunc routine.  This makes it safe to do
      hash joining on several datatypes that previously couldn't use hashing.
      The sets of datatypes that are hash indexable and hash joinable are now
      exactly the same, whereas before each had some that weren't in the other.
      bff0422b
  7. 10 Apr, 2003 1 commit
  8. 15 Jan, 2003 1 commit
    • Tom Lane's avatar
      Allow merge and hash joins to occur on arbitrary expressions (anything not · de97072e
      Tom Lane authored
      containing a volatile function), rather than only on 'Var = Var' clauses
      as before.  This makes it practical to do flatten_join_alias_vars at the
      start of planning, which in turn eliminates a bunch of klugery inside the
      planner to deal with alias vars.  As a free side effect, we now detect
      implied equality of non-Var expressions; for example in
      	SELECT ... WHERE a.x = b.y and b.y = 42
      we will deduce a.x = 42 and use that as a restriction qual on a.  Also,
      we can remove the restriction introduced 12/5/02 to prevent pullup of
      subqueries whose targetlists contain sublinks.
      Still TODO: make statistical estimation routines in selfuncs.c and costsize.c
      smarter about expressions that are more complex than plain Vars.  The need
      for this is considerably greater now that we have to be able to estimate
      the suitability of merge and hash join techniques on such expressions.
      de97072e
  9. 06 Jan, 2003 1 commit
  10. 21 Sep, 2002 1 commit
  11. 11 May, 2002 1 commit
  12. 22 Mar, 2002 1 commit
  13. 07 Jan, 2002 1 commit
  14. 21 Nov, 2001 1 commit
  15. 26 Oct, 2001 1 commit
  16. 13 Sep, 2001 1 commit
  17. 10 Sep, 2001 1 commit
  18. 07 May, 2001 1 commit
    • Tom Lane's avatar
      Rewrite of planner statistics-gathering code. ANALYZE is now available as · f905d65e
      Tom Lane authored
      a separate statement (though it can still be invoked as part of VACUUM, too).
      pg_statistic redesigned to be more flexible about what statistics are
      stored.  ANALYZE now collects a list of several of the most common values,
      not just one, plus a histogram (not just the min and max values).  Random
      sampling is used to make the process reasonably fast even on very large
      tables.  The number of values and histogram bins collected is now
      user-settable via an ALTER TABLE command.
      
      There is more still to do; the new stats are not being used everywhere
      they could be in the planner.  But the remaining changes for this project
      should be localized, and the behavior is already better than before.
      
      A not-very-related change is that sorting now makes use of btree comparison
      routines if it can find one, rather than invoking '<' twice.
      f905d65e
  19. 29 Sep, 2000 1 commit
  20. 16 Apr, 2000 1 commit
    • Tom Lane's avatar
      Add new selectivity estimation functions for pattern-matching operators · 82849df6
      Tom Lane authored
      (LIKE and regexp matches).  These are not yet referenced in pg_operator,
      so by default the system will continue to use eqsel/neqsel.
      Also, tweak convert_to_scalar() logic so that common prefixes of strings
      are stripped off, allowing better accuracy when all strings in a table
      share a common prefix.
      82849df6
  21. 31 Mar, 2000 1 commit
  22. 17 Feb, 2000 1 commit
    • Tom Lane's avatar
      Finish repairing 6.5's problems with r-tree indexes: create appropriate · 598ea2c3
      Tom Lane authored
      selectivity functions and make the r-tree operators use them.  The
      estimation functions themselves are just stubs, unfortunately, but
      perhaps someday someone will make them compute realistic estimates.
      Change pg_am so that the optimizer can reliably tell the difference
      between ordered and unordered indexes --- before it would think that
      an r-tree index can be scanned in '<<' order, which is not right AFAIK.
      Repair broken negator links for network_sup and related ops.
      Initdb forced.  This might be my last initdb force for 7.0 ... hope so
      anyway ...
      598ea2c3
  23. 24 Jan, 2000 1 commit
    • Tom Lane's avatar
      First cut at making useful selectivity estimates for range queries · 0dbffa70
      Tom Lane authored
      (ie, WHERE x > lowbound AND x < highbound).  It's not very bright yet
      but it does something useful.  Also, rename intltsel/intgtsel to
      scalarltsel/scalargtsel to reflect usage better.  Extend convert_to_scalar
      to do something a little bit useful with string data types.  Still need
      to make it do something with date/time datatypes, but I'll wait for
      Thomas's datetime unification dust to settle first.  Eventually the
      routine ought not have any type-specific knowledge at all; it ought to
      be calling a type-dependent routine found via a pg_type column; but
      that's a task for another day.
      0dbffa70
  24. 26 May, 1999 1 commit
  25. 22 May, 1999 1 commit
  26. 21 May, 1999 1 commit
  27. 08 Apr, 1999 1 commit
  28. 29 Jul, 1998 1 commit
  29. 01 Mar, 1998 1 commit
  30. 15 Jan, 1997 1 commit