1. 14 Nov, 2007 1 commit
  2. 13 Nov, 2007 5 commits
  3. 12 Nov, 2007 10 commits
  4. 10 Nov, 2007 10 commits
  5. 09 Nov, 2007 3 commits
    • kaa@polly.(none)'s avatar
      Fix for bug #32202: ORDER BY not working with GROUP BY · 8c193678
      kaa@polly.(none) authored
      The bug is a regression introduced by the fix for bug30596. The problem
      was that in cases when groups in GROUP BY correspond to only one row,
      and there is ORDER BY, the GROUP BY was removed and the ORDER BY
      rewritten to ORDER BY <group_by_columns> without checking if the
      columns in GROUP BY and ORDER BY are compatible. This led to
      incorrect ordering of the result set as it was sorted using the
      GROUP BY columns. Additionaly, the code discarded ASC/DESC modifiers
      from ORDER BY even if its columns were compatible with the GROUP BY
      ones.
      
      This patch fixes the regression by checking if ORDER BY columns form a
      prefix of the GROUP BY ones, and rewriting ORDER BY only in that case,
      preserving the ASC/DESC modifiers. That check is sufficient, since the
      GROUP BY columns contain a unique index.
      8c193678
    • kaa@polly.(none)'s avatar
      Merge polly.(none):/home/kaa/src/opt/bug32020/my50-bug31445 · 6320cded
      kaa@polly.(none) authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      6320cded
    • kaa@polly.(none)'s avatar
      Fix for bug #32020: loading udfs while --skip-grant-tables is enabled · e703c6a7
      kaa@polly.(none) authored
      causes out of memory errors
      
      The code in mysql_create_function() and mysql_drop_function() assumed
      that the only reason for UDFs being uninitialized at that point is an
      out-of-memory error during initialization. However, another possible 
      reason for that is the --skip-grant-tables option in which case UDF 
      initialization is skipped and UDFs are unavailable.
      
      The solution is to check whether mysqld is running with
      --skip-grant-tables and issue a proper error in such a case.
      e703c6a7
  6. 08 Nov, 2007 5 commits
  7. 07 Nov, 2007 2 commits
    • kaa@polly.(none)'s avatar
      Fix for bug #32103: optimizer crash when join on int and mediumint with · f1a3c364
      kaa@polly.(none) authored
      variable in where clause.
      
      Problem: the new_item() method of Item_uint used an incorrect
      constructor. "new Item_uint(name, max_length)" calls
      Item_uint::Item_uint(const char *str_arg, uint length) which assumes the
      first argument to be the string representation of the value, not the
      item's name. This could result in either a server crash or incorrect
      results depending on usage scenarios.
      
      Fixed by using the correct constructor in new_item():
      Item_uint::Item_uint(const char *str_arg, longlong i, uint length).
      f1a3c364
    • kaa@polly.(none)'s avatar
      Fix for bug #30666: Incorrect order when using range conditions on 2 · 4aa04022
      kaa@polly.(none) authored
      tables or more
      
      The problem was that the optimizer used the join buffer in cases when
      the result set is ordered by filesort. This resulted in the ORDER BY
      clause being ignored, and the records being returned in the order
      determined by the order of matching records in the last table in join.
      
      Fixed by relaxing the condition in make_join_readinfo() to take
      filesort-ordered result sets into account, not only index-ordered ones.
      4aa04022
  8. 06 Nov, 2007 4 commits
    • svoj@mysql.com/june.mysql.com's avatar
      BUG#32111 - Security Breach via DATA/INDEX DIRECORY and RENAME TABLE · d06e2f92
      svoj@mysql.com/june.mysql.com authored
      RENAME TABLE against a table with DATA/INDEX DIRECTORY overwrites
      the file to which the symlink points.
      
      This is security issue, because it is possible to create a table with
      some name in some non-system database and set DATA/INDEX DIRECTORY
      to mysql system database. Renaming this table to one of mysql system
      tables (e.g. user, host) would overwrite the system table.
      
      Return an error when the file to which the symlink points exist.
      d06e2f92
    • istruewing@stella.local's avatar
      Merge stella.local:/home2/mydev/mysql-5.0-amain · 0c9c041f
      istruewing@stella.local authored
      into  stella.local:/home2/mydev/mysql-5.0-axmrg
      0c9c041f
    • istruewing@stella.local's avatar
      Merge stella.local:/home2/mydev/mysql-5.0-ateam · fbe3e32b
      istruewing@stella.local authored
      into  stella.local:/home2/mydev/mysql-5.0-axmrg
      fbe3e32b
    • istruewing@stella.local's avatar
      Bug#4692 - DISABLE/ENABLE KEYS waste a space · 30b409bd
      istruewing@stella.local authored
      Disabling and enabling indexes on a non-empty table grows the
      index file.
      
      Disabling indexes just sets a flag per non-unique index and does not
      free the index blocks of the affected indexes. Re-enabling indexes
      creates new indexes with new blocks. The old blocks remain unused
      in the index file.
      
      Fixed by dropping and re-creating all indexes if non-empty disabled
      indexes exist when enabling indexes. Dropping all indexes resets
      the internal end-of-file marker to the end of the index file header.
      It also clears the root block pointers of every index and clears the
      deleted blocks chains. This way all blocks are declared as free.
      30b409bd