1. 15 Jan, 2007 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      BUG#20420: optimizer reports wrong keys on left join with IN · 134e9493
      gkodinov/kgeorge@macbook.gmz authored
       The optimizer needs to evaluate whether predicates are better
       evaluated using an index. IN is one such predicate.
       To qualify an IN predicate must involve a field of the index
       on the left and constant arguments on the right.
       However whether an expression is a constant can be determined only
       by knowing the preceding tables in the join order. 
       Assuming that only IN predicates with expressions on the right that
       are constant for the whole query qualify limits the scope of 
       possible optimizations of the IN predicate (more specifically it
       doesn't allow the "Range checked for each record" optimization for
       such an IN predicate.
       Fixed by not pre-determining the optimizability of the IN predicate
       in the case when all right IN operands are not SQL constant expressions
      134e9493
  2. 05 Jan, 2007 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #15881: cast problems · a63df24a
      gkodinov/kgeorge@macbook.gmz authored
        The optimizer removes expressions from GROUP BY/DISTINCT
        if they happen to participate in a <expression> = <const>
        predicates of the WHERE clause (the idea being that if
        it's always equal to a constant it can't have multiple 
        values).
        However for predicates where the expression and the 
        constant item are of different result type this is not
        valid (e.g. a string column compared to 0).
        Fixed by additional check of the result types of the 
        expression and the constant and if they differ the 
        expression don't get removed from the group by list.
      a63df24a
  3. 03 Jan, 2007 3 commits
  4. 02 Jan, 2007 11 commits
  5. 31 Dec, 2006 5 commits
  6. 28 Dec, 2006 1 commit
  7. 27 Dec, 2006 2 commits
  8. 26 Dec, 2006 2 commits
  9. 23 Dec, 2006 1 commit
  10. 21 Dec, 2006 3 commits
  11. 20 Dec, 2006 10 commits