1. 21 Aug, 2008 2 commits
  2. 20 Aug, 2008 7 commits
  3. 19 Aug, 2008 6 commits
  4. 18 Aug, 2008 2 commits
  5. 17 Aug, 2008 3 commits
    • Tom Lane's avatar
      Add some defenses against constant-FALSE outer join conditions. Since · 719012e0
      Tom Lane authored
      eval_const_expressions will generally throw away anything that's ANDed with
      constant FALSE, what we're left with given an example like
      
      select * from tenk1 a where (unique1,0) in (select unique2,1 from tenk1 b);
      
      is a cartesian product computation, which is really not acceptable.
      This is a regression in CVS HEAD compared to previous releases, which were
      able to notice the impossible join condition in this case --- though not in
      some related cases that are also improved by this patch, such as
      
      select * from tenk1 a left join tenk1 b on (a.unique1=b.unique2 and 0=1);
      
      Fix by skipping evaluation of the appropriate side of the outer join in
      cases where it's demonstrably unnecessary.
      719012e0
    • Tom Lane's avatar
      Remove prohibition against SubLinks in the WHERE clause of an EXISTS subquery · f2689e42
      Tom Lane authored
      that we're considering pulling up.  I hadn't wanted to think through whether
      that could work during the first pass at this stuff.  However, on closer
      inspection it seems to be safe enough.
      f2689e42
    • Tom Lane's avatar
      Improve sublink pullup code to handle ANY/EXISTS sublinks that are at top · 19e34b62
      Tom Lane authored
      level of a JOIN/ON clause, not only at top level of WHERE.  (However, we
      can't do this in an outer join's ON clause, unless the ANY/EXISTS refers
      only to the nullable side of the outer join, so that it can effectively
      be pushed down into the nullable side.)  Per request from Kevin Grittner.
      
      In passing, fix a bug in the initial implementation of EXISTS pullup:
      it would Assert if the EXIST's WHERE clause used a join alias variable.
      Since we haven't yet flattened join aliases when this transformation
      happens, it's necessary to include join relids in the computed set of
      RHS relids.
      19e34b62
  6. 16 Aug, 2008 11 commits
  7. 15 Aug, 2008 2 commits
    • Tom Lane's avatar
      Performance fix for new anti-join code in nodeMergejoin.c: after finding a · 11846111
      Tom Lane authored
      match in antijoin mode, we should advance to next outer tuple not next inner.
      We know we don't want to return this outer tuple, and there is no point in
      advancing over matching inner tuples now, because we'd just have to do it
      again if the next outer tuple has the same merge key.  This makes a noticeable
      difference if there are lots of duplicate keys in both inputs.
      
      Similarly, after finding a match in semijoin mode, arrange to advance to
      the next outer tuple after returning the current match; or immediately,
      if it fails the extra quals.  The rationale is the same.  (This is a
      performance bug in existing releases; perhaps worth back-patching?  The
      planner tries to avoid using mergejoin with lots of duplicates, so it may
      not be a big issue in practice.)
      
      Nestloop and hash got this right to start with, but I made some cosmetic
      adjustments there to make the corresponding bits of logic look more similar.
      11846111
    • Magnus Hagander's avatar
      Make the temporary directory for pgstat files configurable by the GUC · 5b8eb2b4
      Magnus Hagander authored
      variable stats_temp_directory, instead of requiring the admin to
      mount/symlink the pg_stat_tmp directory manually.
      
      For now the config variable is PGC_POSTMASTER. Room for further improvment
      that would allow it to be changed on-the-fly.
      5b8eb2b4
  8. 14 Aug, 2008 4 commits
  9. 13 Aug, 2008 1 commit
  10. 12 Aug, 2008 2 commits