1. 27 Dec, 2004 2 commits
    • heikki@hundin.mysql.fi's avatar
      Merge heikki@bk-internal.mysql.com:/home/bk/mysql-4.1 · 0e28bb07
      heikki@hundin.mysql.fi authored
      into hundin.mysql.fi:/home/heikki/mysql-4.1
      0e28bb07
    • heikki@hundin.mysql.fi's avatar
      Many files: · 7ad5e204
      heikki@hundin.mysql.fi authored
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      7ad5e204
  2. 26 Dec, 2004 3 commits
    • igor@rurik.mysql.com's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1 · 8f602f2a
      igor@rurik.mysql.com authored
      into rurik.mysql.com:/home/igor/dev/mysql-4.1-0
      8f602f2a
    • igor@rurik.mysql.com's avatar
      subselect.result, subselect.test: · 04974868
      igor@rurik.mysql.com authored
        Added a couple of new test cases for bug #7351.
      04974868
    • igor@rurik.mysql.com's avatar
      subselect.result, subselect.test: · d3fa2453
      igor@rurik.mysql.com authored
        Added test cases for bug #7351.
      item_cmpfunc.cc:
        Fixed bug #7351: incorrect result for a query with a
        subquery returning empty set.
        If in the predicate v IN (SELECT a FROM t WHERE cond)
        v is null, then the result of the predicate is either
        INKNOWN or FALSE. It is FALSE if the subquery returns
        an empty set.
      item_subselect.cc:
        Fixed bug #7351: incorrect result for a query with a
        subquery returning empty set.
        The problem was due to not a quite legal transformation
        for 'IN' subqueries. A subquery containing a predicate
        of the form
        v IN (SELECT a FROM t WHERE cond)
        was transformed into
        EXISTS(SELECT a FROM t WHERE cond AND (a=v OR a IS NULL)).
        Yet, this transformation is valid only if v is not null.
        If v is null, then, in the case when
        (SELECT a FROM t WHERE cond) returns an empty set the value
        of the predicate is FALSE, otherwise the result of the
        predicate is INKNOWN.
        The fix resolves this problem by changing the result
        of the transformation to
        EXISTS(SELECT a FROM t WHERE cond AND (v IS NULL OR (a=v OR a IS NULL)))
        in the case when v is nullable.
        The new transformation prevents applying the lookup
        optimization for IN subqueries. To make it still
        applicable we have to introduce guarded access methods.
      d3fa2453
  3. 24 Dec, 2004 4 commits
  4. 23 Dec, 2004 10 commits
  5. 22 Dec, 2004 21 commits