DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) news-5-0-3

Info Catalog (mysql.info) news-5-0-4 (mysql.info) news-5-0-x (mysql.info) news-5-0-2
 
 D.1.18 Changes in release 5.0.3 (23 Mar 2005: Beta)
 ---------------------------------------------------
 
 * This Beta release, as any other pre-production release, should
 not be installed on `production' level systems or systems with critical
 data. It is good practice to back up your data before installing any
 new version of software. Although MySQL worked very hard to ensure a
 high level of quality, protect your data by making a backup as you
 would for any software beta release.
 
 Functionality added or changed:
 
    * Security improvement: The server creates `.frm', `.MYD', `.MYI',
      `.MRG', `.ISD', and `.ISM' table files only if a file with the
      same name does not already exist. Thanks to Stefano Di Paola
      <stefano.dipaola@wisec.it> for finding and informing us about this
      issue.  (CAN-2005-0711
      (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0711))
 
    * Security improvement: User-defined functions should have at least
      one symbol defined in addition to the `xxx' symbol that
      corresponds to the main `xxx()' function. These auxiliary symbols
      correspond to the `xxx_init()', `xxx_deinit()', `xxx_reset()',
      `xxx_clear()', and `xxx_add()' functions.  `mysqld' by default no
      longer loads UDFs unless they have at least one auxiliary symbol
      defined in addition to the main symbol. The -allow-suspicious-udfs
      option controls whether UDFs that have only an `xxx' symbol can be
      loaded. By default, the option is off.  `mysqld' also checks UDF
      filenames when it reads them from the `mysql.func' table and
      rejects those that contain directory pathname separator
      characters. (It already checked names as given in `CREATE
      FUNCTION' statements.) See  udf-calling, 
      udf-aggr-calling, and  udf-security. Thanks to Stefano Di
      Paola <stefano.dipaola@wisec.it> for finding and informing us
      about this issue.  (CAN-2005-0709
      (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0709),
      CAN-2005-0710
      (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0710))
 
    * The `DECIMAL' and `NUMERIC' data types now are handled with a
      fixed-point library that allows for precision math handling that
      results in more accurate results. See  precision-math.
 
      *Warning: Incompatible change:* A consequence of the change in
      handling of the `DECIMAL' and `NUMERIC' fixed-point data types is
      that the server is more strict to follow standard SQL. For
      example, a data type of `DECIMAL(3,1)' stores a maximum value of
      99.9. Previously, the server allowed larger numbers to be stored.
      That is, it stored a value such as 100.0 as 100.0. Now the server
      clips 100.0 to the maximum allowable value of 99.9.  If you have
      tables that were created before MySQL 5.0.3 and that contain
      floating-point data not strictly legal for the data type, you
      should alter the data types of those columns.  For example:
 
           ALTER TABLE TBL_NAME MODIFY COL_NAME DECIMAL(4,1);
 
    * *Incompatible change*: The C API `ER_WARN_DATA_TRUNCATED' warning
      symbol was renamed to `WARN_DATA_TRUNCATED'.
 
    * InnoDB: *Upgrading from 4.1:* The sorting order for end-space in
      `TEXT' columns for InnoDB tables has changed. Starting from 5.0.3,
      InnoDB compares `TEXT' columns as space-padded at the end. If you
      have a non-unique index on a `TEXT' column, you should run `CHECK
      TABLE' on it, and run `OPTIMIZE TABLE' if the check reports
      errors. If you have a `UNIQUE INDEX' on a `TEXT' column, you
      should rebuild the table with `OPTIMIZE TABLE'.
 
    * Implemented support for XA transactions. See  xa. The
      implementation make the `innodb_safe_binlog' system variable
      obsolete, so it has been removed.
 
    * `mysqlbinlog' now prints a `ROLLBACK' statement at the end of its
      output, in case the server crashed while it was in the process of
      writing the final entry into the last binary log named on the
      command line. This causes any half-written transaction to be
      rolled back when the output is executed. The `ROLLBACK' is
      harmless if the binary log file was written and closed normally.
 
    * Added the `engine_condition_pushdown' system variable. For NDB,
      setting this variable to 1 allows processing of some `WHERE'
      clause conditions to be processed in NDB nodes before rows are
      sent to the MySQL server, rather than having rows sent to the
      server for evaluation.
 
    * Additional control over transaction completion was implemented.
      The `COMMIT' and `ROLLBACK' statements support `AND [NO] CHAIN'
      and `RELEASE' clauses.  There is a new `RELEASE SAVEPOINT'
      statement.  The `completion_type' system variable was added for
      setting the global and session default completion type.
 
    * A new `CREATE USER' privilege was added.
 
    * `my.cnf' in the compile-time datadir (usually
      `/usr/local/mysql/data/' in the binary tarball distributions) is
      not being read anymore. The value of the environment variable
      `MYSQL_HOME' is used instead of the hard-coded path.
 
    * Support for the `ISAM' storage engine has been removed. If you
      have `ISAM' tables, you should convert them before upgrading. See
       upgrading-from-4-1.
 
    * Support for `RAID' options in `MyISAM' tables has been removed. If
      you have tables that use these options, you should convert them
      before upgrading. See  upgrading-from-4-1.
 
    * Added support for `AVG(DISTINCT)'.
 
    * `ONLY_FULL_GROUP_BY' no longer is included in the `ANSI' composite
      SQL mode. (Bug #8510 (http://bugs.mysql.com/8510))
 
    * `mysqld_safe' will create the directory where the UNIX socket file
      is to be located if the directory does not exist. This applies
      only to the last component of the directory pathname. (Bug #8513
      (http://bugs.mysql.com/8513))
 
    * The coercibility for the return value of functions such as
      `USER()' or `VERSION()' now is `system constant' rather than
      `implicit.' This makes these functions more coercible than column
      values so that comparisons of the two do not result in `Illegal
      mix of collations' errors. `COERCIBILITY()' was modified to
      accommodate this new coercibility value. See 
      information-functions.
 
    * User variable coercibility has been changed from `coercible' to
      `implicit.' That is, user variables have the same coercibility as
      column values.
 
    * Boolean full-text phrase searching now requires only that matches
      contain exactly the same words as the phrase and in the same
      order. Non-word characters no longer need match exactly.
 
    * `CHECKSUM TABLE' returns a warning for non-existing tables. The
      checksum value remains `NULL' as before. (Bug #8256
      (http://bugs.mysql.com/8256))
 
    * The server now includes a timestamp in the `Ready for connections'
      message that is written to the error log at startup. (Bug #8444
      (http://bugs.mysql.com/8444))
 
    * Added `SQL_NOTES' session variable to cause `Note'-level warnings
      not to be recorded.  (Bug #6662 (http://bugs.mysql.com/6662))
 
    * Allowed the service-installation command for Windows servers to
      specify a single option other than -defaults-file following the
      service name.  This is for compatibility with MySQL 4.1. (Bug
      #7856 (http://bugs.mysql.com/7856))
 
    * `InnoDB': Commit after every 10,000 copied rows when executing
      `ALTER TABLE', `CREATE INDEX', `DROP INDEX' or `OPTIMIZE TABLE'.
      This makes it much faster to recover from an aborted operation.
 
    * Added `VAR_POP()' and `STDDEV_POP()' as standard SQL aliases for
      the `VARIANCE()' and `STDDEV()' functions that compute population
      variance and standard deviation. Added new `VAR_SAMP()' and
      `STDDEV_SAMP()' functions to compute sample variance and standard
      deviation. (Bug #3190 (http://bugs.mysql.com/3190))
 
    * Fixed a problem with out-of-order packets being sent (`ERROR'
      after `OK' or `EOF') following a `KILL QUERY' statement. (Bug
      #6804 (http://bugs.mysql.com/6804))
 
    * Retrieving from a view defined as a `SELECT' that mixed `UNION
      ALL' and `UNION DISTINCT' resulted in a different result than
      retrieving from the original `SELECT'. (Bug #6565
      (http://bugs.mysql.com/6565))
 
    * Fixed a problem with non-optimal `index_merge' query execution
      plans being chosen on IRIX. (Bug #8578
      (http://bugs.mysql.com/8578))
 
    * `BIT' in column definitions now is a distinct data type; it no
      longer is treated as a synonym for `TINYINT(1)'.
 
    * Bit-field values can be written using `b'VALUE'' notation. VALUE
      is a binary value written using 0s and 1s.
 
    * From the Windows distribution, predefined accounts without
      passwords for remote users ("root@%", "@%") were removed (other
      distributions never had them).
 
    * Added `mysql_library_init()' and `mysql_library_end()' as synonyms
      for the `mysql_server_init()' and `mysql_server_end()' C API
      functions.  `mysql_library_init()' and `mysql_library_end()' are
      `#define' symbols, but the names more clearly indicate that they
      should be called when beginning and ending use of a MySQL C API
      library no matter whether the application uses `libmysqlclient' or
      `libmysqld'. (Bug #6149 (http://bugs.mysql.com/6149))
 
    * `SHOW COLUMNS' now displays `NO' rather than blank in the `Null'
      output column if the corresponding table column cannot be `NULL'.
 
    * Changed XML format for `mysql' from
      `<COL_NAME>COL_VALUE</COL_NAME>' to `<field
      name="COL_NAME">COL_VALUE</field>' to allow for proper encoding of
      column names that are not legal as element names. (Bug #7811
      (http://bugs.mysql.com/7811))
 
    * Added -innodb-checksums and -innodb-doublewrite options for
      `mysqld'.
 
    * Added -large-pages option for `mysqld'.
 
    * Added `multi_read_range' system variable.
 
    * `SHOW DATABASES', `SHOW TABLES', `SHOW COLUMNS', and so forth
      display information about the `INFORMATION_SCHEMA' database. Also,
      several `SHOW' statements now accept a `WHERE' clause specifying
      which output rows to display. See  information-schema.
 
    * Added the `CREATE ROUTINE' and `ALTER ROUTINE' privileges, and
      made the `EXECUTE' privilege operational.
 
    * InnoDB: Corrected a bug in the crash recovery of
      `ROW_FORMAT=COMPACT' tables that caused corruption. (Bug #7973
      (http://bugs.mysql.com/7973)) There may still be bugs in the crash
      recovery, especially in `COMPACT' tables.
 
    * When the `MyISAM' storage engine detects corruption of a `MyISAM'
      table, a message describing the problem now is written to the
      error log.
 
    * InnoDB: When MySQL/InnoDB is compiled on Mac OS X 10.2 or earlier,
      detect the operating system version at run time and use the
      `fcntl()' file flush method on Mac OS X versions 10.3 and later.
      In Mac OS X, `fsync()' does not flush the write cache in the disk
      drive, but the special `fcntl()' does; however, the flush request
      is ignored by some external devices. Failure to flush the buffers
      may cause severe database corruption at power outages.
 
    * InnoDB: Implemented fast `TRUNCATE TABLE'.  The old approach
      (deleting rows one by one) may be used if the table is being
      referenced by foreign keys. (Bug #7150
      (http://bugs.mysql.com/7150))
 
    * Added `cp932' (SJIS for Windows Japanese) and `eucjpms' (UJIS for
      Windows Japanese) character sets.
 
    * Added several `InnoDB' status variables. See 
      server-status-variables.
 
    * Added the `FEDERATED' storage engine. See 
      federated-storage-engine.
 
    * `SHOW CREATE TABLE' now uses `USING INDEX_TYPE' rather than `TYPE
      INDEX_TYPE' to specify an index type. (Bug #7233
      (http://bugs.mysql.com/7233))
 
    * InnoDB now supports a fast `TRUNCATE TABLE'.  One visible change
      from this is that auto-increment values for this table are reset
      on `TRUNCATE'.
 
    * Added an `error' member to the `MYSQL_BIND' data structure that is
      used in the C API for prepared statements. This member is used for
      reporting data truncation errors. Truncation reporting is enabled
      via the new `MYSQL_REPORT_DATA_TRUNCATION' option for the
      `mysql_options()' C API function.
 
    * API change: the `reconnect' flag in the `MYSQL' structure is now
      set to 0 by `mysql_real_connect()'. Only those client programs
      which didn't explicitly set this flag to 0 or 1 after
      `mysql_real_connect()' experience a change.  Having automatic
      reconnection enabled by default was considered too dangerous
      (after reconnection, table locks, temporary tables, user and
      session variables are lost).
 
    * `FLUSH TABLES WITH READ LOCK' is now killable while it's waiting
      for running `COMMIT' statements to finish.
 
    * `MEMORY' (`HEAP') can have `VARCHAR()' fields.
 
    * `VARCHAR' columns now remember end space. A `VARCHAR()' column can
      now contain up to 65535 bytes. For more details, see 
      news-5-0-x. If the table handler doesn't support the new
      `VARCHAR' type, then it's converted to a `CHAR' column. Currently
      this happens for `NDB' tables.
 
    * `InnoDB': Introduced a compact record format that does not store
      the number of columns or the lengths of fixed-size columns. The
      old format can be requested by specifying `ROW_FORMAT=REDUNDANT'.
      The new format (`ROW_FORMAT=COMPACT') is the default.  The new
      format typically saves 20 % of disk space and memory.
 
    * `InnoDB': Setting the initial `AUTO_INCREMENT' value for an
      `InnoDB' table using `CREATE TABLE ... AUTO_INCREMENT = N' now
      works, and `ALTER TABLE ... AUTO_INCREMENT = N' resets the current
      value.
 
    * `Seconds_Behind_Master' is `NULL' (which means `unknown') if the
      slave SQL thread is not running, or if the slave I/O thread is not
      running or not connected to master. It is zero if the SQL thread
      has caught up to the I/O thread. It no longer grows indefinitely
      if the master is idle.
 
    * The MySQL server aborts immediately instead of simply issuing a
      warning if it is started with the -log-bin option but cannot
      initialize the binary log at startup (that is, an error occurs
      when writing to the binary log file or binary log index file).
 
    * The binary log file and binary log index file now are handled the
      same way as `MyISAM' tables when there is a `disk full' or `quota
      exceeded' error. See  full-disk.
 
    * The MySQL server now aborts when started with the option
      -log-bin-index and without -log-bin, and when started with
      -log-slave-updates and without -log-bin.
 
    * If the MySQL server is started without an argument to -log-bin and
      without -log-bin-index, thus not providing a name for the binary
      log index file, a warning is issued because MySQL falls back to
      using the hostname for that name, and this is prone to replication
      issues if the server's hostname's gets changed later. See 
      open-bugs.
 
    * Added account-specific `MAX_USER_CONNECTIONS' limit, which allows
      you to specify the maximum number of concurrent connections for
      the account. Also, all limited resources now are counted per
      account (instead of being counted per user + host pair as it was
      before). Use the -old-style-user-limits option to get the old
      behavior.
 
    * InnoDB: A shared record lock (`LOCK_REC_NOT_GAP') is now taken for
      a matching record in the foreign key check because inserts can be
      allowed into gaps.
 
    * InnoDB: Relaxed locking in `INSERT...SELECT', single table
      `UPDATE...SELECT' and single table `DELETE...SELECT' clauses when
      `innodb_locks_unsafe_for_binlog' is used and isolation level of
      the transaction is not serializable.  `InnoDB' uses consistent
      read in these cases for a selected table.
 
    * Added a new global system variable `slave_transaction_retries': if
      the replication slave SQL thread fails to execute a transaction
      because of an `InnoDB' deadlock or exceeded InnoDB's
      `innodb_lock_wait_timeout' or NDBCluster's
      `TransactionDeadlockDetectionTimeout' or
      `TransactionInactiveTimeout', it automatically retries
      `slave_transaction_retries' times before stopping with an error.
      The default is 10. (Bug #8325 (http://bugs.mysql.com/8325))
 
    * When a client releases a user-level lock, `DO RELEASE_LOCK()' will
      not be written to the binary log anymore (this makes the binary
      log smaller); as a counterpart, the slave does not actually take
      the lock when it executes `GET_LOCK()'. This is mainly an
      optimization and should not affect existing setups. (Bug #7998
      (http://bugs.mysql.com/7998))
 
    * The way the character set information is stored into the binary
      log was changed, so that it's now possible to have a replication
      master and slave running with different global character sets. A
      drawback is that replication from 5.0.3 masters to pre-5.0.3
      slaves is impossible.
 
    * The `LOAD DATA' statement was extended to support user variables
      in the target column list, and an optional `SET' clause. Now one
      can perform some transformations on data after they have been read
      and before they are inserted into the table. For example:
 
           LOAD DATA INFILE 'file.txt'
             INTO TABLE t1
             (column1, @var1)
             SET column2 = @var1/100;
 
      Also, replication of `LOAD DATA' was changed, so you can't
      replicate such statements from a 5.0.3 master to pre-5.0.3 slaves.
 
    * `NDB Cluster': When using this storage engine, the output of `SHOW
      TABLE STATUS' now displays properly-calculated values in the
      `Avg_row_length' and `Data_length' columns. (Note that `BLOB'
      columns are not yet taken into account.) In addition, the number
      of replicas is now shown in the `Comment' column (as
      `number_of_replicas').
 
 Bugs fixed:
 
    * If a `MyISAM' table on Windows had `INDEX DIRECTORY' or `DATA
      DIRECTORY' table options, `mysqldump' dumped the directory
      pathnames with single-backslash pathname separators. This would
      cause syntax errors when importing the dump file.  `mysqldump' now
      changes ‘`\'’ to ‘`/'’ in the pathnames on Windows. (Bug
      #6660 (http://bugs.mysql.com/6660))
 
    * `mysql_fix_privilege_tables' now fixes that the `mysql' privilege
      tables can be used in MySQL 4.1. This allows one to easily
      downgrade to 4.1 or run MySQL 5.0 and 4.1 with the same privilege
      files for testing purposes.
 
    * Fixed bug creating user with GRANT fails with password but works
      without, (Bug #7905 (http://bugs.mysql.com/7905))
 
    * `mysqldump' misinterpreted ‘`_'’ and ‘`%'’ characters in
      the names of tables to be dumped as wildcard characters. (Bug
      #9123 (http://bugs.mysql.com/9123))
 
    * The definition of the enumeration-valued `sql_mode' column of the
      `mysql.proc' table was missing some of the current allowable SQL
      modes, so stored routines would not necessarily execute with the
      SQL mode in effect at the time of routine definition. (Bug #8902
      (http://bugs.mysql.com/8902))
 
    * `REPAIR TABLE' did not invalidate query results in the query cache
      that were generated from the table.  (Bug #8480
      (http://bugs.mysql.com/8480))
 
    * In strict or traditional SQL mode, too-long string values assigned
      to string columns (`CHAR', `VARCHAR', `BINARY', `VARBINARY',
      `TEXT', or `BLOB') were correctly truncated, but the server
      returned an SQLSTATE value of `01000' (should be `22001'). (Bug
      #6999 (http://bugs.mysql.com/6999), Bug #9029
      (http://bugs.mysql.com/9029))
 
    * Stored functions that used cursors could return incorrect results.
      (Bug #8386 (http://bugs.mysql.com/8386))
 
    * `AES_DECRYPT(COL_NAME,KEY)' could fail to return `NULL' for invalid
      values in COL_NAME, if COL_NAME was declared as `NOT NULL'. (Bug
      #8669 (http://bugs.mysql.com/8669))
 
    * Ordering by unsigned expression (more complex than a column
      reference) was treating the value as signed, producing incorrectly
      sorted results. (Bug #7425 (http://bugs.mysql.com/7425))
 
    * `HAVING' was treating unsigned columns as signed. (Bug #7425
      (http://bugs.mysql.com/7425))
 
    * Fixed a problem with boolean full-text searches on `utf8' columns
      where a double quote in the search string caused a server crash.
      (Bug #8351 (http://bugs.mysql.com/8351))
 
    * For a query with both `GROUP BY' and `COUNT(DISTINCT)' clauses and
      a `FROM' clause with a subquery, `NULL' was returned for any
      `VARCHAR' column selected by the subquery.  (Bug #8218
      (http://bugs.mysql.com/8218))
 
    * Fixed a bug in `TRUNCATE', which did not work within stored
      procedures. A workaround has been made so that within stored
      procedures, `TRUNCATE' is executed like `DELETE'. This was
      necessary because `TRUNCATE' is implicitly locking tables. (Bug
      #8850 (http://bugs.mysql.com/8850))
 
    * Fixed an optimizer bug that caused incorrectly ordered result from
      a query that used a `FULLTEXT' index to retrieve rows and there
      was another index that was usable for `ORDER BY'. For such a query,
      `EXPLAIN' showed `fulltext' join type, but regular (not
      `FULLTEXT') index in the `Key' column. (Bug #6635
      (http://bugs.mysql.com/6635))
 
    * If `SELECT DISTINCT' named an index column multiple times in the
      select list, the server tried to access different key fields for
      each instance of the column, which could result in a crash. (Bug
      #8532 (http://bugs.mysql.com/8532))
 
    * For a stored function that refers to a given table, invoking the
      function while selecting from the same table resulted in a server
      crash. (Bug #8405 (http://bugs.mysql.com/8405))
 
    * Comparison of a `DECIMAL' column containing `NULL' to a subquery
      that produced `DECIMAL' values resulted in a server crash.  (Bug
      #8397 (http://bugs.mysql.com/8397))
 
    * The -set-character-set option for `myisamchk' was changed to
      -set-collation. The value needed for specifying how to sort
      indexes is a collation name, not a character set name. (Bug #8349
      (http://bugs.mysql.com/8349))
 
    * Hostname matching didn't work if a netmask was specified for
      table-specific privileges. (Bug #3309 (http://bugs.mysql.com/3309))
 
    * Corruption of `MyISAM' table indexes could occur with `TRUNCATE
      TABLE' if the table had already been opened. For example, this was
      possible if the table had been opened implicitly by selecting from
      a `MERGE' table that mapped to the `MyISAM' table. The server now
      issues an error message for `TRUNCATE TABLE' under these
      conditions. (Bug #8306 (http://bugs.mysql.com/8306))
 
    * Setting the connection collation to a value different from the
      server collation followed by a `CREATE TABLE' statement that
      included a quoted default value resulted in a server crash. (Bug
      #8235 (http://bugs.mysql.com/8235))
 
    * Fixed handling of table-name matching in `mysqlhotcopy' to
      accommodate `DBD::mysql' 2.9003 and up (which implement identifier
      quoting). (Bug #8136 (http://bugs.mysql.com/8136))
 
    * Selecting from a view defined as a join caused a server crash if
      the query cache was enabled. (Bug #8054
      (http://bugs.mysql.com/8054))
 
    * Results in the query cache generated from a view were not properly
      invalidated after `ALTER VIEW' or `DROP VIEW' on that view. (Bug
      #8050 (http://bugs.mysql.com/8050))
 
    * `FOUND_ROWS()' returned an incorrect value after a `SELECT
      SQL_CALC_FOUND_ROWS DISTINCT' statement that selected constants
      and included `GROUP BY' and `LIMIT' clauses. (Bug #7945
      (http://bugs.mysql.com/7945))
 
    * Selecting from an `INFORMATION_SCHEMA' table combined with a
      subquery on an `INFORMATION_SCHEMA' table caused an error with the
      message `Table TBL_NAME is corrupted'.  (Bug #8164
      (http://bugs.mysql.com/8164))
 
    * Fixed a problem with equality propagation optimization for
      prepared statements and stored procedures that caused a server
      crash upon re-execution of the prepared statement or stored
      procedure. (Bug #8115 (http://bugs.mysql.com/8115), Bug #8849
      (http://bugs.mysql.com/8849))
 
    * `LEFT OUTER JOIN' between an empty base table and a view on an
      empty base table caused a server crash. (Bug #7433
      (http://bugs.mysql.com/7433))
 
    * Use of `GROUP_CONCAT()' in the select list when selecting from a
      view caused a server crash. (Bug #7116
      (http://bugs.mysql.com/7116))
 
    * Use of a view in a correlated subquery that contains `HAVING' but
      no `GROUP BY' caused a server crash. (Bug #6894
      (http://bugs.mysql.com/6894))
 
    * Handling by `mysql_list_fields()' of references to stored
      functions within views was incorrect and could result in a server
      crash. (Bug #6814 (http://bugs.mysql.com/6814))
 
    * `mysqldump' now avoids writing `SET NAMES' to the dump output if
      the server is older than version 4.1 and would not understand that
      statement. (Bug #7997 (http://bugs.mysql.com/7997))
 
    * Fixed problems when selecting from a view that had an `EXISTS' or
      `NOT EXISTS' subquery. Selecting columns by name caused a server
      crash.  With `SELECT *', a crash did not occur, but columns in
      outer query were not resolved properly. (Bug #6394
      (http://bugs.mysql.com/6394))
 
    * DDL statements for views were not being written to the binary log
      (and thus not subject to replication). (Bug #4838
      (http://bugs.mysql.com/4838))
 
    * The `CHAR()' function was not ignoring `NULL' arguments, contrary
      to the documentation. (Bug #6317 (http://bugs.mysql.com/6317))
 
    * Creating a table using a name containing a character that is
      illegal in `character_set_client' resulted in the character being
      stripped from the name and no error. The character now is
      considered an error. (Bug #8041 (http://bugs.mysql.com/8041))
 
    * Fixed a problem with the Cyrillic letters I and SHORT I being
      treated the same by the `utf8_general_ci' collation. (Bug #8385
      (http://bugs.mysql.com/8385))
 
    * Some `INFORMATION_SCHEMA' columns that contained catalog
      identifiers were of type `LONGTEXT'. These were changed to
      `VARCHAR(N', where N is the appropriate maximum identifier length.
      (Bug #7215 (http://bugs.mysql.com/7215))
 
    * Some `INFORMATION_SCHEMA' columns that contained timestamp values
      were of type `VARBINARY'. These were changed to `TIMESTAMP'. (Bug
      #7217 (http://bugs.mysql.com/7217))
 
    * An expression that tested a case-insensitive character column
      against string constants that differed in lettercase could fail
      because the constants were treated as having a binary collation.
      (For example, `WHERE city='London' AND city='london'' could fail.)
      (Bug #7098 (http://bugs.mysql.com/7098), Bug #8690
      (http://bugs.mysql.com/8690))
 
    * The output of the `STATUS' (`\s') command in `mysql' had the
      values for the server and client character sets reversed. (Bug
      #7571 (http://bugs.mysql.com/7571))
 
    * If the slave was running with -replicate-*-table options which
      excluded one temporary table and included another, and the two
      tables were used in a single `DROP TEMPORARY TABLE IF EXISTS'
      statement, as the ones the master automatically writes to its
      binary log upon client's disconnection when client has not
      explicitly dropped these, the slave could forget to delete the
      included replicated temporary table. Only the slave needs to be
      upgraded. (Bug #8055 (http://bugs.mysql.com/8055))
 
    * When setting integer system variables to a negative value with
      `SET VARIABLES', the value was treated as a positive value modulo
      232. (Bug #6958 (http://bugs.mysql.com/6958))
 
    * Corrected a problem with references to `DUAL' where statements
      such as `SELECT 1 AS a FROM DUAL' would succeed but statements
      such as `SELECT 1 AS a FROM DUAL LIMIT 1' would fail.  (Bug #8023
      (http://bugs.mysql.com/8023))
 
    * Fixed a server crash caused by `DELETE FROM TBL_NAME ... WHERE ...
      ORDER BY TBL_NAME.COL_NAME' when the `ORDER BY' column was
      qualified with the table name. (Bug #8392
      (http://bugs.mysql.com/8392))
 
    * Fixed a bug in `MATCH ... AGAINST' in natural language mode that
      could cause a server crash if the `FULLTEXT' index was not used in
      a join (`EXPLAIN' did not show `fulltext' join mode) and the
      search query matched no rows in the table (Bug #8522
      (http://bugs.mysql.com/8522)).
 
    * `InnoDB': Honor the -tmpdir startup option when creating temporary
      files. Previously, `InnoDB' temporary files were always created in
      the temporary directory of the operating system. On Netware,
      `InnoDB' will continue to ignore -tmpdir. (Bug #5822
      (http://bugs.mysql.com/5822))
 
    * Platform and architecture information in version information
      produced for -version option on Windows was always `Win95/Win98
      (i32)'. More accurately determine platform as `Win32' or `Win64'
      for 32-bit or 64-bit Windows, and architecture as `ia32' for x86,
      `ia64' for Itanium, and `axp' for Alpha. (Bug #4445
      (http://bugs.mysql.com/4445))
 
    * If multiple semicolon-separated statements were received in a
      single packet, they were written to the binary log as a single
      event rather than as separate per-statement events. For a server
      serving as a replication master, this caused replication to fail
      when the event was sent to slave servers.  (Bug #8436
      (http://bugs.mysql.com/8436))
 
    * Fixed `LOAD INDEX' statement to actually load index in memory.
      (Bug #8452 (http://bugs.mysql.com/8452))
 
    * Fixed a failure of multiple-table updates to replicate properly on
      slave servers when -replicate-*-table options had been specified.
      (Bug #7011 (http://bugs.mysql.com/7011))
 
    * Fixed failure of `CREATE TABLE ... LIKE' Windows when the source
      or destination table was located in a symlinked database
      directory. (Bug #6607 (http://bugs.mysql.com/6607))
 
    * With `lower_case_table_names' set to 1, `mysqldump' on Windows
      could write the same table name in different lettercase for
      different SQL statements. Fixed so that consistent lettercase is
      used. (Bug #5185 (http://bugs.mysql.com/5185))
 
    * `mysqld_safe' now understands the -help option. Previously, it
      ignored the option and attempted to start the server anyway. (Bug
      #7931 (http://bugs.mysql.com/7931))
 
    * Fixed problem in `NO_BACKSLASH_ESCAPES' SQL mode for strings that
      contained both the string quoting character and backslash. (Bug
      #6368 (http://bugs.mysql.com/6368))
 
    * Fixed some portability issues with overflow in floating point
      values.
 
    * Prepared statements now gives warnings on prepare.
 
    * Fixed bug in prepared statements with `SUM(DISTINCT...)'.
 
    * Fixed bug in prepared statements with `OUTER JOIN'.
 
    * Fixed a bug in `CONV()' function returning unsigned `BIGINT'
      number (third argument is positive, and return value does not fit
      in 32 bits). (Bug #7751 (http://bugs.mysql.com/7751))
 
    * Fixed a failure of the `IN()' operator to return correct result if
      all values in the list were constants and some of them were using
      substring functions, for example, `LEFT()', `RIGHT()', or `MID()'.
      (Bug #7716 (http://bugs.mysql.com/7716))
 
    * Fixed a crash in `CONVERT_TZ()' function when its second or third
      argument was from a `const' table (see  explain). (Bug
      #7705 (http://bugs.mysql.com/7705))
 
    * Fixed a problem with calculation of number of columns in row
      comparison against subquery. (Bug #8020
      (http://bugs.mysql.com/8020))
 
    * Fixed erroneous output resulting from `SELECT DISTINCT' combined
      with a subquery and `GROUP BY'. (Bug #7946
      (http://bugs.mysql.com/7946))
 
    * Fixed server crash in comparing a nested row expression (for
      example `row(1,(2,3))') with a subquery. (Bug #8022
      (http://bugs.mysql.com/8022))
 
    * Fixed server crash resulting from certain correlated subqueries
      with forward references (references to an alias defined later in
      the outer query). (Bug #8025 (http://bugs.mysql.com/8025))
 
    * Fixed server crash resulting from re-execution of prepared
      statements containing subqueries. (Bug #8125
      (http://bugs.mysql.com/8125))
 
    * Fixed a bug where `ALTER TABLE' improperly would accept an index
      on a `TIMESTAMP' column that `CREATE TABLE' would reject. (Bug
      #7884 (http://bugs.mysql.com/7884))
 
    * `SHOW CREATE TABLE' now reports `ENGINE=MEMORY' rather than
      `ENGINE=HEAP' for a `MEMORY' table (unless the `MYSQL323' SQL mode
      is enabled). (Bug #6659 (http://bugs.mysql.com/6659))
 
    * Fixed a bug where the use of `GROUP_CONCAT()' with `HAVING' caused
      a server crash. (Bug #7769 (http://bugs.mysql.com/7769))
 
    * Fixed a bug where comparing the result of a subquery to a
      non-existent column caused a server crash on Windows. (Bug #7885
      (http://bugs.mysql.com/7885))
 
    * Fixed a bug in a combination of `-not' and `trunc*' operators of
      full-text search. Using more than one truncated negative search
      term, was causing empty result set.
 
    * InnoDB: Corrected the handling of trailing spaces in the `ucs2'
      character set. (Bug #7350 (http://bugs.mysql.com/7350), Bug #8771
      (http://bugs.mysql.com/8771))
 
    * InnoDB: Use native `tmpfile()' function on Netware. All InnoDB
      temporary files are created under `sys:\tmp'. Previously, InnoDB
      temporary files were never deleted on Netware.
 
    * Fixed a bug in `max_heap_table_size' handling, that resulted in
      `Table is full' error when the table was still smaller than the
      limit. (Bug #7791 (http://bugs.mysql.com/7791)).
 
    * Fixed a symlink vulnerability in the `mysqlaccess' script.
      Reported by Javier Fernandez-Sanguino Pena and Debian Security
      Audit Team (http://www.debian.org/security/audit).  (CAN-2005-0004
      (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0004))
 
    * Fixed a bug that caused server crash if some error occurred during
      filling of temporary table created for derived table or view
      handling. (Bug #7413 (http://bugs.mysql.com/7413))
 
    * Fixed a bug which caused server crash if query containing
      `CONVERT_TZ()' function with constant arguments was prepared. (Bug
      #6849 (http://bugs.mysql.com/6849))
 
    * Prevent adding `CREATE TABLE .. SELECT' query to the binary log
      when the insertion of new records partially failed. (Bug #6682
      (http://bugs.mysql.com/6682))
 
    * Fixed a bug which caused a crash when only the slave I/O thread
      was stopped and started. (Bug #6148 (http://bugs.mysql.com/6148))
 
    * Giving `mysqld' a `SIGHUP' caused it to crash.
 
    * Changed semantics of `CREATE/ALTER/DROP DATABASE' statements so
      that replication of `CREATE DATABASE' is possible when using
      -binlog-do-db and -binlog-ignore-db. (Bug #6391
      (http://bugs.mysql.com/6391))
 
    * A sequence of `BEGIN' (or `SET AUTOCOMMIT=0'), `FLUSH TABLES WITH
      READ LOCK', transactional update, `COMMIT', `FLUSH TABLES WITH READ
      LOCK' could hang the connection forever and possibly the MySQL
      server itself. This happened for example when running the
      `innobackup' script several times. (Bug #6732
      (http://bugs.mysql.com/6732))
 
    * `mysqlbinlog' did not print `SET PSEUDO_THREAD_ID' statements in
      front of `LOAD DATA INFILE' statements inserting into temporary
      tables, thus causing potential problems when rolling forward these
      statements after restoring a backup. (Bug #6671
      (http://bugs.mysql.com/6671))
 
    * InnoDB: Fixed a bug no error message for ALTER with InnoDB and
      AUTO_INCREMENT (Bug #7061 (http://bugs.mysql.com/7061)). `InnoDB'
      now supports `ALTER TABLE...AUTO_INCREMENT = x' query to set auto
      increment value for a table.
 
    * Made the MySQL server accept executing `SHOW CREATE DATABASE' even
      if the connection has an open transaction or locked tables;
      refusing it made `mysqldump --single-transaction' sometimes fail
      to print a complete `CREATE DATABASE' statement for some dumped
      databases. (Bug #7358 (http://bugs.mysql.com/7358))
 
    * Fixed that, when encountering a `disk full' or `quota exceeded'
      write error, `MyISAM' sometimes didn't sleep and retry the write,
      thus resulting in a corrupted table. (Bug #7714
      (http://bugs.mysql.com/7714))
 
    * Fixed that -expire-log-days was not honored if using only
      transactions. (Bug #7236 (http://bugs.mysql.com/7236))
 
    * Fixed that a slave could crash after replicating many `ANALYZE
      TABLE', `OPTIMIZE TABLE', or `REPAIR TABLE' statements from the
      master. (Bug #6461 (http://bugs.mysql.com/6461), Bug #7658
      (http://bugs.mysql.com/7658))
 
    * `mysqlbinlog' forgot to add backquotes around the collation of
      user variables (causing later parsing problems as `BINARY' is a
      reserved word).  (Bug #7793 (http://bugs.mysql.com/7793))
 
    * Ensured that `mysqldump --single-transaction' sets its transaction
      isolation level to `REPEATABLE READ' before proceeding (otherwise
      if the MySQL server was configured to run with a default isolation
      level lower than `REPEATABLE READ' it could give an inconsistent
      dump). (Bug #7850 (http://bugs.mysql.com/7850))
 
    * Fixed that when using the `RPAD()' function (or any function
      adding spaces to the right) in a query that had to be resolved by
      using a temporary table, all resulting strings had rightmost
      spaces removed (that is, `RPAD()' did not work) (Bug #4048
      (http://bugs.mysql.com/4048))
 
    * Fixed that a 5.0.3 slave can connect to a master < 3.23.50 without
      hanging (the reason for the hang is a bug in these quite old
      masters - `SELECT @@unknown_var' hangs them - which was fixed in
      MySQL 3.23.50). (Bug #7965 (http://bugs.mysql.com/7965))
 
    * InnoDB: Fixed a deadlock without any locking, simple select and
      update (Bug #7975 (http://bugs.mysql.com/7975)). `InnoDB' now
      takes an exclusive lock when `INSERT ON DUPLICATE KEY UPDATE' is
      checking duplicate keys.
 
    * Fixed a bug where MySQL was allowing concurrent updates (inserts,
      deletes) to a table if binary logging is enabled.  Changed to
      ensure that all updates are executed in a serialized fashion,
      because they are executed serialized when binlog is replayed. (Bug
      #7879 (http://bugs.mysql.com/7879))
 
    * Fixed a rare race condition which could lead to `FLUSH TABLES WITH
      READ LOCK' hanging. (Bug #8682 (http://bugs.mysql.com/8682))
 
    * Fixed a bug in replication that caused the master to stamp
      generated statements (such as `SET' commands) with an `error_code'
      intended only for another statement. This could happen, for
      example, when a statements generates a duplicate key error on the
      master but must be replicated. (Bug #8412
      (http://bugs.mysql.com/8412))
 
Info Catalog (mysql.info) news-5-0-4 (mysql.info) news-5-0-x (mysql.info) news-5-0-2
automatically generated byinfo2html