コンパイル時の不手際のため、MySQL 5.1.12のバイナリ配布にはNDBクラスタやパーティショニングは含まれませんでした。ご不便をお掛けし恐縮です。バージョン5.1.14.へ更新してください。ソースからコンパイルする場合には、--with-ndbcluster、--with-partitionオプションとともにconfigureを実行して下さい。
This is a new Beta development release, fixing recently discovered bugs.
この項目は前回のMySQL公式リリース以降に適用されたすべての変更とバグ修正を説明します。更に頻繁でありご使用のバージョンと機能に合わせた更新情報を希望される場合には、MySQLエンタープライズ(商用版MySQL)への登録をお考えください。詳細は、http://www.mysql.com/products/enterpriseをご覧下さい。
Functionality added or changed:
          Incompatible change: Support
          for the BerkeleyDB (BDB) engine has been
          dropped from this release. Any existing tables that are in BDB
          format will not be readable from within MySQL from 5.1.12 or
          newer. You should convert your tables to another storage
          engine before upgrading to 5.1.12.
        
          Incompatible change: The
          namespace for scheduled events has changed, such that events
          are no longer unique to individual users. This also means that
          a user with the EVENT privilege on a given
          database can now view, alter, or drop any events defined on
          that database.
        
If you used scheduled events in an earlier MySQL 5.1 release, you should rename any of them having the same name and defined on the same database but belonging to different users — so that all events in a given database have unique names — before upgrading to 5.1.12 (or newer).
For additional information, see 項19.5. 「The Event Scheduler and MySQL Privileges」.
          Incompatible change: The
          permitted values for and behaviour of the
          event_scheduler system variable have
          changed. Permitted values are now ON,
          OFF, and DISABLED, with
          OFF being the default. It is not possible
          to change its value to or from DISABLED
          while the server is running.
        
For details, see 項19.1. 「Event Scheduler Overview」.
          Incompatible change: The
          plugin interface has changed: The
          st_mysql_plugin structure has a new
          license member to indicate the license
          type. (The allowable values are defined in
          mysql/plugin.h.) This change is not
          backward compatible, so the API version
          (MYSQL_PLUGIN_INTERFACE_VERSION) has
          changed. For additional information, see
          項25.2.5. 「Writing Plugins」.
        
Incompatible change: The full-text parser plugin interface has changed in two ways:
              The MYSQL_FTPARSER_PARAM structure has
              a new flags member. This is zero if
              there are no special flags, or
              MYSQL_FTFLAGS_NEED_COPY, which means
              that mysql_add_word() must save a copy
              of the word (that is, it cannot use a pointer to the word
              because the word is in a buffer that will be overwritten.)
            
              This flag might be set or reset by MySQL before calling
              the parser plugin, by the parser plugin itself, or by the
              mysql_parse() function.
            
              The mysql_parse() and
              mysql_add_word() functions now take a
              MYSQL_FTPARSER_PARAM as their first
              argument, not a
              MYSQL_FTPARSER_PARAM::mysql_ftparam as
              before.
            
          These changes are not backward compatible, so the API version
          (MYSQL_FTPARSER_INTERFACE_VERSION) has
          changed. For additional information, see
          項25.2.5. 「Writing Plugins」.
        
          Incompatible change: In the
          INFORMATION_SCHEMA.EVENTS table, the
          EVENT_DEFINITION column now contains the
          SQL executed by a scheduled event.
        
          The EVENT_BODY column now contains the
          language used for the statement or statements shown in
          EVENT_DEFINITION. In MySQL 5.1, the value
          shown in EVENT_BODY is always
          SQL.
        
          These changes were made to bring this table into line with the
          INFORMATION_SCHEMA.ROUTINES table, and that
          table's ROUTINE_BODY and
          ROUTINE_DEFINITION columns. (Bug#16992)
        
          Incompatible change: MySQL
          Cluster node and system restarts formerly required that all
          fragments use the same local checkpoint (LCP); beginning with
          this version, it is now possible for different fragments to
          use different LCPs during restarts. This means that data node
          filesystems must be rebuilt as part of any upgrade to this
          version by restarting all data nodes with the
          --initial option. (Bug#21271, Bug#21478)
        
See 項14.5.2. 「クラスタのアップグレードおよびダウングレードの互換性」, and related sections of the Manual before upgrading a MySQL Cluster to version 5.1.12 or later.
Incompatible change: A number of MySQL constructs are now prohibited in partitioning expressions, beginning with this release. These include:
A number of MySQL functions.
You can find a complete list of these functions under Partitioning Limitation.
              The bit operators |,
              &, ^,
              <<, >>,
              and ~.
            
Nested function calls.
Calls to stored routines, UDFs, or plugins.
              Character-to-integer conversions involving non-8-bit
              character sets or any of the
              latin1_german2_ci,
              latin2_czech_cs, or
              cp1250_czech_cs collations.
            
These restrictions were added in part as a result of Bug#18198 and related bug reports.
For more information about these and other restrictions on partitioned tables in MySQL, see 項15.5. 「パーティショニングの制約と制限」.
Binary MySQL distributions no longer include a mysqld-max server. Instead, distributions contain a binary that includes the features previously included in the mysqld-max binary.
The default binary log format (as used during replication) is now Mixed based, automatically using a combination of row-based and statement based log events as appropriate.
          The general query log and slow query logs now can be enabled
          or disabled at runtime with the general_log
          and slow_query_log system variables, and
          the name of the log files can be changed by setting the
          general_log_file and
          slow_query_log_file system variables. See
          項4.11.3. 「一般クエリ ログ」, and
          項4.11.5. 「スロー クエリ ログ」.
        
          The output generated by the server when using the
          --xml option has changed with regard to null
          values. It now matches the output from mysqldump
          --xml. That is, a column containing
          a NULL value is now reported as
        
<field name="column_name" xsi:nil="true" />
          whereas a column containing the string value
          'NULL' is reported as
        
<field name="column_name">NULL</field>
and a column containing an empty string is reported as
<field name="column_name">>/field>
          The following statements now can be executed as prepared
          statements (using PREPARE plus
          EXECUTE):
        
CACHE INDEX
CHANGE MASTER
CHECKSUM {TABLE | TABLES}
{CREATE | RENAME | DROP} DATABASE
{CREATE | RENAME | DROP} USER
FLUSH {TABLE | TABLES | TABLES WITH READ LOCK | HOSTS | PRIVILEGES
  | LOGS | STATUS | MASTER | SLAVE | DES_KEY_FILE | USER_RESOURCES}
GRANT
REVOKE
KILL
LOAD INDEX INTO CACHE
RESET {MASTER | SLAVE | QUERY CACHE}
SHOW BINLOG EVENTS
SHOW CREATE {PROCEDURE | FUNCTION | EVENT | TABLE | VIEW}
SHOW {AUTHORS | CONTRIBUTORS | WARNINGS | ERRORS}
SHOW {MASTER | BINARY} LOGS
SHOW {MASTER | SLAVE} STATUS
SLAVE {START | STOP}
INSTALL PLUGIN
UNINSTALL PLUGIN
          The Instance Manager --passwd option has been
          renamed to --print-password-line. Other
          options were added to enable management of the IM password
          file from the command line: --add-user,
          --drop-user, --edit-user,
          --list-users,
          --check-password-file,
          --clean-password-file,
          --username, and --password.
          The --mysql-safe-compatible option was added
          to cause the Instance Manner to act similarly to
          mysqld_safe.
        
On Windows, typing Control-C caused the mysql client to crash. Now it causes mysql to attempt to kill the current statement. If this cannot be done, or Control-C is typed again before the statement is killed, mysql exits. (Bug#17926; see also Bug#1989)
          TEXT and BLOB columns do
          not support DEFAULT values. However, when a
          default of '' was specified, the
          specification was silently ignored. This now results in a
          warning, or an error in strict mode. (Bug#19498)
        
          The mysql client now allows
          \l in the prompt command
          argument to insert the current delimiter into the prompt. (Bug#14448)
        
          Log table changes: By default, the log tables use the
          CSV storage engine, as before. But now the
          log tables can be altered to use the MyISAM
          storage engine. You cannot use ALTER TABLE
          to alter a log table that is in use. The log must be disabled
          first. No engines other than CSV or
          MyISAM are legal for the log tables. The
          use of DROP TABLE for log tables is
          similarly restricted: It cannot be used to drop a log table
          that is in use. The log must be disabled first. (These changes
          also correct a deadlock that occurred for an attempt to drop
          an in-use log table.) (Bug#18559)
        
          The LEFT() and RIGHT()
          functions return NULL if any argument is
          NULL. (Bug#11728)
        
          EXPLAIN EXTENDED now shows a
          filtered column that is an estimated
          percentage of the examined rows that will be joined with the
          previous tables. (Bug#14940)
        
          For mysqlshow, if a database name argument
          contains wildcard characters (such as
          ‘_’) but matches a single
          database name exactly, treat the name as a literal name. This
          allows a command such as mysqlshow
          information_schema work without having to escape the
          wildcard character. (Bug#19147)
        
          If a DROP VIEW statement named multiple
          views, it stopped with an error if a non-existent view was
          named and did not drop the remaining views. Now it continues
          on and reports an error at the end, similar to DROP
          TABLE. (Bug#16614)
        
          SHOW CREATE TABLE now shows constraints for
          InnoDB tables. (Bug#16614)
        
          Added the --set-charset option to
          mysqlbinlog to allow the character set to
          be specified for processing binary log files. (Bug#18351)
        
          NDB Cluster: Backup messages are no longer
          printed to the Cluster log.
        
          NDB Cluster: The HELP
          command in the Cluster management client now provides
          command-specific help. For example, HELP
          RESTART in ndb_mgm provides
          detailed information about the START
          command. (Bug#19620)
        
          NDB Cluster: Inserting into an
          NDB table failed when the table had no
          primary key but had a unique key added after table was created
          on one or more NOT NULL columns. This
          occurred when the unique key had been adding using either
          ALTER TABLE or CREATE UNIQUE
          KEY. (Bug#22838)
        
          NDB Cluster: The
          ndb_config utility now accepts
          -c as a short form of the
          --ndb-connectstring option. (Bug#22295)
        
          NDB Cluster: Added the --bind-address
          option for ndbd. This allows a data node
          process to be bound to a specific network interface. (Bug#22195)
        
          NDB Cluster: The
          Ndb_number_of_storage_nodes system variable
          was renamed to Ndb_number_of_data_nodes.
          (Bug#20848)
        
          Added the --ndb-use-copying-alter-table
          option to mysqld to provide a fallback in
          case of problems with online ALTER TABLE
          operations on NDBCluster tables.
        
          Added the SHOW CONTRIBUTORS statement.
        
          It is no longer possible to create partitioned tables using
          the CSV storage engine.
        
          NDB Cluster: The status variables
          Ndb_connected_host and
          Ndb_connected_port were renamed to
          Ndb_config_from_host and
          Ndb_config_from_port, respectively.
        
          NDB Cluster: A number of erroneous,
          misleading, or missing error messages have been corrected.
          (Bug#17297 & Bug#19543)
        
          NDB Cluster: It is no longer possible to
          create Cluster tables using any partitioning type other than
          [LINEAR] KEY. Attempting
          to do so now raises an error.
        
          The ExtractValue() function now produces an
          error when passed an XML fragment that is not well-formed.
          (Bug#18201)
        
(Previously, the function allowed invalid XML fragments to be used.)
          There were several issues regarding how SHOW
          STATUS affected some status variables and logging
          which could impact monitoring the MySQL Server. The behavior
          of this statement has been modified in two ways:
        
              SHOW STATUS is no longer logged to the
              slow query log.
            
              SHOW STATUS no longer updates any
              session status variables, except for
              com_show_status.
            
          However, SHOW STATUS continues to update
          global status variables to allow
          monitoring of what the server is actually doing. This is
          because SHOW STATUS creates temporary
          tables that may affect performance if it is called excessively
          often. (Bug#10210, Bug#19764)
        
The mysqldumpslow script has been moved from client RPM packages to server RPM packages. This corrects a problem where mysqldumpslow could not be used with a client-only RPM install, because it depends on my_print_defaults which is in the server RPM. (Bug#20216)
The bundled yaSSL library was upgraded to version 1.3.7.
          The bundled yaSSL library licensing has added a FLOSS
          exception similar to MySQL to resolve licensing
          incompatibilities with MySQL. (See the
          extra/yassl/FLOSS-EXCEPTIONS file in a
          MySQL source distribution for details.) (Bug#16755)
        
mysqlslap threads now try to connect up to 10 times if the initial connect attempt fails. (Bug#21297)
For a successful dump, mysqldump now writes a SQL comment to the end of the dump file in the following format:
-- Dump completed on YYYY-MM-DD hh:mm:ss
The mysqld and mysqlmanager manpages have been reclassified from volume 1 to volume 8. (Bug#21220)
          In the INFORMATION_SCHEMA.ROUTINES table
          the ROUTINE_DEFINITION column now is
          defined as NULL rather than NOT
          NULL. Also, NULL rather than the
          empty string is returned as the column value if the user does
          not have sufficient privileges to see the routine definition.
          (Bug#20230)
        
          configure now defines the symbol
          DBUG_ON in config.h to
          indicate whether the source tree is configured to be compiled
          with debugging support. (Bug#19517)
        
The MySQL distribution now compiles on UnixWare 7.13. (Bug#20190)
          The mysql client used the default character
          set if it automatically reconnected to the server, which is
          incorrect if the character set had been changed. To enable the
          character set to remain synchronized on the client and server,
          the mysql command
          charset (or \C) that
          changes the default character set and now also issues a
          SET NAMES statement. The changed character
          set is used for reconnects. (Bug#11972)
        
          The STATE column of the
          INFORMATION_SCHEMA.PROCESSLIST table was
          increased from 30 to 64 characters to accommodate longer state
          values. (Bug#21652)
        
          TIMESTAMP columns that are NOT
          NULL now are reported that way by SHOW
          COLUMNS and INFORMATION_SCHEMA.
          (Bug#20910)
        
          INFORMATION_SCHEMA contains new tables,
          GLOBAL_STATUS,
          SESSION_STATUS,
          GLOBAL_VARIABLES, and
          SESSION_VARIABLES, that correspond to the
          output from the SHOW {GLOBAL|SESSION}
          STATUS and SHOW {GLOBAL|SESSION}
          VARIABLES statements.
        
          The BINARY keyword now is forbidden as a
          data type attribute in stored routines (for example,
          DECLARE v1 VARCHAR(25) BINARY), because
          DECLARE does not support collations, and in
          this context BINARY specifies the binary
          collation of the variable's character set. (Bug#20701)
        
The source distribution has been updated so that the UDF example can be compiled under Windows with CMake. See 項25.3.4.5. 「Compiling and Installing User-Defined Functions」. (Bug#19121)
          LOAD DATA INFILE no longer causes an
          implicit commit for all storage storage engines. It now causes
          an implicit commit only for tables using the
          NDB storage engine. (Bug#11151)
        
          The LOAD DATA FROM MASTER and LOAD
          TABLE FROM MASTER statements are deprecated. See
          項12.6.2.2. 「LOAD DATA FROM MASTER 構文」, for recommended
          alternatives. (Bug#18822, Bug#9125, Bug#12187, Bug#14399,
          Bug#15025, Bug#20596)
        
          mysqldump now has a
          --flush-privileges option. It causes
          mysqldump to emit a FLUSH
          PRIVILEGES statement after dumping the
          mysql database. This option should be used
          any time the dump contains the mysql
          database and any other database that depends on the data in
          the mysql database for proper restoration.
          (Bug#21424)
        
          The default value of the tmp_table_size
          system variable was lowered from 32MB to 16MB because it is
          bounded by the value of
          max_heap_table_size, which has a default of
          16MB. (Bug#18875)
        
          The number of InnoDB threads is no longer
          limited to 1,000 on Windows. (Bug#22268)
        
          Memory consumption of the InnoDB data
          dictionary cache was roughly halved by cleaning up the data
          structures. (Bug#20877)
        
          Using --with-debug to configure MySQL with
          debugging support enables you to use the
          --debug="d,parser_debug" option when you
          start the server. This causes the Bison parser that is used to
          process SQL statements to dump a parser trace to the server's
          standard error output. Typically, this output is written to
          the error log.
        
          A new system variable, lc_time_names,
          specifies the locale that controls the language used to
          display day and month names and abbreviations. This variable
          affects the output from the DATE_FORMAT(),
          DAYNAME() and
          MONTHNAME() functions. See
          項4.10.9. 「MySQL サーバのローケル サポート」.
        
Bugs fixed:
Security fix: On Linux, and possibly other platforms using case-sensitive filesystems, it was possible for a user granted rights on a database to create or access a database whose name differed only from that of the first by the case of one or more letters. (CVE-2006-4226, Bug#17647)
          Security fix: If a user has
          access to MyISAM table
          t, that user can create a
          MERGE table m
          that accesses t. However, if the
          user's privileges on t are
          subsequently revoked, the user can continue to access
          t by doing so through
          m. If this behavior is undesirable,
          you can start the server with the new
          --skip-merge option to disable the
          MERGE storage engine. (Bug#15195)
        
          Security fix: A stored
          routine created by one user and then made accessible to a
          different user using GRANT EXECUTE could be
          executed by that user with the privileges of the routine's
          definer. (CVE-2006-4227, Bug#18630)
        
          Incompatible change: For
          utf8 columns, the full-text parser
          incorrectly considered several non-word punctuation and
          whitespace characters as word characters, causing some
          searches to return incorrect results. (Bug#19580)
        
          The fix involves a change to the full-text parser, so any
          tables that have FULLTEXT indexes on
          utf8 columns must be repaired with
          REPAIR TABLE:
        
REPAIR TABLE tbl_name QUICK;
          An invalid GRANT statement for which
          Ok was returned on a replication master
          caused an error on the slave and replication to fail. (Bug#6774)
        
          InnoDB locking was improved by removing a
          gap lock for the case that you try to delete the same row
          twice within a transaction. (Bug#13544)
        
          Deleting entries from a large MyISAM index
          could cause index corruption when it needed to shrink. Deletes
          from an index can happen when a record is deleted, when a key
          changes and must be moved, and when a key must be un-inserted
          because of a duplicate key. This can also happen in
          REPAIR TABLE when a duplicate key is found
          and in myisamchk when sorting the records
          by an index. (Bug#22384)
        
          Setting myisam_repair_threads caused any
          repair operation on a MyISAM table to fail
          to update the cardinality of indexes, instead making them
          always equal to 1. (Bug#18874)
        
          ALTER EVENT statements including only a
          COMMENT clause failed with a syntax error
          on two platforms: Linux for S/390, and OS X 10.4 for 64-bit
          PPC. (Bug#23423)
        
For row-based replication, log rotation could occur at an improper time. (Bug#21474)
          For row-based replication, the BINLOG
          command did not lock tables properly, causing a crash for some
          table types. (Bug#19459)
        
          The parser rejected queries that selected from a table twice
          using a UNION within a subquery. The parser
          now supports arbitrary subquery, join, and parenthesis
          operations within EXISTS subqueries. A
          limitation still exists for scalar subqueries: If the subquery
          contains UNION, the first
          SELECT of the UNION
          cannot be within parentheses. For example, SELECT
          (SELECT a FROM t1 UNION SELECT b FROM t2) will work,
          but SELECT ((SELECT a FROM t1) UNION (SELECT b FROM
          t2)) will not. (Bug#14654)
        
          Incorrect type aggregation for IN and
          CASE expressions could lead to an incorrect
          result. (Bug#18360)
        
          When using row based replication, a CREATE
          TABLE...SELECT statement would be replicated, even
          if the table creation failed on the master (for example, due
          to a duplicate key failure). (Bug#20265)
        
          The optimizer did not take advantage of indexes on columns
          used for the second or third arguments of
          BETWEEN. (Bug#18165)
        
          Subqueries with aggregate functions but no
          FROM clause could return incorrect results.
          (Bug#21540)
        
          The CSV storage engine failed to detect
          some table corruption. (Bug#22080)
        
          For multiple-table UPDATE statements,
          storage engines were not notified of duplicate-key errors.
          (Bug#21381)
        
          Successive invocations of a COUNT(*) query
          containing a join on two MyISAM tables and
          a WHERE clause of the form WHERE
          ( yielded different results. (Bug#21019)
        table1.column1
          =
          table2.column2)
          OR
          table2.column2
          IS NULL
          It was possible to provide the
          ExtractValue() function with input
          containing 「tags」 that were not valid XML; for
          example, it was possible to use tag names beginning with a
          digit, which are disallowed by the W3C's XML 1.0
          specification. Such cases caused the function to return
          「junk」 output rather than an error message
          signalling the user as to the true nature of the problem. (Bug#20854)
        
          The presence of a subquery in the ON clause
          of a join in a view definition prevented the
          MERGE algorithm from being used for the
          view in cases where it should be allowed. (Bug#21646)
        
          BIT columns were not replicated properly
          under row-based replication. (Bug#22550)
        
          Conversion of values inserted into a BIT
          column could affect adjacent columns. (Bug#22271)
        
The URL into the online manual that is printed in the stack trace message by the server was out of date. (Bug#21449)
          Incorrect results could be obtained from re-execution of a
          parametrized prepared statement or a stored routine with a
          SELECT that uses LEFT
          JOIN with a second table having only one row. (Bug#21081)
        
          PROCEDURE ANALYSE() returned incorrect
          values of M
          FLOAT( and
          M,
          D)DOUBLE(. (Bug#20305)
        M,
          D)
          Join conditions using partial indexes on
          utf8 columns of InnoDB
          tables incorrectly ignored rows where the length of the actual
          value was greater than the length of the partial index. (Bug#19960)
        
          On an INSERT into an updatable but
          non-insertable view, an error message was issued stating that
          the view was not updatable. Now the message says the view is
          not insertable-into. (Bug#5505)
        
          INSERT DELAYED did not honor SET
          INSERT_ID or the auto_increment_*
          system variables. (Bug#20627, Bug# 20830)
        
          For character sets having a mbmaxlen value
          of 2, any ALTER TABLE statement changed
          TEXT columns to
          MEDIUMTEXT. (Bug#21620)
        
          A query that used GROUP BY and an
          ALL or ANY quantified
          subquery in a HAVING clause could trigger
          an assertion failure. (Bug#21853)
        
          For an ENUM column that used the
          ucs2 character set, using ALTER
          TABLE to modify the column definition caused the
          default value to be lost. (Bug#20108)
        
          An UPDATE that referred to a key column in
          the WHERE clause and activated a trigger
          that modified the column resulted in a loop. (Bug#20670)
        
A loaded storage engine plugin did not load after a server restart. (Bug#21610)
          Creating a TEMPORARY table with the same
          name as an existing table that was locked by another client
          could result in a lock conflict for DROP TEMPORARY
          TABLE because the server unnecessarily tried to
          acquire a name lock. (Bug#21096)
        
          After FLUSH TABLES WITH READ LOCK followed
          by UNLOCK TABLES, attempts to drop or alter
          a stored routine failed with an error that the routine did not
          exist, and attempts to execute the routine failed with a lock
          conflict error. (Bug#21414)
        
          mysql_com.h unnecessarily referred to the
          ulong type. (Bug#22227)
        
          Incorporated some portability fixes into the definition of
          __attribute__ in
          my_global.h. (Bug#2717)
        
          Linking the pthreads library to
          single-threaded MySQL libraries caused
          dlopen() to fail at runtime on HP-UX. (Bug#18267)
        
Loading a plugin caused any an existing plugin with the same name to be lost. (Bug#20615)
          In the package of pre-built time zone tables that is available
          for download at
          http://dev.mysql.com/downloads/timezones.html, the tables
          now explicitly use the utf8 character set
          so that they work the same way regardless of the system
          character set value. (Bug#21208)
        
          The build process incorrectly tried to overwrite
          sql/lex_hash.h. This caused the build to
          fail when using a shadow link tree pointing to original
          sources that were owned by another account. (Bug#18888)
        
mysql_ftdump produced bad counts for common words. (Bug#22326)
The optimizer could make an incorrect index choice for indexes with a skewed key distribution. (Bug#22393)
          When records are merged from the insert buffer and the page
          needs to be reorganized, InnoDB used
          incorrect column length information when interpreting the
          records of the page. This caused a server crash due to
          apparent corruption of secondary indexes in
          ROW_FORMAT=COMPACT that contain prefix
          indexes of fixed-length columns. Data files should not be
          corrupted, but the crash was likely to repeat every time the
          server was restarted. (Bug#21638)
        
Instance Manager didn't close the client socket file when starting a new mysqld instance. mysqld inherited the socket, causing clients connected to Instance Manager to hang. (Bug#12751)
          Using GROUP_CONCAT() on the result of a
          subquery in the FROM clause that itself
          used GROUP_CONCAT() could cause a server
          crash. (Bug#22015)
        
Instance Manager had a race condition involving mysqld PID file removal. (Bug#22379)
          Execution of a prepared statement that uses an
          IN subquery with aggregate functions in the
          HAVING clause could cause a server crash.
          (Bug#22085)
        
          Selecting from a MERGE table could result
          in a server crash if the underlying tables had fewer indexes
          than the MERGE table itself. (Bug#21617,
          Bug#22937)
        
          A locking safety check in InnoDB reported a
          spurious error stored_select_lock_type is 0 inside
          ::start_stmt() for INSERT ...
          SELECT statements in
          innodb_locks_unsafe_for_binlog mode. The
          safety check was removed. (Bug#10746)
        
make install tried to build files that should already have been built by make all, causing a failure if installation was performed using a different account than the one used for the initial build. (Bug#19738)
          The source distribution would not build on Windows due to a
          spurious dependency on ib_config.h. (Bug#22224)
        
          It was possible for a stored routine with a
          non-latin1 name to cause a stack overrun.
          (Bug#21311)
        
          The server returns a more informative error message when it
          attempts to open a MERGE table that has
          been defined to use non-MyISAM tables. (Bug#10974)
        
Within stored routines, some error messages were printed incorrectly. A non-null-terminated string was passed to a message-printing routine that expected a null-terminated string. (Bug#20778)
          SUBSTR() results sometimes were stored
          improperly into a temporary table when multi-byte character
          sets were used. (Bug#20204)
        
          Certain malformed INSERT statements could
          crash the mysql client. (Bug#21142)
        
          EXPLAIN EXTENDED now shows a
          filtered column that is an estimated
          percentage of the examined rows that will be joined with the
          previous tables. This was added while dealing with a problem
          of MySQL choosing the wrong index for some queries. (Bug#14940)
        
          On Mac OS X, zero-byte read() or
          write() calls to an SMB-mounted filesystem
          could return a non-standard return value, leading to data
          corruption. Now such calls are avoided. (Bug#12620)
        
          With TRADITIONAL SQL mode, assignment of
          out-of-bound values and rounding of assigned values was done
          correctly, but assignment of the same numbers represented as
          strings sometimes was handled differently. (Bug#6147)
        
          The source distribution failed to compile when configured with
          the --without-geometry option. (Bug#12991)
        
          The source distribution failed to compile when configured with
          the --with-libwrap option. (Bug#18246)
        
          The feature of being able to recover a temporary table named
          #sql_ in
          idInnoDB by creating a table named
          rsql_
          was broken by the introduction of the new identifier encoding
          in MySQL 5.1.6 (Bug#21313)
        id_recover_innodb_tmp_table
          ALTER EVENT in the body of a stored
          procedure led to a crash when the procedure was called. This
          affected only those ALTER EVENT statements
          which changed the interval of the event. (Bug#22397)
        
          A DATE can be represented as an integer
          (such as 20060101) or as a string (such as
          '2006.01.01'). When a
          DATE (or TIME) column is
          compared in one SELECT against both
          representations, constant propagation by the optimizer led to
          comparison of DATE as a string against
          DATE as an integer. This could result in
          integer comparisons such as 2006 against
          20060101, erroneously producing a false
          result. (Bug#21475)
        
          When a statement used a stored function that inserted into an
          AUTO_INCREMENT column, the generated
          AUTO_INCREMENT value was not written into
          the binary log, so a different value could in some cases be
          inserted on the slave. (Bug#20341)
        
          A stored procedure that used
          LAST_INSERT_ID() did not replicate properly
          using statement-based binary logging. (Bug#20339)
        
          Use of the --no-pager option caused
          mysql to crash. (Bug#19363)
        
          For INSERT ... ON DUPLICATE KEY UPDATE, use
          of
          VALUES(
          within the col_name)UPDATE clause sometimes was
          handled incorrectly. (Bug#21555)
        
          When event_scheduler was set to
          DISABLED, its value was not displayed
          correctly by SHOW VARIABLES or
          SELECT @@global.event_scheduler. (Bug#22662)
        
          Row equalities (such as WHERE (a,b) = (c,d)
          were not taken into account by the optimizer, resulting in
          slow query execution. Now they are treated as conjunctions of
          equalities between row elements. (Bug#16081)
        
If the binary logging format was changed between the times when a locked table was modified and when it was unlocked, the binary log contents were incorrect. (Bug#20863)
Column names supplied for a view created on a master server could be lost on a slave server. (Bug#19419)
          For a MyISAM table locked with
          LOCK TABLES ...WRITE, queries optimized
          using the index_merge method did not show
          rows inserted with the lock in place. (Bug#20256)
        
          Table aliases in multiple-table DELETE
          statements sometimes were not resolved. (Bug#21392)
        
          A query result could be sorted improperly when using
          ORDER BY for the second table in a join.
          (Bug#21302)
        
          The --collation-server server option was
          being ignored. With the fix for this problem, if you choose a
          non-default character set with
          --character-set-server, you should also use
          --collation-server to specify the collation.
          (Bug#15276)
        
A function result in a comparison was replaced with a constant by the optimizer under some circumstances when this optimization was invalid. (Bug#21698)
          A subquery that uses an index for both the
          WHERE and ORDER BY
          clauses produced an empty result. (Bug#21180)
        
          If the auto_increment_offset setting causes
          MySQL to generate a value larger than the column's maximum
          possible value, the INSERT statement is
          accepted in strict SQL mode, whereas but should fail with an
          error. (Bug#20573)
        
Queries containing a subquery that used aggregate functions could return incorrect results. (Bug#16792)
Row-based replication failed when the query cache was enabled on the slave. (Bug#17620)
          The
          index_merge/Intersection
          optimizer could have a memory overrrun when the number of
          table columns covered by an index is sufficiently large,
          possibly resulting in a server crash. (Bug#16201)
        
          The MD5(), SHA1(), and
          ENCRYPT() functions should return a binary
          string, but the result sometimes was converted to the
          character set of the argument. MAKE_SET()
          and EXPORT_SET() now use the correct
          character set for their default separators, resulting in
          consistent result strings which can be coerced according to
          normal character set rules. (Bug#20536)
        
          EXPLAIN sometimes returned an incorrect
          select_type for a SELECT
          from a view, compared to the select_type
          for the equivalent SELECT from the base
          table. (Bug#5500)
        
          An InnoDB mutex was not aquired and
          released under the same condition, leading to deadlock in some
          rare situations involving XA transactions. (Bug#21833)
        
With row-based replication, replicating a statement to a slave where the table had additional columns relative to the master table did not work. (Bug#19069)
          For a MyISAM table with a
          FULLTEXT index, compression with
          myisampack or a check with
          myisamchk after compression resulted in
          table corruption. (Bug#19702)
        
          With max_sp_recursion set to 0, a stored
          procedure that executed a SHOW CREATE
          PROCEDURE statement for itself triggered a recursion
          limit exceeded error, though the statement involves no
          recursion. (Bug#21416)
        
          mysqldump did not add version-specific
          comments around WITH PARSER and
          TABLESPACE ... STORAGE DISK clauses for
          CREATE TABLE statements, causing the dump
          file to fail when loaded into older servers. (Bug#20841)
        
          BIN(), OCT(), and
          CONV() did not work with BIT values. (Bug#15583)
        
          The optimizer could produce an incorrect result after
          AND with collations such as
          latin1_german2_ci,
          utf8_czech_ci, and
          utf8_lithianian_ci. (Bug#9509)
        
          The server could crash for the second execution of a function
          containing a SELECT statement that uses an
          aggregating IN subquery. (Bug#21493)
        
          UPGRADE was treated as a reserved word,
          although it is not. (Bug#21772)
        
Database and table names have a maximum length of 64 characters (even if they contain multi-byte characters), but were being truncated to 64 bytes. (Bug#21432)
Usernames have a maximum length of 16 characters (even if they contain multi-byte characters), but were being truncated to 16 bytes. (Bug#20393)
          A query could produce different results with and without and
          index, if the WHERE clause contained a
          range condition that used an invalid
          DATETIME constant. (Bug#16249)
        
          COUNT(*) queries with ORDER
          BY and LIMIT could return the
          wrong result. (Bug#21787)
        
          Note: This problem was
          introduced by the fix for Bug#9676, which limited the rows
          stored in a temporary table to the LIMIT
          clause. This optimization is not applicable to non-group
          queries with aggregate functions. The current fix disables the
          optimization in such cases.
        
Memory overruns could occur for certain kinds of subqueries. (Bug#21477)
          Adding ORDER BY to a SELECT
          DISTINCT( query
          could produce incorrect results. (Bug#21456)
        expr)
Memory used by scheduled events was not freed when the events were dropped. (Bug#18683)
          A scheduled event that took longer to execute than the length
          of time scheduled between successive executions could
          「skip」 executions. For example, an event defined
          with EVERY 1 SECOND — but which
          required longer than 1 second to complete — might be
          executed only once every 2 seconds. (Bug#16417)
        
          When used in the DO clause of a
          CREATE EVENT statement, the statements
          CREATE EVENT, CREATE
          FUNCTION, and CREATE PROCEDURE
          caused the server to crash. (These statements are not
          permitted inside CREATE EVENT.) (Bug#16409, Bug#18896)
        
          A subselect used in the ON SCHEDULE clause
          of a CREATE EVENT or ALTER
          EVENT statement caused the server to crash, rather
          than producing an error as expected. (Bug#16394)
        
          mysql displayed an empty string for
          NULL values. (Bug#21618)
        
          mysql_upgrade produced a malformed
          upgrade_defaults file by overwriting the
          [client] group header with a
          password option. This prevented
          mysqlcheck from running successfully when
          invoked by mysql_upgrade. (Bug#21011)
        
          mysql_config --libmysqld-libs did not
          produce any SSL options necessary for linking
          libmysqld with SSL support enabled. (Bug#21239)
        
          yaSSL had a conflicting definition for
          socklen_t on hurd-i386 systems. (Bug#22326)
        
          On Windows, inserting into a MERGE table
          after renaming an underlying MyISAM table
          caused a server crash. (Bug#20789)
        
          character_set_results can be
          NULL to signify 「no
          conversion,」 but some code did not check for
          NULL, resulting in a server crash. (Bug#21913)
        
          If a partitioned InnoDB table contained an
          AUTO_INCREMENT column, a
          SHOW statement could cause an assertion
          failure with more than one connection. (Bug#20493)
        
          Running InnoDB with many concurrent threads
          could cause memory corruption and a seg fault due to a bug
          introduced in MySQL 5.1.11. (Bug#20213)
        
          Using DROP TABLE with concurrent queries
          causes mysqld to crash. (Bug#21784)
        
          The ExtractValue() function did not accept
          XML tag names containing a period (.)
          character. (Bug#20795)
        
For table-format output, mysql did not always calculate columns widths correctly for columns containing multi-byte characters in the column name or contents. (Bug#17939)
          Identifiers with embedded escape characters were not handled
          correctly by some SHOW statements due to
          some old code that was doing some extra unescaping. (Bug#19874)
        
          InnoDB was slow with more than 100,000
          .idb files. (Bug#21112)
        
          SHOW INNODB STATUS contained some duplicate
          output. (Bug#21113)
        
          After an INSERT ... ON DUPLICATE KEY UPDATE
          statement that updated an existing row,
          LAST_INSERT_ID() could return a value not
          in the table. (Bug#11460)
        
          Selecting from INFORMATION_SCHEMA.FILES
          could crash the server. (Bug#21676)
        
          Using cursors with READ COMMITTED isolation
          level could cause InnoDB to crash. (Bug#19834)
        
A server or network failure with an open client connection would cause the client to hang even though the server was no longer available. (Bug#9678)
          Using ALTER TABLE ... REORGANIZE PARTITIONS
          to reduce the number of subpartitions to 1 caused the server
          to crash. (Bug#21210)
        
          NDB Cluster: Data nodes added while the
          cluster was running in single user mode were all assigned node
          ID 0, which could later cause multiple node failures. Adding
          of nodes in single user mode is no longer possible. (Bug#20395)
        
          NDB Cluster: Attempting to create an
          NDB table on a MySQL with an existing
          non-Cluster table with the same name in the same database
          could result in data loss or corruption. Now, if such a table
          is encountered during autodiscovery, a warning is written to
          the error log of the affected mysqld, and
          the local table is overwritten. (Bug#21378)
        
          NDB Cluster (NDB API): Inacivity timeouts
          for scans were not correctly handled. (Bug#23107)
        
          NDB Cluster (NDB API): Attempting to read a
          nonexistent tuple using Commit mode for
          NdbTransaction::execute() caused node
          failures. (Bug#22672)
        
          NDB Cluster (NDB API): The inclusion of
          my_config.h in
          NdbApi.h required anyone wishing to write
          NDB API applications against MySQL 5.1 to have a complete copy
          of the 5.1 sources. (Bug#21253)
        
          NDB Cluster (NDB API): The
          NdbOperation::getBlobHandle() method, when
          called with the name of a nonexistent column, caused a
          segmentation fault. (Bug#21036)
        
          NDB Cluster: The --help
          output from NDB binaries did not include
          file-related options. (Bug#21994)
        
          NDB Cluster: The node recovery algorithm
          was missing a version check for tables in the
          ALTER_TABLE_COMMITTED state (as opposed to
          the TABLE_ADD_COMMITTED state, which has
          the version check). This could cause inconsistent schemas
          across nodes following node recovery. (Bug#21756)
        
          NDB Cluster: The output for the
          --help option used with
          NDB executable programs
          (ndbd, ndb_mgm,
          ndb_restore, ndb_config,
          and so on) referred to the Ndb.cfg file,
          instead of my.cnf. (Bug#21585)
        
          NDB Cluster: Partition distribution keys
          were updated only for the primary and starting replicas during
          node recovery. This could lead to node failure recovery for
          clusters having an odd number of replicas. (Bug#21535)
        
          Note: We recommend values for
          NumberOfReplicas that are even powers of 2,
          for best results.
        
          NDB Cluster: The ndb_mgm
          management client did not set the exit status on errors,
          always returning 0 instead. (Bug#21530)
        
          NDB Cluster: Cluster logs were not rotated
          following the first rotation cycle. (Bug#21345)
        
          NDB Cluster: Condition pushdown did not
          work correctly with DATETIME columns. (Bug#21056)
        
          NDB Cluster: Under some circumstances,
          local checkpointing would hang, keeping any unstarted nodes
          from being started. (Bug#20895)
        
          NDB Cluster: Using an invalid node ID with
          the management client STOP command could
          cause ndb_mgm to hang. (Bug#20575)
        
          NDB Cluster: In some cases where
          SELECT COUNT(*) from an
          NDB table should have yielded an error,
          MAX_INT was returned instead. (Bug#19914)
        
          NDB Cluster: Following the restart of an
          MGM node, the Cluster management client did not automatically
          reconnect. (Bug#19873)
        
          NDB Cluster: Error messages given when
          trying to make online changes parameters such as
          NoOfReplicas thast can only be changed via
          a complete shutdown and restart of the cluster did not
          indicate the true nature of the problem. (Bug#19787)
        
          NDB Cluster: ndb_restore
          did not always make clear that it had recovered successfully
          from temporary errors while restoring a cluster backup. (Bug#19651)
        
          NDB Cluster: In rare situations with
          resource shortages, a crash could result from insufficient
          IndexScanOperations. (Bug#19198)
        
          NDB Cluster: ndb_mgm -e show |
          head would hang after displaying the first 10 lines
          of output. (Bug#19047)
        
          NDB Cluster: The error returned by the
          cluster when too many nodes were defined did not make clear
          the nature of the problem. (Bug#19045)
        
          NDB Cluster: A problem with takeover during
          a system restart caused ordered indexes to be rebuilt
          incorrectly. This also adversely affected Cluster Replication.
          (Bug#15303)
        
          NDB Cluster: Some queries involving joins
          on very large NDB tables could crash the
          MySQL server. (Bug#21059)
        
          NDB Cluster (Disk Data):
          mysqldump did not back up tablespace or log
          file group information for Disk Data tables correctly.
          (Specifically, UNDO_BUFFER_SIZE and
          INITIAL_SIZE values were misreported.)
          Trying to restore from such a backup would produce error 1296
          (Got error 1504 'Out of logbuffer memory' from
          NDB). (Bug#20809)
        
          NDB Cluster (Disk Data): The
          INFORMATION_SCHEMA.FILES table showed
          incorrect values in the EXTENT_SIZE,
          FREE_EXTENTS, and
          TOTAL_EXTENTS columns for UNDO log files.
          (Bug#20073)
        
          NDB Cluster (Disk Data): Deletes from Disk
          Data tables used a non-optimal scan to find the rows to be
          deleted, resulting in poor performance. The fix causes disk
          order rather than memory order to be used, and can improve
          performance of Disk Data deletes by up to ~300% in some cases.
          (Bug#17929)
        
          NDB Cluster: A scan timeout returned Error
          4028 (Node failure caused abort of
          transaction) instead of Error 4008
          (Node failure caused abort of
          transaction...). (Bug#21799)
        
          NDB Cluster: The message Error 0
          in readAutoIncrementValue(): no Error was written
          to the error log whenever SHOW TABLE STATUS
          was performed on a Cluster table that did not have an
          AUTO_INCREMENT column. (Bug#21033)
        
          NDB Cluster (Direct APIs): The
          storage/ndb directory was missing from
          the server binary distribution, making it impossible to
          compile NDB API and MGM API applications.
          This directory can be found as
          /usr/include/storage/ndb after installing
          that distribution. (Bug#21955)
        
          NDB Cluster: ndb_size.pl
          and ndb_error_reporter were missing from
          RPM packages. (Bug#20426)
        
          The ndb_mgm program was included in both
          the MySQL-ndb-tools and
          MySQL-ndb-management RPM packages,
          resulting in a conflict if both were installed. Now
          ndb_mgm is included only in
          MySQL-ndb-tools. (Bug#21058)
        
          libmysqld produced some warnings to
          stderr which could not be silenced. These
          warnings now are suppressed. (Bug#13717)
        
          If a column definition contained a character set declaration,
          but a DEFAULT value began with an
          introducer, the introducer character set was used as the
          column character set. (Bug#20695)
        
          If a query had a condition of the form
          ,
          which participated in equality propagation and also was used
          for tableX.key
          =
          tableY.keyref access, then early
          ref-access NULL
          filtering was not peformed for the condition. This could make
          query execution slower. (Bug#19649)
        
          The optimizer sometimes produced an incorrect row-count
          estimate after elimination of const tables.
          This resulted in choosing extremely inefficient execution
          plans in same cases when distribution of data in joins were
          skewed. (Bug#21390)
        
          Query results could be incorrect if the
          WHERE clause contained
          t., where
          key_part NOT IN
          (val_list)val_list is a list of more than
          1000 constants. (Bug#21282)
        
          STR_TO_DATE() sometimes would return
          NULL if the %D format
          specifier was not the last specifier in the format string.
          (Bug#20987)
        
          On Windows, a definition for
          mysql_set_server_option() was missing from
          the C client library. (Bug#16513)
        
          The myisam_stats_method variable was
          mishandled when set from an option file or on the command
          line. (Bug#21054)
        
          The optimizer assumed that if (a=x AND b=x)
          is true, (a=x AND b=x) AND a=b is also
          true. But that is not always so if a and
          b have different data types. (Bug#21159)
        
          InnoDB did not honor IGNORE
          INDEX, which prevented using IGNORE
          INDEX in cases where an index sort would be slower
          than a filesort. (Bug#21174)
        
          For connections that required a SUBJECT
          value, a check was performed to verify that the value was
          correct, but the connection was not refused if not. (Bug#20411)
        
Some Linux-x86_64-icc packages (of previous releases) mistakenly contained 32-bit binaries. Only ICC builds are affected, not gcc builds. Solaris and FreeBSD x86_64 builds are not affected. (Bug#22238)
          INSERT ... SELECT sometimes generated a
          spurious Column count doesn't match value
          count error. (Bug#21774)
        
Some user-level level errors were being written to the server's error log, which is for server errors. (Bug#20402)
          to the client could have an empty column name. When using
          tables created under MySQL 4.1 with a 5.0 server, if the
          tables contained VARCHAR columns, for some
          queries the metadata sent to the client could have an empty
          column name. (Bug#14897)
        
          On 64-bit systems, use of the cp1250
          character set with a primary key column in a
          LIKE clause caused a server crash for
          patterns having letters in the range 128..255. (Bug#19741)
        
          ORDER BY RAND() LIMIT 1 always set a user
          variable to the last possible value from the table. (Bug#16861)
        
          N'xxx' and _utf8'xxx'
          were not treated as equivalent because
          N'xxx' failed to unescape backslashes
          (\) and doubled apostrophe/single quote
          characters (''). (Bug#17313)
        
          A subquery in the WHERE clause of the outer
          query and using IN and GROUP
          BY returned an incorrect result. (Bug#16255)
        
          When NOW() was used in a
          BETWEEN clause of the definition for a
          view, it was replaced with a constant in the view. (Bug#15950)
        
          A stored procedure with a CONTINUE handler
          that encountered an error continued to execute a statement
          that caused an error, rather with the next statement following
          the the one that caused the error. (Bug#8153)
        
          libmysqlclient defined a symbol
          BN_bin2bn which belongs to OpenSSL. This
          could break applications that also linked against OpenSSL's
          libcrypto library. The fix required
          correcting an error in a build script that was failing to add
          rename macros for some functions. (Bug#21930)
        
          Queries that used the index_merge and
          sort_union methods to access an
          InnoDB table could produce inaccurate
          results. This issue was introduced in MySQL 5.1.10 when a new
          handler and bitmap interface was implemented. (Bug#21277)
        
          The SELECT privilege was required for an
          insert on a view, instead of the INSERT
          privilege. (Bug#21261)
        
Note: This fixes a regression that was introduced by the fix for Bug#20989.
          Running SHOW MASTER LOGS at the same time
          as binary log files were being switched would cause
          mysqld to hang. (Bug#21965)
        
          Building mysql on Windows with CMake 2.4
          would fail to create libmysqld correctly.
          (Bug#20907)
        
          The server's handling of the number of partitions or
          subpartitions specified in a PARTITIONS or
          SUBPARTITIONS clause was changed. Beginning
          with this release, the number of partitions must:
        
be a positive, non-zero integer
not have any leading zeroes
not be an expression
          Also beginning with this version, no attempt is made to
          convert, truncate, or evaluate a PARTITIONS
          or SUBPARTITIONS value; instead, the
          CREATE TABLE or ALTER
          TABLE statement containing the
          PARTITIONS or
          SUBPARTITIONS clause now fails with an
          appropriate error message. (Bug#15890)
        
A misleading error message was displayed when attempting to define a unique key that was not valid for a partitioned table. (Bug#21862)
Errors could be generated during the execution of certain prepared statements that ran queries on partitioned tables. (Bug#21658)
          Using relative paths for DATA DIRECTORY or
          INDEX DIRECTORY with a partitioned table
          generated a warning rather than an error, and caused
          「junk」 files to be created in the server's data
          directory. (Bug#21350)
        
          Using EXPLAIN PARTITIONS with a query on a
          table whose partitioning expression was based on the value of
          a DATE column could sometimes cause the
          server to crash. (Bug#21339)
        
          Running SHOW TABLE STATUS on any
          InnoDB table having at least one record
          could crash the server. Note that this was not due to any
          issue in the InnoDB storage engine, but
          rather with AUTO_INCREMENT handling in the
          partitioning code — however, the table did not have to
          have an AUTO_INCREMENT column for the bug
          to manifest. (Bug#21173)
        
          Some ALTER TABLE statements affecting a
          table's subpartitioning could hang. (Bug#21143)
        
Scheduled events that invoked stored procedures executing DDL operations on partitioned tables could crash the server. (Bug#20548)
          The yaSSL library bundled with
          libmysqlclient had some conflicts with
          OpenSSL. Now macros are used to rename the conflicting symbols
          to have a prefix of ya. (Bug#19810)
        
          It is possible to create MERGE tables into
          which data cannot be inserted (by not specifying a
          UNION clause. However, when an insert was
          attempted, the error message was confusing. Now an error
          occurs indicating that the table is read-only. (Bug#17766)
        
          User-created tables having a name beginning with
          #sql were not visible to SHOW
          TABLES and could collide with internal temporary
          table names. Now they are not hidden and do not collide. (Bug#1405)
        
          A NUL byte within a prepared statement
          string caused the rest of the string not to be written to the
          query log, allowing logging to be bypassed. (Bug#21813)
        
mysql_upgrade created temporary files in a possibly insecure way. (Bug#21224)
Some prepared statements caused a server crash when executed a second time. (Bug#21166)
          With query_cache_type set to 0,
          RESET QUERY CACHE was very slow and other
          threads were blocked during the operation. Now a cache reset
          is faster and non-blocking. (Bug#21051)
        
          When DROP DATABASE or SHOW OPEN
          TABLES was issued while concurrently issuing
          DROP TABLE (or RENAME
          TABLE, CREATE TABLE LIKE or any
          other statement that required a name lock) in another
          connection, the server crashed. (Bug#19403, Bug#21216)
        
Use of zero-length variable names caused a server crash. (Bug#20908)
Prepared statements caused general log and server memory corruption. (Bug#14346)
          mysqldump incorrectly tried to use
          LOCK TABLES for tables in the
          INFORMATION_SCHEMA database. (Bug#21527)
        
          Use of the --prompt option or
          prompt command caused
          mysql to be unable to connect to the
          Instance Manager. (Bug#17485)
        
          The server crashed if it tried to access a
          CSV table for which the data file had been
          removed. (Bug#15205)
        
          CREATE USER did not respect the
          16-character username limit. (Bug#10668)
        
          Creating a partitioned table that used the
          InnoDB storage engine and then restarting
          mysqld with --skip-innodb
          caused MySQL to crash. (Bug#20871)
        
          In mixed-format binary logging mode, stored functions,
          triggers, and views that use functions in their body that
          require row-based logging did not replicate reliably because
          the logging did not switch from statement-based to row-based
          format. For example, INSERT INTO t SELECT FROM
          v, where v is a view that selects
          UUID() could cause problems. This
          limitation has been removed. (Bug#20930)
        
          For user-defined functions created with CREATE
          FUNCTION, the DEFINER clause is
          not legal, but no error was generated. (Bug#21269)
        
          mysqld --flush failed to flush
          MyISAM table changes to disk following an
          UPDATE statement for which no updated
          column had an index. (Bug#20060)
        
          In mixed-format binary logging mode, stored functions,
          triggers, and views that use functions in their body that
          require row-based logging did not replicate reliably because
          the logging did not switch from statement-based to row-based
          format. For example, INSERT INTO t SELECT FROM
          v, where v is a view that selects
          UUID() could cause problems. This
          limitation has been removed. (Bug#20930)
        
          When not running in strict mode, the server failed to convert
          the invalid years portion of a DATE or
          DATETIME value to '0000'
          when inserting it into a table. (Bug#19370)
        
          The dropping of a temporary table whose name contained a
          backtick ('`') character was not correctly
          written to the binary log, which also caused it not to be
          replicated correctly. (Bug#19188)
        
          Intermediate tables created during the execution of an
          ALTER TABLE statement were visible in the
          output of SHOW TABLES. (Bug#18775)
        
          When setting a column to its implicit default value as the
          result of inserting a NULL into a
          NOT NULL column as part of a multi-row
          insert or LOAD DATA operation, the server
          returned a misleading warning message. (Bug#14770)
        
          The --with-collation option was not honored
          for client connections. (Bug#7192)
        
          Users who had the SHOW VIEW privilege for a
          view and privileges on one of the view's base table could not
          see records in INFORMATION_SCHEMA tables
          relating to the base table. (Bug#20543)
        
An issue with yaSSL prevented Connector/J clients from connecting to the server using a certificate. (Bug#19705)
Some server errors were not reported to the client, causing both to try to read from the connection until a hang or crash resulted. (Bug#16581)
          FEDERATED tables raised invalid duplicate
          key errors when attempting on one server to insert rows having
          the same primary key values as rows that had been deleted from
          the linked table on the other server. (Bug#18764)
        
The C API failed to return a status message when invoking a stored procedure. (Bug#15752)
          AUTHORS and CONTRIBUTORS
          were not treated as reserved words. (Bug#19939)
        
Stored procedures did not use the character set defined for the database in which they were created. (Bug#16676)
          CREATE PROCEDURE, CREATE
          FUNTION, CREATE TRIGGER, and
          CREATE VIEW statements containing
          multi-line comments (/* ... */) could not
          be replicated. (Bug#20438)
        
          The final parenthesis of a CREATE INDEX
          statement occurring in a stored procedure was omitted from the
          binary log when the stored procedure was called. (Bug#19207)
        
          Attempting to insert a string of greater than 4096 bytes into
          a FEDERATED table resulted in the error
          ERROR 1296 (HY000) at line 2: Got error 10000
          'Error on remote system: 1054: Unknown column
          'string-value' from
          FEDERATED. This error was raised regardless of the
          type of column involved (VARCHAR,
          TEXT, and so on.) (Bug#17608)
        
Performance during an import on a table with a trigger that called a stored procedure was severely degraded. (Bug#21013)
          Repeated DROP TABLE statements in a stored
          procedure could sometimes cause the server to crash. (Bug#19399)
        
On 64-bit Windows, a missing table generated error 1017, not the correct value of 1146. (Bug#21396)
The same trigger error message was produced under two conditions: The trigger duplicated an existing trigger name, or the trigger duplicated an existing combination of action and event. Now different messages are produced for the two conditions so as to be more informative. (Bug#10946)
The value returned by a stored function returning a string value was not of the declared character set. (Bug#16211)
          FLUSH TABLES followed by a LOCK
          TABLES statement to lock a log table and a non-log
          table caused an infinite loop and high CPU use. Now
          FLUSH TABLES ignores log tables. To flush
          the log tables, use FLUSH LOGS instead.
          (Bug#20139)
        
          If a filename was specified for the --log or
          --log-slow_queries options but the server was
          logging to tables and not files, the server produced no error
          message. (Bug#17599)
        
mysqlcheck tried to check views instead of ignoring them. (Bug#16502)
          Long multiple-row INSERT statements could
          take a very long time for some multi-byte character sets. (Bug#15811)
        
For mysql, escaping with backslash sometimes did not work. (Bug#20103)
          Under certain circumstances,
          AVG(
          returned a value but
          key_val)MAX(
          returned an empty set due to incorrect application of
          key_val)MIN()/MAX() optimization. (Bug#20954)
        
          Using aggregate functions in subqueries yielded incorrect
          results under certain circumstances due to incorrect
          application of MIN()/MAX() optimization.
          (Bug#20792)
        
          A query using WHERE  did not
          return consistent results on successive invocations. The
          column
          = constant OR
          column IS NULLcolumn in each part of the
          WHERE clause could be either the same
          column, or two different columns, for the effect to be
          observed. (Bug#21019)
        
          The PASSWORD() function returned invalid
          results when used in some UNION queries.
          (Bug#16881)
        
          USE did not refresh database privileges
          when employed to re-select the current database. (Bug#10979)
        
          A query using WHERE NOT
          ( yielded a
          different result from the same query using the same
          column < ANY
          (subquery))column and
          subquery with WHERE
          (. (Bug#20975)
        column > ANY
          (subquery))
A user variable set to a value selected from an unsigned column was stored as a signed value. (Bug#7498)
          SELECT statements using GROUP
          BY against a view could have missing columns in the
          output when there was a trigger defined on one of the base
          tables for the view. (Bug#20466)
        
          A SELECT with a subquery that was bound to
          the outer query over multiple columns returned different
          results when a constant was used instead of one of the
          dependant columns. (Bug#18925)
        
          InnoDB: Quoted Unicode identifiers were not
          handled correctly. This included names of tables, columns, and
          foreign keys. (Bug#18800)
        
A stored procedure that created and invoked a prepared statement was not executed when called in a mysqld init-file. (Bug#17843)
          Using the extended syntax for TRIM()
          — that is, TRIM(... FROM ...) —
          in a SELECT statement defining a view
          caused an invalid syntax error when selecting from the view.
          (Bug#17526)
        
          Assignments of values to variables of type
          TEXT were handled incorrectly in stored
          routines. (Bug#17225)
        
          When performing a GROUP_CONCAT(), the
          server transformed BLOB columns
          VARCHAR columns, which could cause
          erroneous results when using Connector/J and possibly other
          MySQL APIs. (Bug#16712)
        
          The type of the value returned by the
          VARIANCE() function varied according to the
          type of the input value. The function should always return a
          DOUBLE value. (Bug#10966)
        
          Performing an INSERT on a view that was
          defined using a SELECT that specified a
          collation and a column alias caused the server to crash (Bug#21086).
        
A query of the form shown here caused the server to crash:
SELECT * FROM t1 NATURAL JOIN (
    t2 JOIN (
        t3 NATURAL JOIN t4,
        t5 NATURAL JOIN t6
    )
    ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5)
  );
myisam_ftdump would fail when trying to open a MyISAM index file that you did not have write permissions to access, even though the command would only be reading from the file. (Bug#17122)
          REPLACE ... SELECT for a view required the
          INSERT privilege for tables other than the
          table being modified. (Bug#20989)
        
mysqldump sometimes did not select the correct database before trying to dump views from it, resulting in an empty result set that caused mysqldump to die with a segmentation fault. (Bug#21014)
          With mixed-format binary logging, INSERT
          DELAYED statements were logged using statement-based
          logging, and they did not replicate properly for statements
          that used values such as UUID(),
          RAND(), or user-defined variables that
          require row-based logging. To correct this, the
          DELAYED handler thread how switches to
          row-based logging if the logging format is mixed. (Bug#20633,
          Bug#20649)
        
          Using EXPLAIN PARTITIONS with a
          UNION query could crash the server. This
          could occur whether or not the query actually used any
          partitioned tables. (Bug#20484)
        
          Partition pruning could cause incorrect results from queries,
          such missing rows, when the partitioning expression relied on
          a BIGINT UNSIGNED column. (Bug#20257)
        
          The implementation for UNCOMPRESS() did not
          indicate that it could return NULL, causing
          the optimizer to do the wrong thing. (Bug#18539)
        
          TIMESTAMPDIFF() examined only the date and
          ignored the time when the requested difference unit was months
          or quarters. (Bug#16226)
        
          perror did not properly report
          NDB error codes. (Bug#16561)
        
          mysqlimport sends a set
          @@character_set_database=binary statement to the
          server, but this is not understood by pre-4.1 servers. Now
          mysqlimport encloses the statement within a
          /*!40101 ... */ comment so that old servers
          will ignore it. (Bug#15690)
        
          The character set was not being properly initialized for
          CAST() with a type like CHAR(2)
          BINARY, which resulted in incorrect results or even
          a server crash. (Bug#17903)
        
          For ODBC compatibility, MySQL supports use of WHERE
           for
          col_name IS NULLDATE or DATETIME columns
          that are NOT NULL, to allow column values
          of '0000-00-00' or '0000-00-00
          00:00:00' to be selected. However, this was not
          working for WHERE clauses in
          DELETE statements. (Bug#8143)
        
          The --master-data option for
          mysqldump requires certain privileges, but
          mysqldump generated a truncated dump file
          without producing an appropriate error message or exit status
          if the invoking user did not have those privileges. (Bug#21215)
        
          ALTER VIEW did not retain existing values
          of attributes that had been originally specified but were not
          changed in the ALTER VIEW statement. (Bug#21080)
        
          mysql crashed for very long arguments to
          the connect command. (Bug#21042)
        
          perror crashed on Solaris due to
          NULL return value of
          strerror() system call. (Bug#20145)
        
          The query command for
          mysqltest did not work. (Bug#19890)
        
For certain queries, the server incorrectly resolved a reference to an aggregate function and crashed. (Bug#20868)
          When executing a SELECT with ORDER
          BY on a view that is constructed from a
          SELECT statement containing a stored
          function, the stored function was evaluated too many times.
          (Bug#19862)
        
          A SELECT that used a subquery in the
          FROM clause that did not select from a
          table failed when the subquery was used in a join. (Bug#21002)
        
          Subqueries on INFORMATION_SCHEMA tables
          could erroneously return an empty result. (Bug#21231)
        
          Issuing a SHOW CREATE FUNCTION or
          SHOW CREATE PROCEDURE statement without
          sufficient privileges could crash the mysql
          client. (Bug#20664)
        
          In a view defined with SQL SECURITY
          DEFINER, the CURRENT_USER()
          function returned the invoker, not the definer. (Bug#20570)
        
          DATE_ADD() and
          DATE_SUB() returned NULL
          when the result date was on the day
          '9999-12-31'. (Bug#12356)
        
          For a DATE parameter sent via a
          MYSQL_TIME data structure,
          mysql_stmt_execute() zeroed the hour,
          minute, and second members of the structure rather than
          treating them as read-only. (Bug#20152)
        
          The DATA DIRECTORY table option did not
          work for TEMPORARY tables. (Bug#8706)
        
If the files for an open table were removed at the OS level (external to the server), the server exited with an assertion failure. (Bug#16532)
          Some memory leaks in the libmysqld embedded
          server were corrected. (Bug#16017)
        
          With the auto_increment_increment system
          variable set larger than 1, if the next generated
          AUTO_INCREMENT value would be larger than
          the column's maximum value, the value would be clipped down to
          that maximum value and inserted, even if the resulting value
          would not be in the generated sequence. This could cause
          problems for master-master replication. Now the server clips
          the value down to the previous value in the sequence, which
          correctly produces a duplicate-key error if that value already
          exists in the column. (Bug#20524)
        
          If a table on a slave server had a higher
          AUTO_INCREMENT counter than the
          corresponding master table (even though all rows of the two
          tables were identical), in some cases
          REPLACE or INSERT ... ON DUPLICATE
          KEY UPDATE would not replicate properly using
          statement-based logging. (Different values would be inserted
          on the master and slave.) (Bug#20188)
        
          mysqlslap did not enable the
          CLIENT_MULTI_RESULTS flag when connecting,
          which is necessary for executing stored procedures. (Bug#20365)
        
          When creating a table using CREATE...SELECT
          and a stored procedure, there would be a mismatch between the
          binary log and transaction cache which would cause a server
          crash. (Bug#21039)
        
          When run with the --use-threads option,
          mysqlimport returned a random exit code.
          (Bug#21188)
        
          The effect of a stored function or trigger that caused
          AUTO_INCREMENT values to be generated for
          multiple tables was not logged properly if statement-based
          logging was used. Only the first table's value was logged,
          causing replication to fail. Under mixed logging format, this
          is dealt with by switching to row-based logging for the
          function or trigger. For statement-based logging, this remains
          a problem. (Bug#19630)
        
          Changing the definition of a DECIMAL column
          with ALTER TABLE caused loss of column
          values. (Bug#18014)
        
Under heavy load (executing more than 1024 simultaneous complex queries), a problem in the code that handles internal temporary tables could lead to writing beyond allocated space and memory corruption. Use of more than 1024 simultaneous cursors server wide also could lead to memory corruption. (This applies both to stored procedure and C API cursors.) (Bug#21206)
A race condition during slave server shutdown caused an assert failure. (Bug#20850)
mysqldump produced a malformed dump file when dumping multiple databases that contained views. (Bug#20221)
          Partitions were represented internally as the wrong data type,
          which led in some cases to failures of queries such as
          SELECT COUNT(*) FROM INFORMATION_SCHEMA.PARTITIONS
          WHERE PARTITION_NAME =
          '. (Bug#20340)
        partition_name'
          Searches against a ZEROFILL column of a
          partitioned table could fail when the
          ZEROFILL column was part of the table's
          partitioning key. (Bug#20733)
        
          In mixed binary logging mode, a temporary switch from
          statement-based logging to row-based logging occurs when
          storing a row that uses a function such as
          UUID() into a temporary table. However,
          temporary table changes are not written to the binary log
          under row-based logging, so the row does not exist on the
          slave. A subsequent select from the temporary table to a
          non-temporary table using statement-based logging works
          correctly on the master, but not on the slave where the row
          does not exist. The fix for this is that replication does not
          switch back from row-based logging to statement-based logging
          until there are no temporary tables for the session. (Bug#20499)
        
Re-executing a stored procedure with a complex stored procedure cursor query could lead to a server crash. (Bug#15217)
          Views created from prepared statements inside of stored
          procedures were created with a definition that included both
          SQL_CACHE and
          SQL_NO_CACHE. (Bug#17203)
        
          Updating a column of a FEDERATED table to
          NULL sometimes failed. (Bug#16494)
        
          Performing INSERT ... SELECT ... JOIN ...
          USING without qualifying the column names caused
          ERROR 1052 "column 'x' in field list is
          ambiguous" even in cases where the column references
          were unambiguous. (Bug#18080)
        
Closing of temporary tables failed if binary logging was not enabled. (Bug#20919)
          For statements that have a DEFINER clause
          such as CREATE TRIGGER or CREATE
          VIEW, long usernames or hostnames could cause a
          buffer overflow. (Bug#16899)
        
          mysqldump would not dump views that had
          become invalid because a table named in the view definition
          had been dropped. Instead, it quit with an error message. Now
          you can specify the --force option to cause
          mysqldump to keep going and write a SQL
          comment containing the view definition to the dump output.
          (Bug#17371)
        
          InnoDB (Partitioning): Updating an
          InnoDB table using HASH
          partitioning with a composite primary key would cause the
          server to hang. (Bug#20852)
        
          Old partition and subpartition files were not always removed
          following ALTER TABLE ... REORGANIZE
          PARTITION statements. (Bug#20770)
        
          Merging multiple partitions having subpartitions into a single
          partition with subpartitions, or splitting a single partition
          having subpartitions into multiple partitions with
          subpartitions, could sometimes crash the server. These issues
          were associated with a failure reported in the
          partition_range test. (Bug#20766, Bug#20767, Bug#20893, Bug#21357)
        
          Some queries using ORDER BY ... DESC on
          subpartitioned tables could crash the server. (Bug#20389)
        
Referring to a stored function qualified with the name of one database and tables in another database caused a 「table doesn't exist」 error. (Bug#18444)
          For NDB and possibly
          InnoDB tables, a BEFORE
          UPDATE trigger could insert incorrect values. (Bug#18437)
        
          For multiple INSERT DELAYED statements
          executed in a batch by the delayed-insert handler thread, not
          all rows were written to the binary log. (Bug#20821)
        
          Triggers on tables in the mysql database
          caused a server crash. Triggers for tables in this database
          now are disallowed. (Bug#18005, Bug#18361)
        
          The length of the pattern string prefix for
          LIKE operations was calculated incorrectly
          for multi-byte character sets. As a result, the the scanned
          range was wider than necessary if the prefix contained any
          multi-byte characters, and rows could be missing from the
          result set. (Bug#16674, Bug#18359)
        
          Very complex SELECT statements could create
          temporary tables that were too big, but for which the
          temporary files did not get removed, causing subsequent
          queries to fail. (Bug#11824)
        
          Multiple-table updates with FEDERATED
          tables could cause a server crash. (Bug#19773)
        
On Windows, terminating mysqld with Control-C could result in a crash during shutdown. (Bug#18235)
Renaming a database to itself caused a server crash. (Bug#19392)
          For spatial data types, the server formerly returned these as
          VARSTRING values with a binary collation.
          Now the server returns spatial values as
          BLOB values. (Bug#10166)
        
          Using tables from MySQL 4.x in MySQL 5.x, in particular those
          with VARCHAR fields and using
          INSERT DELAYED to update data in the table
          would result in either data corruption or a server crash. (Bug#16611, Bug#16218, Bug#17294)
        
          Using SELECT and a table join while running
          a concurrent INSERT operation would join
          incorrect rows. (Bug#14400)
        
          Using SELECT on a corrupt
          MyISAM table using the dynamic record
          format could cause a server crash. (Bug#19835)
        
          Checking a MyISAM table (using
          CHECK TABLE) having a spatial index and
          only one row would wrongly indicate that the table was
          corrupted. (Bug#17877)
        
A Table ... doesn't exist error could occur for statements that called a function defined in another database. (Bug#17199)
          SHOW GRANTS FOR CURRENT_USER did not return
          definer grants when executed in DEFINER
          context (such as within a stored prodedure defined with
          SQL SECURITY DEFINER), it returned the
          invoker grants. (Bug#15298)
        
          Portions of statements related to partitioning were not
          surrounded by version-specific comments by
          mysqldump, breaking backwards compatibility
          for dump files. (Bug#19488)
        
          A DELETE FROM table with no
          WHERE clause (deleting all rows) running
          concurrently with INSERT statements on a
          storage engine with row-level locking (such as
          NDB) could produce inconsistent results
          when using statement-based replication. (Bug#19066)
        
Concatenating the results of multiple constant subselects produced incorrect results. (Bug#16716)
          The use of MIN() and
          MAX() on columns with a partial index
          produced incorrect results in some queries. (Bug#18206)
        
          The WITH CHECK OPTION was not enforced when
          a REPLACE statement was executed against a
          view. (Bug#19789)
        
          For SELECT ... FOR UPDATE statements that
          used DISTINCT or GROUP
          BY over all key parts of a unique index (or primary
          key), the optimizer unnecessarily created a temporary table,
          thus losing the linkage to the underlying unique index values.
          This caused a Result set not updatable
          error. (The temporary table is unnecessary because under these
          circumstances the distinct or grouped columns must also be
          unique.) (Bug#16458)
        
A buffer overwrite error in Instance Manager caused a crash. (Bug#20622)
          Re-execution of a prepared multiple-table
          DELETE statement that involves a trigger or
          stored function can result in a server crash. (Bug#19634)
        
On Windows, corrected a crash stemming from differences in Visual C runtime library routines from POSIX behavior regarding invalid file descriptors. (Bug#18275)
Creation of a view as a join of views or tables could fail if the views or tables are in different databases. (Bug#20482)
          Use of MIN() or MAX()
          with GROUP BY on a ucs2
          column could cause a server crash. (Bug#20076)
        
          INSERT INTO ... SELECT ... LIMIT 1 could be
          slow because the LIMIT was ignored when
          selecting candidate rows. (Bug#9676)
        
          Queries on tables that were partitioned by
          KEY and had a VARCHAR
          column as the partitioning key produced an empty result set.
          (Bug#20086)
        
The omission of leading zeros in dates could lead to erroneous results when these were compared with the output of certain date and time functions. (Bug#16377)
          An invalid comparison between keys in partial indexes over
          multi-byte character fields could lead to incorrect result
          sets if the selected query execution plan used a range scan by
          a partial index over a UTF8 character
          field. This also caused incorrect results under similar
          circumstances with many other character sets. (Bug#14896)
        
A prepared statement that altered partitioned table within a stored procedure failed with the error Unknown prepared statement handler. (Bug#17138)
          A query selecting records from a single partition of a
          partitioned table and using ORDER BY
           (where
          ic DESCic represents an indexed column)
          could cause errors or crash the server. (Bug#20583)
        
          NDB Cluster (Disk Data): On some platforms,
          ndbd compiled with gcc 4
          would crash when attempting to run CREATE LOGFILE
          GROUP. (Bug#21981)
        
          NDB Cluster: Setting
          TransactionDeadlockDetectionTimeout to a
          value greater than 12000 would cause scans to deadlock, time
          out, fail to release scan records, until the cluster ran out
          of scan records and stopped processing. (Bug#21800)
        
          NDB Cluster: Data was stored unevenly
          between partitions due to all BLOB data
          being placed in partition 0. (Bug#21690)
        
          NDB Cluster: The server provided a
          non-descriptive error message when encountering a fatally
          corrupted REDO log. (Bug#21615)
        
          NDB Cluster: A partial rollback could lead
          to node restart failures. (Bug#21536)
        
          NDB Cluster: The failure of a unique index
          read due to an invalid schema version could be handled
          incorrectly in some cases, leading to unpredictable results.
          (Bug#21384)
        
          NDB Cluster: In a cluster with more than 2
          replicas, a manual restart of one of the data nodes could fail
          and cause the other nodes in its nodegroup to shut down. (Bug#21213)
        
          NDB Cluster: When the redo buffer ran out
          of space, a Pointer too large error was
          raised and the cluster could become unusable until restarted
          with --initial. (Bug#20892)
        
          NDB Cluster: In some situations with a high
          disk-load, writing of the redo log could hang, causing a crash
          with the error message GCP STOP
          detected. (Bug#20904)
        
          NDB Cluster: A vague error message was
          returned when reading of both schema files occurred during a
          restart of the cluster. (Bug#20860)
        
          NDB Cluster: The server did not honor the
          value set for ndb_cache_check_time in the
          my.cnf file. (Bug#20708)
        
          NDB Cluster: The server failed with a
          non-descriptive error message when out of data memory. (Bug#18475)
        
          NDB Cluster (Direct APIss): Invoking the
          MGM API function ndb_mgm_listen_event()
          caused a memory leak. (Bug#21671)
        
          NDB Cluster: The management client
          ALL STATUS command could sometimes report
          the status of some data nodes incorrectly. (Bug#13985)
        
          NDB Cluster (Disk Data): Trying to create a
          Disk Data table using a nonexistent tablespace or trying to
          drop a nonexistent data file from a tablespace produced an
          uninformative error message. (Bug#21751)
        
          NDB Cluster (Disk Data): Errors could occur
          when dropping a data file during a node local checkpoint. (Bug#21710)
        
          NDB Cluster (Disk Data): Creating a
          tablespace and log file group, then attempting to restart the
          cluster without using the --initial option
          and without having created any Disk Data tables could cause a
          forced shutdown of the cluster and raise a configuration
          error. (Bug#21172)
        
          NDB Cluster: Responses to the ALL DUMP 1000
          management client command were printed multiple times in the
          cluster log for each cluster node. (Bug#21044)
        
          A memory leak was found when running
          ndb_mgm -e "SHOW". (Bug#21670)
        
          NDB Cluster (Direct APIs): The MGM API
          function ndb_logevent_get_fd() was not
          actually implemented. (Bug#21129)
        
          NDB Cluster: Restarting a data node while
          DDL operations were in progress on the cluster could cause
          other data nodes to fail. This could also lead to
          mysqld hanging or crashing under some
          circumstances. (Bug#21017, Bug#21050)
        
          NDB Cluster: A cluster data node could
          crash when an ordered index became full before the table
          containing the index was full. (Bug#14935)
        
          NDB Cluster: The repeated creating and
          dropping of a table would eventually lead to
          NDB Error 826, Too many tables
          and attributes ... Insufficient space. (Bug#20847)
        
          NDB Cluster: REPLACE
          statements did not work correctly on an NDB
          table having both a primary key and a unique key. In such
          cases, proper values were not set for columns which were not
          explicitly referenced in the statement. (Bug#20728)
        
          NDB Cluster: Trying to create or drop a
          table while a node was restarting caused the node to crash.
          This is now handled by raising an error. (Bug#18781)
        
          NDB Cluster: A race condition could in some
          cirumstances following a DROP TABLE. (Bug#20897)
        
          NDB Cluster: Running
          ndbd
          --nowait-nodes=
          where idid was the node ID of a node
          that was already running would fail with an invalid error
          message. (Bug#20419)
        
          NDB Cluster: When stopping and restarting
          multiple data nodes, the last node to be restarted would
          sometimes hang in Phase 100. (Bug#19645)
        
          NDB Cluster: The
          DATA_LENGTH and
          AVG_ROW_LENGTH columns of the
          INFORMATION_SCHEMA.TABLES table did not
          report the size of variable-width column values correctly.
          (Bug#18413)
        
          See 項21.2. 「INFORMATION_SCHEMA TABLES テーブル」, for more information.
        
          NDB Cluster: When attempting to restart the
          cluster following a data import, the cluster would fail during
          Phase 4 of the restart with Error 2334: Job buffer
          congestion. (Bug#20774)
        
          NDB Cluster: A node failure during a scan
          could sometime cause the node to crash when restarting too
          quickly following the failure. (Bug#20197)
        
          NDB Cluster: It was possible to use port
          numbers greater than 65535 for ServerPort
          in the config.ini file. (Bug#19164)
        
          NDB Cluster (Replication): In some cases, a
          large number of MySQL servers sending requests to the cluster
          simultaneously could cause the cluster to crash. This could
          also be triggered by many NDB API clients making simultaneous
          event subscriptions or unsubscriptions. (Bug#20683)
        
          NDB Cluster (Direct APIs):
          NdbScanOperation::readTuples() and
          NdbIndexScanOperation::readTuples() ignored
          the batch parameter. (Bug#20252)
        
          NDB Cluster: Cluster system status
          variables were not updated. (Bug#11459)
        
          NDB Cluster (Disk Data): Trying to create
          Disk Data tables when running the cluster in diskless mode
          would crash the cluster's data nodes. (Bug#20008)
        
Note: Disk Data tables are now disabled when running in diskless mode.
          NDB Cluster (Disk Data): A data file
          created on one tablespace could be dropped using
          ALTER TABLESPACE ... DROP DATAFILE on a
          different tablespace. (Bug#20053)
        
          NDB Cluster: Truncating a table on one
          mysqld caused other
          mysqld processes in the cluster to return
          ERROR 1412 (HY000): Table definition has changed,
          please retry transaction on subsequent queries.
          (Bug#20705)
        
          NDB Cluster: The cluster's data nodes would
          fail while trying to load data when
          NoOfFrangmentLogFiles was equal to 1. (Bug#19894)
        
          NDB Cluster: A problem with error handling
          when ndb_use_exact_count was enabled could
          lead to incorrect values returned from queries using
          COUNT(). A warning is now returned in such
          cases. (Bug#19202)
        
          NDB Cluster: Restarting a failed node could
          crash the cluster. (Bug#18782)
        
          NDB Cluster (Disk Data): The failure of a
          CREATE TABLESPACE or CREATE
          LOGFILE GROUP statement did not revert all changes
          made prior to the point of failure. (Bug#16341)
        
          NDB Cluster: Creating tables with
          variable-size columns caused DataMemory to
          be used but not freed when the tables were dropped. (Bug#20007)
        
          NDB Cluster: Restoring a backup made using
          ndb_restore failed when the backup had been
          taken from a cluster whose data memory was full. (Bug#19852)
        
          NDB Cluster: An excessive number of
          ALTER TABLE operations could cause the
          cluster to fail with NDB error code 773 (Out of
          string memory, please modify StringMemory). (Bug#19275)
        
          NDB Cluster: TEXT
          columns in Cluster tables having both an explicit primary key
          and a unique key were not correctly updated by
          REPLACE statements. (Bug#19906)
        
          NDB Cluster: Running out of DataMemory
          could sometimes crash ndbd and
          mysqld processes. (Bug#19185)
        
          NDB Cluster (Replication): A node failure
          could send duplicate events, causing a
          mysqld replicating tables containing
          BLOBs to crash.
        
          NDB Cluster (Disk Data):
          INFORMATION_SCHEMA.FILES records for
          UNDO files showed incorrect values in the
          EXTENT_SIZE,
          FREE_EXTENTS, and
          TOTAL_EXTENTS columns. (Bug#20073)
        
          NDB Cluster: An internal formatting error
          caused some management client error messages to be unreadable.
          (Bug#20016)
        
          NDB Cluster: Running management client
          commands while mgmd was in the process of
          disconnecting could cause the management server to fail. (Bug#19932)
        
          NDB Cluster (NDBAPI): Update operations on
          blobs were not checked for illegal operations.
        
Note: Read locks with blob update operations are now upgraded from read committed to read shared.
          NDB Cluster: The management client
          ALL STOP command shut down
          mgmd processes (as well as
          ndbd processes). (Bug#18966)
        
          NDB Cluster: Renaming of table columns was
          not supported as fast a ALTER TABLE for NDB
          tables. (Bug#20456)
        
          NDB Cluster: Under some circumstances,
          repeated DDL operations on one mysqld could
          cause failure of a second mysqld attached
          to the same cluster. (Bug#19770)
        
          NDB Cluster (Replication): One or more of
          the mysqld processes could fail when
          subjecting a Cluster replication setup with multiple
          mysqld processes on both the master and
          slave clusters to high loads. (Bug#19768)
        
          NDB Cluster: LOAD DATA
          LOCAL failed to ignore duplicate keys in Cluster
          tables. (Bug#19496)
        
          NDB Cluster: Repeated
          CREATE - INSERT -
          DROP operations tables could in some
          circumstances cause the MySQL table definition cache to become
          corrupt, so that some mysqld processes
          could access table information but others could not. (Bug#18595)
        
          NDB Cluster (Disk Data): Running a large
          nbumber of scans on Disk Data could cause subsequent scans to
          perform poorly. (Bug#20334)
        
          NDB Cluster (Disk Data): An issue with disk
          allocation could sometimes cause a forced shutdown of the
          cluster when running a mix of memory and Disk Data tables.
          (Bug#18780)
        
          NDB Cluster: The mgm
          client command ALL CLUSTERLOG
          STATISTICS=15; had no effect. (Bug#20336)
        
          NDB Cluster: Under certain conditions, a
          starting node could miss transactions, leading to
          inconsistencies between the primary and backup replicas. (Bug#19929)
        
          NDB Cluster: An uncommitted row could
          sometimes be checkpointed and thus incorrectly included in a
          backup. (Bug#19928)
        
          NDB Cluster: A DELETE of
          many rows immediately followed by an INSERT
          on the same table could cause the ndbd
          process on the backup replica to crash. (Bug#19293)
        
          NDB Cluster: TRUNCATE
          TABLE failed to reset the
          AUTO_INCREMENT counter. (Bug#18864)
        
          NDB Cluster: SELECT ... FOR
          UPDATE failed to lock the selected rows. (Bug#18184)
        
          NDB Cluster: New mysqld
          processes were allowed to connect without a restart of the
          cluster, causing the cluster to crash. (Bug#13266)
        
          NDB Cluster: The failure of a data node
          when preparing to commit a transaction (that is, while the
          node's status was CS_PREPARE_TO_COMMIT)
          could cause the failure of other cluster data nodes. (Bug#20185)
        
          NDB Cluster: Renaming a table in such a way
          as to move it to to a different database failed to move the
          table's indexes. (Bug#19967)
        
          NDB Cluster: SHOW ENGINE NDB
          STATUS could sometimes return an incorrect value of
          0 for the latest epoch, which could cause
          problems with synchronising the binlog. (Bug#20142)
        
          NDB Cluster: A CREATE
          TABLE statement involving foreign key constraints
          raised an error rather than being silently ignored (see
          項12.1.8. 「CREATE TABLE 構文」). (Bug#18483)
        
This bug affected Cluster in MySQL 5.1 only.
          NDB Cluster (Replication): Data definition
          and data manipulation statements on different tables were not
          serialised correctly in the binlog. For example, there was no
          guarantee that a CREATE TABLE statement and
          an update on a different table would occur in the same order
          in the binlog as they did on the cluster being replicated.
          (Bug#18947)
        
          NDB Cluster: Resources for unique indexes
          on Cluster table columns were incorrectly allocated, so that
          only one-fourth as many unique indexes as indicated by the
          value of UniqueHashIndexes could be
          created. (Bug#19623)
        
A cast problem caused incorrect results for prepared statements that returned float values when MySQL was compiled with gcc 4.0. (Bug#19694)
          Some queries that used ORDER BY and
          LIMIT performed quickly in MySQL 3.23, but
          slowly in MySQL 4.x/5.x due to an optimizer problem. (Bug#4981)
        
mysql_upgrade was missing from binary MySQL distributions. (Bug#18516, Bug#20403, Bug#20556)
          It was possible using ALTER EVENT ... RENAME
          ... to move an event to a database on which the user
          did not have the EVENT privilege. (Bug#18897)
        
          A number of dependency issues in the RPM
          bench and test packages
          caused installation of these packages to fail. (Bug#20078)
        
          Queries using an indexed column as the argument for the
          MIN() and MAX()
          functions following an ALTER TABLE .. DISABLE
          KEYS statement returned Got error 124
          from storage engine until ALTER TABLE ...
          ENABLE KEYS was run on the table. (Bug#20357)
        
A redundant table map event could be generated in the binary log when there were no actual changes to a table being replicated. In addition, a slave failed to stop when attempting to replicate a table that did not exist on the slave. (Bug#18948)
          Multiple calls to a stored procedure that altered a
          partitioned MyISAM table would cause the
          server to crash. (Bug#19309)
        
          Adding an index to a partitioned table that had been created
          using AUTO_INCREMENT =
           caused the
          valueAUTO_INCREMENT value to be reset. (Bug#19281)
        
          A CREATE TABLE that produced a
          The PARTITION function returns the wrong
          type error also caused an Incorrect
          information in file to be printed to
          STDERR, and a junk file to be left in the
          database directory. (Bug#16000)
        
          Nested natural joins worked executed correctly when executed
          as a non-prepared statement could fail with an
          Unknown column ' error when executed as a prepared
          statement, due to a name resolution problem. (Bug#15355)
        col_name'
          in 'field list'
          The max_length metadata value for columns
          created from CONCAT() could be incorrect
          when the collation of an argument differed from the collation
          of the CONCAT() itself. In some contexts
          such as UNION, this could lead to
          truncation of the column contents. (Bug#15962)
        
The MD5() and SHA() functions treat their arguments as case-sensitive strings. But when they are compared, their arguments were compared as case-insensitive strings, which leads to two function calls with different arguments (and thus different results) compared as being identical. This can lead to a wrong decision made in the range optimizer and thus to an incorrect result set. (Bug#15351)
          For BOOLEAN mode full-text searches on
          non-indexed columns, NULL rows generated by
          a LEFT JOIN caused incorrect query results.
          (Bug#14708)
        
          If the general log table reached a large enough file size
          (27GB), SELECT COUNT(*) on the table caused
          a server crash. (Bug#17589)
        
Identifiers could not contain bytes with a value of 255, though that should be allowed as of the identifier-encoding changes made in MySQL 5.1.6. (Bug#12982)
          BIT columns in a table could cause joins
          that use the table to fail. (Bug#18895)
        
          A UNION over more than 128
          SELECT statements that use an aggregate
          function failed. (Bug#18175)
        
          InnoDB unlocked its data directory before
          committing a transaction, potentially resulting in
          non-recoverable tables if a server crash occurred before the
          commit. (Bug#19727)
        
          Multiple-table DELETE statements containing
          a subquery that selected from one of the tables being modified
          caused a server crash. (Bug#19225)
        
          With settings of read_buffer_size >= 2G
          and read_rnd_buffer_size >=2G,
          LOAD DATA INFILE failed with no error
          message or caused a server crash for files larger than 2GB.
          (Bug#12982)
        
          REPLACE statements caused activation of
          UPDATE triggers, not
          DELETE and INSERT
          triggers. (Bug#13479)
        
          The thread for INSERT DELAYED rows was
          maintaining a separate AUTO_INCREMENT
          counter, resulting in incorrect values being assigned if
          DELAYED and non-DELAYED
          inserts were mixed. (Bug#20195)
        
          mysqldump wrote an extra pair of
          DROP DATABASE and CREATE
          DATABASE statements if run with the
          --add-drop-database option and the database
          contained views. (Bug#17201)
        
Shutting down a slave in a replication scenario where temporary tables are in use would cause the slave to produce a core dump. (Bug#19881)
When a statement is executed that does not generate any rows, an extra table map event and associated binrows event would be generated and written to the binary log. (Bug#19995)
File size specifications for InnoDB data files were case sensitive. (Bug#19609)
          Compilation on Windows would fail if row based replication was
          disabled using
          --without-row-based-replication. (Bug#16837)
        
          InnoDB did not increment the
          handler_read_prev counter. (Bug#19542)
        
          In the INFORMATION_SCHEMA.FILES table, the
          INITIAL_SIZE,
          MAXIMUM_SIZE, and
          AUTOEXTEND_SIZE columns incorrectly were
          being stored as VARCHAR rather than
          BIGINT. (Bug#19544).
        
          For mysqld, Valgrind revealed problems that
          were corrected: Possible uninitialized data in a string
          comparison (Bug#20783); memory corruption in replication
          slaves when switching databases (Bug#19022); syscall write
          parameter pointing to uninitialized byte (Bug#20579);
          uninitialized doublewrite memory in InnoDB
          (Bug#20791).
        
For ndb_mgmd, Valgrind revealed problems that were corrected: A memory leak (Bug#19318); a dependency on an uninitialized variable (Bug#20333).
An update that used a join of a table to itself and modified the table on both sides of the join reported the table as crashed. (Bug#18036)
SSL connections using yaSSL on OpenBSD could fail. (Bug#19191)
          Following a failed attempt to add an index to an
          ARCHIVE table, it was no longer possible to
          drop the database in which the table had been created. (Bug#17310)
        
          Using ALTER TABLE ... ENGINE =
          , where
          xx was not a storage engine
          supported by the server, would cause mysqld
          to crash. (Bug#20397)
        
          Defining a table partitioned by LIST with a
          single PARTITION ... VALUES IN (NULL)
          clause could lead to server crashes, particularly with queries
          having WHERE conditions comparing the
          partitioning key with a constant. (Bug#19801 / Bug#20268)
        
Values greater than 2 gigabytes used in the VALUES LESS THAN clause of a table partitioned by RANGE were treated as negative numbers. (Bug#16002)
          The fill_help_tables.sql file did not
          load properly if the ANSI_QUOTES SQL mode
          was enabled. (Bug#20542)
        
          The fill_help_tables.sql file did not
          contain a SET NAMES 'utf8' statement to
          indicate its encoding. This caused problems for some settings
          of the MySQL character set such as big5.
          (Bug#20551)
        
          The --default-storage-engine server option
          did not work. (Bug#20168)
        
The MySQL server startup script /etc/init.d/mysql (created from mysql.server) is now marked to ensure that the system services ypbind, nscd, ldap, and NTP are started first (if these are configured on the machine). (Bug#18810)
          For a reference to a non-existent index in FORCE
          INDEX, the error message referred to a column, not
          an index. (Bug#17873)
        
          The EGNINE clause was displayed in the
          output of SHOW CREATE TABLE for partitioned
          tables when the SQL mode included
          no_table_options. (Bug#19695)
        
          ALTER TABLE ... COALESCE PARTITION did not
          delete the files associated with the partitions that were
          removed. (Bug#19305)
        
          ALTER TABLE ... REBUILD PARTITION could
          cause the server to hang or crash. (Bug#19122)
        
          Some yaSSL public function names conflicted with those from
          OpenSSL, causing conflicts for applications that linked
          against both OpenSSL and a version of
          libmysqlclient that was built with yaSSL
          support. The yaSSL public functions now are renamed to avoid
          this conflict. (Bug#19575)
        
          CHECK TABLE on a MyISAM
          table briefly cleared its AUTO_INCREMENT
          value, while holding only a read lock. Concurrent inserts to
          that table could use the wrong
          AUTO_INCREMENT value. CHECK
          TABLE no longer modifies the
          AUTO_INCREMENT value. (Bug#19604)
        
          If there is a global read lock, CREATE
          DATABASE, RENAME DATABASE, and
          DROP DATABASE could deadlock. (Bug#19815)
        
          EXPLAIN PARTITIONS would produce illegible
          output in the partitions column if the
          length of text to be displayed in that column was too long.
          This could occur when very many partitions were defined for
          the table, partitions were given very long names, or due to a
          combination of the two. (Bug#19684)
        
          Trying to execute a query having a WHERE
          clause using  on a
          partitioned table whose partitioning or subpartitioning
          function used the integer column
          int_col =
          "string_value" OR
          int_col IS NULLint_col would crash the server.
          (Bug#19055)
        
          On Linux, libmysqlclient when compiled with
          yaSSL using the icc compiler had a spurious
          dependency on C++ libraries. (Bug#20119)
        
          In MySQL 5.1.11, the --with-openssl and
          --with-yassl options were replaced by
          --with-ssl. But no message was issued if the
          old options were given. Now configure
          produces a message indicating that the new option should be
          used and exits. (Bug#20002)
        
          Grant table modifications sometimes did not refresh the
          in-memory tables if the hostname was '' or
          not specified. (Bug#16297)
        
Invalid escape sequences in option files caused MySQL programs that read them to abort. (Bug#15328)
          Using ALTER TABLE on a subpartitioned table
          caused the server to crash. (Bug#19067)
        
          For a table having LINEAR HASH
          subpartitions, the LINEAR keyword did not
          appear in the SUBPARTITION_METHOD column of
          the INFORMATION_SCHEMA.PARTITIONS table.
          (Bug#20161)
        
Race conditions on certain platforms could cause the Instance Manager to fail to initialize. (Bug#19391)
          ALTER TABLE on a table created prior to
          5.0.3 would cause table corruption if the ALTER
          TABLE did one of the following:
        
Change the default value of a column.
Change the table comment.
Change the table password.
          An ALTER TABLE operation that does not need
          to copy data, when executed on a table created prior to MySQL
          4.0.25, could result in a server crash for subsequent accesses
          to the table. (Bug#19192)
        
The binary log lacked character set information for table name when dropping temporary tables. (Bug#14157)
          A B-TREE index on a
          MEMORY table erroneously reported duplicate
          entry error for multiple NULL values. (Bug#12873)
        
Race conditions on certain platforms could cause the Instance Manager to try to restart the same instance multiple times. (Bug#18023)
          OPTIMIZE TABLE and REPAIR
          TABLE yielded incorrect messages or warnings when
          used on partitioned tables. (Bug#17455)
        
          Selecting data from a MEMORY table with a
          VARCHAR column and a
          HASH index over it returned only the first
          row matched. (Bug#18233)
        
RPM packages had spurious dependencies on Perl modules and other programs. (Bug#13634)
