commit e056e86f8d226caa0291653bb5a0941d869136ee
Author: Hemant Dangi <hemant.dangi@oracle.com>
Date:   Wed Dec 27 16:22:26 2017 +0530

    Revert "BUG#26985561: BACKPORT BUG#26277771 TO 5.7"
    
    This reverts commit fce1c96b65005c78b3016e855a3e4790bd5c6449.
    
    (cherry picked from commit a38611468f4b1c6fcb7ceace231bb097d89f0226)

commit 24970dd92433c023fcd806af51d7df515923cf18
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Thu Nov 30 16:47:49 2017 +0100

    Bug#24437533 AUDIT PLUGIN RECURSIVELY LOCKS MUTEX LOCK_FILTER IF ERROR OCCURS
    
    Post-push fix: audit_log_filter_readonly test fix. Audit Log filter tables updated
                   from MyISAM to InnoDB.
    
    (cherry picked from commit fe94f52c47ac3fb617611847511f998502b41a47)

commit 7ef79337999683dbef5978364b4e98bab50f1566
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Thu Nov 30 00:41:51 2017 +0100

    Bug#26362452 ASSERTION FAILURE:'OWNED_GTIDS.IS_OWNED_BY(THD->OWNED_GTID, THD->THREAD_ID())'
    
    Problem:
    ========
    Audit Log plugin stores JSON filtering information in audit_log_user and
    audit_log_filter_remove_filter tables. Before updating the tables, Audit Log
    creates own THD object to separate session THD from Audit Log internal THD.
    Internally created THD is used by server internals, which often operates on
    THD->thread_id(), which in Audit Log case was 0.
    
    Analysis:
    =========
    Newly created THD must have assigned thread_id value.
    
    Fix:
    ====
    THD generates thread_id() using the set_new_thread_id() method. THD is also
    registered to the Global_THD_manager::get_instance()->add_thd method.
    
    This patch also fixes Bug#24437533 AUDIT PLUGIN RECURSIVELY LOCKS MUTEX
                                       LOCK_FILTER IF ERROR OCCURS
    Reviewed-by:
    ============
    Georgi Kodinov <georgi.kodinov@oracle.com>
    Harin Vadodaria <harin.vadodaria@oracle.com>
    
    (cherry picked from commit ba828c1f8a2761971718778cb796145d80f9c1e2)

commit 38ac7c0423113310490267fbab4546178958c080
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Tue Nov 28 15:42:31 2017 +0530

    Bug#26906601: FIREWALL PLUGIN INSTALL SCRIPTS SPECIFY THE
                  MYISAM STORAGE ENGINE
    
    Description:- Firewall plugin installation script uses
    MYISAM as the storage engine for creating firewall plugin
    tables, firewall_whitelist and firewall_users.
    
    Fix:- Backport the storage engine change made in firewall
    installation script from 8.0 to 5.7. Storage engine is
    changed from MyISAM to InnoDB for the firewall plugin
    tables while installation. It is also guaranteed that
    the firewall plugin will use InnoDB tables in 8.0 after
    mysql upgrade. This is backport of Bug#24431547 fix to 5.7.
    Following are some background information regarding the
    backport:-
    As part of Bug#24431547 fix, the patch was first pushed to
    trunk, then backported to 5.7. But since the server PT and
    support where not in an agreement to change the SE of plugin
    tables in 5.7, SE change in 5.7 was reverted. Now support
    explicitly asked for the SE change in 5.7, and this patch
    takes care of SE change which was reverted from 5.7 before.
    
    (cherry picked from commit fafc7e8c7e460ecb5205efb3c43b8c16621353a5)

commit 8a405020a011132ec165c54b6f9010d1dc5e8653
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Tue Nov 28 15:29:42 2017 +0530

    Bug#26323351: AUDIT PLUGIN INSTALL SCRIPTS SPECIFY THE
                  MYISAM STORAGE ENGINE
    
    Description:- Audit log plugin installation script uses
    MYISAM as the storage engine for creating audit log plugin
    tables, audit_log_filter and audit_log_user.
    
    Fix:- Backport the storage engine change made in audit log
    installation script from 8.0 to 5.7. Storage engine is
    changed from MyISAM to InnoDB for the audit log plugin
    tables while installation. It is also guaranteed that
    the audit log plugin will use InnoDB tables in 8.0 after
    mysql upgrade. This is backport of Bug#24431547 fix to 5.7.
    Following are some background information regarding the
    back port:-
    As part of Bug#24431547 fix, the patch was first pushed to
    trunk, then back ported to 5.7. But since the server PT and
    support where not in an agreement to change the SE of plugin
    tables in 5.7, SE change in 5.7 was reverted. Now support
    explicitly asked for the SE change in 5.7, and this patch
    takes care of SE change which was reverted from 5.7 before.
    
    (cherry picked from commit c0e2b7f6ca0d72c6de5817d895cf916ee728c9f2)

commit 63548862b95039b9d6c0c7a19dfd5b70e1c421d8
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Fri Dec 15 16:01:18 2017 +0530

    Bug #27212129	[ERROR] INNODB: A RECORD LOCK WAIT HAPPENS IN A DICTIONARY
    OPERATION. INDEX `ID_
    
    PROBLEM
    
    This bug is a regression of bug#26390658. When two transactions try to
    do alter table partition by (and are trying to do rename table
    essentially),one of the transactions ends up in a lock wait trying to
    take a lock on record of innodb stats table as the other is holding a
    lock on the same record of the stats table as this transaction hasn't
    committed yet. A situation like this where in a transaction is made to
    wait for record lock of system table and is dictionary operation, innodb
    crashes the server.The problem is that the transaction that is done with
    rename table and is holding onto record locks that can be released is
    not able to do so because it is not yet committed .Therefore causing the
    lock wait and crash.
    
    FIX
    
    Solution is to let all the partitions rename to finish and commit
    transaction, then proceed with updating of stats table after rename.
    
    Reviewed by: bin su <bin.x.su@oracle.com>
    RB: 18205
    
    (cherry picked from commit 3b9ab1b0a3bd24151e74e73bcdfb098b969ca747)

commit 6ecc399b14e24c1da413e7684286bb970b8915ce
Author: Harin Vadodaria <harin.vadodaria@oracle.com>
Date:   Thu Nov 30 12:20:54 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7
    
    (cherry picked from commit 0147646416c97d883ec7c22ef9173f0e166922fa)

commit 40cdceb716ea4844315d0fabf61aa53f6c45179f
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Thu Nov 30 15:45:38 2017 +0530

    	Post-fix: Bug#26742748 - 8.0 DOCKER IMAGE RPM GENERATES 5.7 DOC URL IN /ETC/MY.CNF
    	- Fix the cmake for docker rpm builds
    
    (cherry picked from commit 70f9efc1b7a291fbf693dbc4827acba4961ddc62)

commit 2e16a73d27350d6e633b6266fbeedfafc894e71f
Author: Bharathy Satish <bharathy.x.satish@oracle.com>
Date:   Thu Nov 30 07:13:05 2017 +0100

    Bug #27175716: KEYRING MIGRATION TOOL GENERATING THE KEYS WHICH CAN'T
                   BE READ BY SERVER
    
    Problem: Keyring migration tool creates backed file for destination
    plugin if the file is not present. This file is created with OS user
    as owner for this file. After migration when server is started with
    destination keyring plugin, plugin will reject this file from reading.
    
    Fix: Moved the migration specific code after calls to setgid and setuid
    so that backend files for destination plugin is created with correct user.
    
    (cherry picked from commit 46e91ea8a292f0fcbb9f193514f29375c5335205)

commit f59fb7436fc36aeb92ab10a4d9451200c14776cb
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 27 19:31:45 2017 +0530

         Postfix : WL#9769: Keyring migration tool and new commercial keyring_encrypted_file plugin.
         - Fix typo in the changelog for el/sles rpm builds
         - Added keyring_encrypted_file to docker rpm
    
    (cherry picked from commit aacc7f43ce98353e3c2f89273b43ebf1424ee758)

commit 5c68c1e2d6bc592c6e7d47ad5a87a9f26589cce0
Author: Harin Vadodaria <harin.vadodaria@oracle.com>
Date:   Mon Nov 27 11:49:43 2017 +0100

    Bug#27099029: UNLIMITED LENGTH OF THE PASSWORD
    
    Post push fix: Handled missing cases of GRANT.
    
    (cherry picked from commit b7430c02d2e07ae5322c6e5caecc32db76170c2e)

commit c3e29a1b8726bf3d0fb126b058851e3697ec8c26
Merge: 6e8cbdd 2ae1421
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 27 15:00:53 2017 +0530

    Updated copyright year in user visible text

commit 2ae14214d0dcddafa18eba6ab624db142c12b7d2
Merge: e00838e 1aa1f40
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 27 14:56:15 2017 +0530

    Updated copyright year in user visible text

commit 1aa1f40fb471ad84b82f41e406ea72d764db09ce
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 27 14:51:04 2017 +0530

    Updated copyright year in user visible text

commit 6e8cbdd13f171e27dc7fa3dc2c11b2445d455909
Author: Bharathy Satish <bharathy.x.satish@oracle.com>
Date:   Mon Nov 27 04:36:54 2017 +0100

    WL#9769: Keyring migration tool and new commercial keyring_encrypted_file plugin.
    
    Post push fix.
    OKV plugin test does not run on all platforms, so moved some test from aws suite
    to okv suite. Also set --secure-file-priv to empty string as it had different
    values on different platforms.

commit 417b2f662ae07e433a4526e80d66a81c03fdbc99
Author: Yashwant Sahu <yashwant.sahu@oracle.com>
Date:   Sat Nov 25 21:44:38 2017 +0530

    Bug #26091340, #26147775, #25989788:  Post fix windows 5.7.

commit 84ed74b6683253df4aed120ddb68170fc7c8e534
Author: Yashwant Sahu <yashwant.sahu@oracle.com>
Date:   Sat Nov 25 00:50:13 2017 +0530

    Bug #26091340, #26147775, #25989788: post fix for windows.

commit 1e130501905c5e237d64a896dd63e075fd605a78
Author: Yashwant Sahu <yashwant.sahu@oracle.com>
Date:   Fri Nov 24 17:29:57 2017 +0100

    Bug #26091340, #26147775, #25989788:  LDAP bug fixes.
    
    Added group filter search attribute, Added user DN postfix, LDAP pool resize.

commit b7fbd93409727fbf8fb56cb6ebd03ff859a78c62
Merge: bf98313 e00838e
Author: Harin Vadodaria <harin.vadodaria@oracle.com>
Date:   Fri Nov 24 11:31:08 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7

commit e00838e41d150275816f0fce354087143116d43d
Author: Harin Vadodaria <harin.vadodaria@oracle.com>
Date:   Fri Nov 24 11:29:30 2017 +0100

    Bug#27099029: UNLIMITED LENGTH OF THE PASSWORD
    
    Description: my_crypt_genhash depends on the length of
                 plaintext password. Longer the password,
                 more is the time required to produce the
                 transformation. An unusually large password
                 may consume considerable amount of time.
    
    Fix: Fixed length of plaintext password to 256 bytes for
         SHA256_PASSWORD authentication plugin. Restricted
         PASSWORD() to accept at max 256 bytes if old_passwords
         is set to 2.

commit bf98313f1ab078ec9bc645898c88a80acbe07e7f
Author: Bharathy Satish <bharathy.x.satish@oracle.com>
Date:   Fri Nov 24 10:42:08 2017 +0100

    WL#9769: Keyring migration tool and new commercial keyring_encrypted_file plugin.
    
    New Keyring plugin called keyring_encrypted_file plugin is introduced which will
    store keyring data in file local to server host which is encrypted using a password.
    This plugin when installed must be provided with a password which will be used to
    decrypt the file to read the contents of file. Similarly this password will be used
    to encrypt the data which needs to be stored in the data file.
    
    This WL also introduces keyring migration tool which is used to migrate keys from
    one keyring plugin to another. This tool is embedded in mysql server, this when
    mysqld is invoked with migration specific options, mysql server will ast like a
    migration tool.

commit cefd57ea67ed9b6e447986bbbcb0904e59553079
Merge: 269cdb6 cfb9ce7
Author: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
Date:   Fri Nov 24 10:27:12 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7

commit cfb9ce71683718e9af79783e219d9be486ec4609
Author: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
Date:   Fri Nov 24 10:20:34 2017 +0100

    Bug#25586773 - INCORRECT BEHAVIOR FOR CREATE TABLE SELECT IN A LOOP IN SP
    
    For the SQL statements in the stored routine, while resolving the
    statement (on first execution or on re-parse trigger) memory is
    allocated on the permanent mem-root. After executing the statement
    for the first time a state of the statement query arena
    is changed to STMT_EXECUTED. Subsequent execution uses execution
    mem-root which is freed at the end of the execution.
    
    But for CREATE TABLE ... SELECT(CTS), state of the statement query
    arena is never changed to the STMT_EXECUTED. Allocation in the
    subsequent execution goes to the permanent mem-root. Hence the
    memory growth or leak is observed.
    
    Why query arena state is not switched for CTS?
    ==============================================
    For the CTS, existence of the table being created is checked
    while executing the statement. If table already exists then error
    (or warning with IF TABLE EXISTS clause) is reported.
    In the subsequent execution allocation(when table does not exists)
    for items being created goes to permanent mem-root(as statement
    query arena state is set STMT_INITIALIZED_FOR_SP always). So the
    next execution will have valid pointers to refer.
    
    If state of query arena is set to the STMT_EXECUTED after first
    execution then state is changed even when table exists error or
    warning is reported. In this case subsequent execution uses
    execution mem-root to allocate items. This memory is freed at
    the end of the execution. So the next execution of routine refers
    to invalid pointers.
    
    To avoid any issues related to invalid pointer reference(e.g.
    bug19897405) the state of the statement query arena is set to
    STMT_INITIALIZED_FOR_SP always for CTS by patch for bug25053286.
    
    Fix:
    ==============================================
    For the CTS in the stored routine, special handling is required
    for the case of table exists error or warning.
    
    In case of table exists error or warning, the statement arena
    is set to STMT_INITIALIZED_FOR_SP. With this change, next
    execution uses permanent mem-root while resolving the statement
    (this change fixes invalid pointer reference issues
     e.g. bug19897405).
    If the execution is successful then statement query arena is
    changed to the STMT_EXECUTED. So on the subsequent execution of
    the CTS, memory is allocated in the execution mem-root (this
    change fixes memory growth or leak issue).
    
    Additional changes for  mysql-8.0 and mysql-trunk:
    --------------------------------------------------
    As part of this patch, code is modified to check the SP statement
    execution state instead of error codes or flags while setting
    the statement query arena state.
    
    Modification is made so that, SP statement query arena state
    is not changed when error occurs in the statement parsing,
    table opening and preparation phase. Query arena state is
    changed to STMT_EXECUTED when error occurs in the execution
    phase (or when execution succeeds). If "table exists" error
    during execution phase of CTS then the state of the
    statement query arena is set to STMT_INITIALIZED_FOR_SP,
    as if statement must be reprepared.

commit 269cdb69d9343abcc39ae9d2aefe5e0164b2e2e5
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Fri Nov 24 12:35:41 2017 +0530

    Bug #24423143 - WRONG RESULTS FOR AGGREGATE QUERY
    
    Test case fix.
    
    Change-Id: I8a3b1e2b6312e927e182b955e5d5850e83e7319f

commit ade0f02f185d9a7f7af5b05198420a62638deefe
Author: Jaideep Karande <jaideep.karande@oracle.com>
Date:   Fri Nov 24 07:16:30 2017 +0100

    Bug#27150732: DOUBLE FREE AT SQL_SERVICE_COMMAND_INTERFACE CLASS
    
    Problem: During SQL Thread error (before thread set running variable), spawned
    SQL thread may block waiting for run while launcher thread will do the cleanup
    because of error.
    
    --------------------------------------------------------------------------------
    
    Launcher thread has this condition:
      while (m_session_thread_running.to_run() && !m_session_thread_error)
    
    POINT 1: m_session_thread_error, during error it will not block.
    
    --------------------------------------------------------------------------------
    
    Session_plugin_thread::terminate_session_thread is critical.
    ..  while (m_session_thread_running)
    
    POINT 2:
    Session_plugin_thread::terminate_session_thread is critical, since its makes
    sure spawned thread is terminated.
    But terminate_session_thread got tricked because running variable was never set
    to TRUE.
    Spawned thread never got mutex to set running=true.
    
    --------------------------------------------------------------------------------
    
    Resolution:
    There is missing *_starting(e.g. recovery has recovery_starting) variable in
    SQL Service Thread. This variables makes sure spawned thread is terminated
    even if it never ran.

commit 7985ba09e932d40f3bf2211c928fced56f655f93
Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
Date:   Fri Nov 17 10:35:15 2017 +0530

    BUG#25846957: MYSQL STARTUP BLOCKED FOR 20 MINUTES
                  ON PARTITION-ENGINE-CHECK.
    
    Analysis:
    =========
    From MySQL-5.7.17, during the server start up,
    a check is performed to list the tables which
    uses non native paritioning. This helps users
    to prepare for upgrade to 8.0 where the support
    for non native partitioning is removed. For large
    databases with many such tables, this check
    consumed a lot of time since a SELECT on I_S is
    performed to fetch the information. By default,
    the variable 'disable-partition-engine-check' is
    disabled, which triggers the check for tables
    using non-native partitioning at startup.
    
    Fix:
    ====
    The variable 'disable-partition-engine-check' is enabled
    by default. Hence the check for non native partitioned
    tables is skipped during the start up unless it is
    explicitly disabled.

commit 9ffc0308961a48d0b6a53b39b041509e80f26172
Author: Neha Kumari <neha.n.kumari@oracle.com>
Date:   Fri Nov 24 07:58:42 2017 +0530

    Bug#27067082:RPL.RPL_MTS_LOGICAL_CLOCK_APPLIER_ERROR_CONCURRENT_STOP_SLAVE - PB2 FAILURE
    
    Problem:
    A call to an include that issues "STOP SLAVE" may happen when the slave thread
    are already stopped by errors in slow machines (or testing with valgrind).
    In such cases, the test case will produce an extra content not recorded
    into its result:
    
    +Warnings:
    +Note   3084    Replication thread(s) for channel '' are already stopped.
    
    Fix:
    The test case is not 100% deterministic, so to avoid the above warning we
    can wrap the include that issues "STOP SLAVE" with
    disable_warnings/enable_warnings.

commit 78f961ec6942958e8fd1c53544522f97fc0f2abd
Author: Shivashankar Nagaraj <shiva.y.shankar@oracle.com>
Date:   Thu Nov 23 14:20:53 2017 +0530

    Bug#14286343: MAIN.STATUS TEST FAILS SPORADICALLY WITH RESULT CONTENT MISMATCH ON PB2
    
    Issue:
    ------
    The test case "Ensure that SHOW STATUS only changes global status variables"
    expectation itself is wrong. Executing any query, including SHOW STATUS,
    WILL change the statistics of the server, and this WILL change the result
    of some status variables, global or per session. Expecting this behavior is
    un realistic, and trying to observe it in a test case is bound to fail.
    
    Fix:
    ----
    Remove the test case "Ensure that SHOW STATUS only changes global status variables"
    
    Reviewed-by: Marc Alff <marc.alff@oracle.com>
    Reviewed-by: amit Bhattacharya <amit.bhattacharya@oracle.com>
    RB: 17930

commit b2ef5978b54210fb91faf571c8d871f4d646fe71
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Thu Nov 23 08:26:21 2017 +0530

    Bug #24423143 - WRONG RESULTS FOR AGGREGATE QUERY
    
    Doxygen fix.
    
    Change-Id: I7402fb1a1088e6cb8f4030b7814718f2d5f415da

commit fce1c96b65005c78b3016e855a3e4790bd5c6449
Author: Hemant Dangi <hemant.dangi@oracle.com>
Date:   Wed Nov 22 21:58:13 2017 +0530

    BUG#26985561: BACKPORT BUG#26277771 TO 5.7
    
    This is backport of
    Bug#26277771: BAD WRITE SET TRACKING WITH UNIQUE KEY ON A
    DELETE FOLLOWED BY AN INSERT.
    
    Issue:
    ======
    The Writesets generated for keys were not using collation into consideration,
    and because of that wrong last_committed and sequence_number were
    getting added to binary log and thus trnsactions were getting applied
    in wrong order by parallel applier on slave.
    
    Solution:
    =========
    The fix uses make_sort_key to transform keys, with different charset and
    collation, into its binary image, suitable for sorting using binary
    comparison.

commit 8116cbefedf69eec47ab40f223abf129117f5168
Author: Sachin Agarwal <sachin.z.agarwal@oracle.com>
Date:   Wed Nov 22 19:46:06 2017 +0530

    Bug #23590280   NO WARNING WHEN REDUCING INNODB_BUFFER_POOL_SIZE INSIZE
    		THE FIRST CHUNK
    
    PROBLEM
    
    It is a post-push problem. innodb_buffer_pool_size_validate() function was
    supposed to return updated buffer pool value to the caller function,
    but due to a check introduced by my fix, it returned before updating
    the buffer pool value.
    
    FIX
    
    Ensured that the proper updated value of buffer pool size returns
    to the caller function.
    
    Reviewed by: Aditya
    RB: 17812

commit 9d03bbbfeb5d2809c0bebf8655a20e5497b26c73
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Wed Nov 22 16:03:36 2017 +0530

    Bug#24423143 - WRONG RESULTS FOR AGGREGATE QUERY
    
    Post push build fix.
    
    Change-Id: I282a874f87b7c37502e90dc1b32df8655b726726

commit 3d2370ac8353528dc4944dee61d4d93df0dd6cb7
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Wed Nov 22 12:03:12 2017 +0530

    Bug#24423143 - WRONG RESULTS FOR AGGREGATE QUERY
    
    Optimizer chooses loose index scan (QUICK_GROUP_MIN_MAX_SELECT)
    for a group by even when there exists a predicate with disjunction.
    This is due to that either of the below two cases are encountered
    and not handled properly.
    
    1. A range tree created for index merge scan is not taken
    into account while checking for the presence of disjuncted
    conditions in get_best_group_min_max().
    
    2. A disjunction condition could lead to null tree if an index
    merge scan is not possible. A NULL tree will cause
    get_best_group_min_max() to skip many relevent checks
    like WA2.
    
    There are two scenarios here,
      (a) The WHERE clause is a disjunction of conditions on
         MIN/MAX column only.
        => We can use min_max optimization considering all
        other criteria (eg:SA2) are met.
    
     (b) MIN/MAX column is participating in a disjunctive WHERE
         clause along with other columns.
         => min_max optimization is not applicable in this scenario.
    
    Fix:
    Skip loose index scan in below scenarios involving disjoint conditions
    in WHERE clause.
    
    1. When the condition in WHERE clause results in more than
    one disjoint range trees (when index merge scan is possible).
    
    2. The range tree is null and MIN/MAX column participates
    in the WHERE clause along with other columns.
    [There is no range tree if WHERE condition can't be represented
    in a single range tree and index merge is not possible]
    
    Change-Id: I2ec8ef815d9dfa64e0bf60e97d3b6129c070e24b

commit d7c50b1dad49f6c836df586b70c7ea9c5b4992e1
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Tue Nov 21 15:20:55 2017 +0100

    Bug#27010045 AUDIT PLUGIN FILTER DOES NOT PROCESS EVENT FIELD DEFINED AS JSON ARRAY
    
    Wrong loop condition responsible for processing JSON array defined under the 'event' field.
    
    Revieved by:
    Ivan Svaljek <ivan.svaljek@oracle.com>
    Georgi 'Joro' Kodinov <georgi.kodinov@oracle.com>

commit aec4a402c8a235404dc6f596bd3ac31306616700
Author: Horst Hunger <horst.hunger@oracle.com>
Date:   Tue Nov 21 13:32:51 2017 +0100

    Bug 26996342: Enables keyring tests to test a patch.

commit 0352bd7ef480bca55cd27e967060fc3bbc087b54
Author: Anibal Pinto <anibal.pinto@oracle.com>
Date:   Mon Nov 20 09:21:03 2017 +0100

    BUG#27091389: RACE IN GR_CONCURRENT_UNINSTALL_START TEST CASE
    
    There is a concurrency issue between uninstalling the group replication
    plugin and starting it.
    
    The test case do not expect that UNINSTALL can be executed after START, if that
    happens the UNINSTALL will return an error.
    
    Modified test to expect success or error.

commit 6209f1513c9b3f18ca9c8da77ba74abbcda9c851
Author: Sachin Agarwal <sachin.z.agarwal@oracle.com>
Date:   Mon Nov 20 11:54:48 2017 +0530

    Bug #23590280   NO WARNING WHEN REDUCING INNODB_BUFFER_POOL_SIZE INSIZE
    		THE FIRST CHUNK
    
    PROBLEM
    
    If we are scaling down innodb_buffer_pool_size inside the first chunk,
    no resize operation is performed which is the correct behaviour . But
    no warning is given to the client and no warning is included in the
    error log . So to the user it looks as though the incorrect value has
    been used to resize the buffer pool.
    
    FIX
    
    The above resize operation returns a warning to user.
    
    Reviewed by: Jimmy and satya
    RB: 17812

commit 03d54f3a5d610cd6c9867938345e7259d213bcc3
Author: Jaideep Karande <jaideep.karande@oracle.com>
Date:   Sat Nov 18 08:14:04 2017 +0100

    Bug#27091493: GR_INJECT_PIPELINE_ERROR_LOCAL_GTID IS FAILING SPORADICALLY IN PB
    
    Problem: Missing error supression when GR is unable to kill transaction.
    
    The group replication plugin is stopping due to an error.
    Sees that there is one waiting transactions but when it
    tries to kill it, it fails, causing error being written to logs.
    Thread is already killed or not in Wait_ticket map.
    
    Resolution:
    There is already suppressed error message in logs "Due to a plugin error, *".
    Adding post intermittent message to suppression logs.

commit 227bac4e752cdbefdbf4dc7854ff7e787e828b9d
Author: Tiago Jorge <tiago.jorge@oracle.com>
Date:   Fri Jul 7 16:45:13 2017 +0100

    WL#11298 - MySQL GCS: Support name resolution in whitelist in MySQL 5.7
    
    EXECUTIVE SUMMARY
    ======================
    This worklog implements support for hostnames in the
    GCS/XCom connection whitelisting feature. Therefore,
    users will be able to configure whitelisting not only
    with IPs but also with hostmames
    
    DESCRIPTION
    ======================
    
    In Cloud Environments, the following scenarios are quite common:
    - Machines popping on and off of a group;
    - IP Address are obtained from a pool that is dedicated to some machines;
    
    In this case, it is quite hard to maintain a proper whitelist, since values are in
    constant mutation.
    
    For that, it was requested that, since we already support names in peer addresses
    and in local addresses, one should also support names in the whitelist parameters,
    e.g: www.randomname.com/16, as an example.
    
    User Story:
    - As a DBA, i want to be able to configure whitelist parameter using hostnames
    instead of IP Addresses so that I am able to allow connections from outside
    hosts that do not have a fixed address
    
    - As a DBA, i want to be able to configure whitelist parameter using a mix of
    hostnames and IP Addresses with netmasks I am able to allow connections from
    outside
    hosts that do not have a fixed address and still allow fixed IPs to connect to
    the group

commit 9d5dac39992177d1439ef59a571f048e200003a7
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Fri Nov 17 13:30:11 2017 +0100

    BUG#27105803: NO CHECK FOR DUPLICATE @@SERVER_UUID WHEN JOINING GROUP
    
    Post-fix: clean temporary states when a server tries to join a
    group with a server_uuid already in use by another server.

commit 53b48563b3f5e89e5398051db605cdab3e3d76c3
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Fri Nov 17 17:05:00 2017 +0530

     Post-fix Bug#27079017 - FC27 PKGS FAILURES WHEN MYSQL-CONNECTOR-ODBC INSTALLED ALREADY FROM NATIVE REPO
     - Updated the version for libs-compat packages

commit 237185fe773f3c22b77143c6d890b07ed761a1f5
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Oct 10 16:58:52 2017 +0200

    Bug#26612465 BUILDING WITH CMAKE 3.9.0 OR NEWER GIVES DEPRECATION WARNINGS [noclose]
    
    Backport of 7ee64d795b6adc0493c1aae68858ccc1142b7a8e
    
    - Collect all "convenience" libraries in
      ${CMAKE_BINARY_DIR}/archive_output_directory
    
    - Extend the ADD_CONVENIENCE_LIBRARY macro with a POST_BUILD target
      which will save library location for later merge with other static libraries.
    
    - Rewrite all the merge targets, with separate rules for
      MSVC / APPLE / LINUX / UNIX
    
    Additional functionality:
    
    - Retry linking on windows if CMAKE_LINKER fails. This handles possible
      change of toolchain from 32bit to 64bit when running cmake, and then
      building with devenv.
    
    Additional for 5.7 only, because of embedded server:
    
    - Add STATIC plugins to known convenience libraries, they may be
      merged into the embedded server library.
    
    - Add ndbclient_static as convenience library, it is needed for embedded.

commit 69cf8a801db84b4d90c14561eb23b4cc822da9d3
Merge: 33d8f51 65524f6
Author: Aditya A <aditya.a@oracle.com>
Date:   Fri Nov 17 14:50:14 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 65524f6869af770e928bad5f0da01091c416a5f4
Merge: 1c7ed31 e6233de
Author: Aditya A <aditya.a@oracle.com>
Date:   Fri Nov 17 14:48:21 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit e6233de7d648e967a252ba7fe1fd82b4f7598d21
Author: Aditya A <aditya.a@oracle.com>
Date:   Fri Nov 17 14:46:09 2017 +0530

    Bug #24296076   INNODB REPORTS WARNING WHILE INNODB_UNDO_LOG_TRUNCATE IS ENABLED
    
    PROBLEM
    -------
    
    This warning message is printed when trx_sys->rseg_history_len is greater than some
    arbitrary magic number (2000000). By seeing the reproducing scenario where we keep
    a read view open and do a lot of transactions on table which increases the hitsory
    length it is entirely possible that trx_sys->rseg_history_len can exceed 2000000.
    So this is not a bug due to corruption of history length.The warning message was
    just added to test some scenario and not removed.
    
    FIX
    ---
    
    1.Print this warning message only for debug versions.
    2.Modified the warning message with more detailed information.
    3.Don't crash even in debug versions.
    
    [#rb 17929 Reviewed by jimmy and satya]

commit 33d8f519d3a899fd1d2690993442efb598946e80
Author: Abhishek Ranjan <abhishek.ar.ranjan@oracle.com>
Date:   Thu Nov 16 03:04:57 2017 +0530

    Bug#26727481 : SEGMENTATION FAULT DURING MYSQL_UPGRADE IN 8.0.3
    
    Problem:
    ---------
    A table using pre mysql-5.0 decimal type triggers a segmentation
    fault during in-place upgrade to mysql-8.0. The segmentation fault
    is caused during the attempt to access the TABLE object before
    opening the table in ' Field_decimal::reset().'.
    
    Analysis:
    ----------
    Pre 5.0 decimal type is not supported from mysql-5.0. Tables
    containing such un supported decimal type should be fixed by
    recreating the table using dump/restore method.
    
    CHECK TABLE command does not detect and give warnings for pre
    mysql-5.0 decimal types.
    
    Fix:
    -----
    In mysql-5.7, the fix adds warning for pre mysql-5.0 decimal types.
    User will get the following message when executing CHECK TABLE command
    
    "Table upgrade required for `db_name`.`table_name`.
    Please dump/reload table to  fix it!"
    
    mysql-8.0 will not allow in-place upgrade to 8.0 if pre mysql-5.0
    decimal type is found in the data directory.
    
    Note: mysql_upgrade will report the above error for tables with old
    decimal. mysql_upgrade will not fix old decimal types in mysql-5.7.
    'REPAIR TABLE' OR 'ALTER TABLE ... FORCE' will not fix the old decimal
    types in mysql-5.7. Tables containing such un supported decimal type
    should be fixed by recreating the table using dump/restore method.

commit 3ebc58b0d6d0310dee4a2cc1a5563d114e04a30f
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Mon Nov 13 20:39:15 2017 +0100

    BUG#27105803: NO CHECK FOR DUPLICATE @@SERVER_UUID WHEN JOINING GROUP
    
    On Group Replication, like on asynchronous replication directly
    connected server, all servers that do belong a group must have
    unique server_uuid.
    
    The above condition was required but not enforced, this patch closes
    that gap. If a server tries to join a group with a server_uuid
    already in use by another server, the join does fail.

commit 1b625720b8a114e70bf0c893b38939ba441d5422
Merge: 96f672d 1c7ed31
Author: Venkatesh Venugopal <venkatesh.venugopal@oracle.com>
Date:   Thu Nov 16 16:49:15 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 1c7ed3110cbb75cc016e93135919004422e32190
Author: Venkatesh Venugopal <venkatesh.venugopal@oracle.com>
Date:   Thu Nov 16 16:48:47 2017 +0530

    Bug#26952994 A DOUBLE-FREE ISSUE
    
    Problem:
    --------
    There is a typo error in the code which causes double free
    of a pointer.
    
    Fix:
    ----
    Fixed the typo error and handled the null pointer.

commit 96f672d94e479591abca193e00515c468360765d
Author: Venkatesh Venugopal <venkatesh.venugopal@oracle.com>
Date:   Thu Nov 16 16:11:10 2017 +0530

    Bug#25695434: MEMORY LEAK IN MULTI-SOURCE REPLICATION WHEN
    BINLOG_ROWS_QUERY_LOG_EVENTS=1
    
    Problem:
    --------
    
    1. In multi source replication, Slave SQL thread leaks
    memory when replicating using two channels from
    master-master pair when binlog_rows_query_log_events is
    enabled.
    
    2. There is also a valgrind issue of invalid memory access
    assosciated with this bug. i.e, show processlist on slave
    accesses 'm_rows_query' even after it is deleted.
    
    Analysis:
    ---------
    
    For memory leak,
    Though it may seem that it requires three
    servers to reproduce the bug, but two servers are enough to
    reproduce it.
    
    1) When binlog_rows_query_log_event is enabled on master,
      Rows_query_log_event is created and written into binary
      log prior to Rows_log_event.
    
    2) On slave, when reading from the relay log and applying
      it, the event itself is stored in
      Relay_log_info::rows_query_ev.
    
    3) Usually Relay_log_info::rows_query_ev is deleted after
      execution of Rows_log_event by the function
      rows_event_stmt_cleanup() which is called in the end.
    
    4) But whenever the statement must be skipped (because
      slave has already applied the event from another channel)
      it does not delete the rows_query_ev instance and leads to
      memory leak.
    
    For valgrind issue,
    After deleting the rows_query_ev and before resetting the
    query, if someone gives 'SHOW PROCESSLIST', instead of
    printing NULL, the original query is printed.
    
    Fix:
    ----
    For memory leak,
    Replace 'DBUG_RETURN(0)' with a 'goto end' so that
    rows_event_stmt_cleanup() function is called in the end
    and the memory allocated for that instance is freed.
    
    For valgrind issue,
    The query is reset first and then the rows_query_ev is
    freed.

commit ba08721a0142c9c5d7d7663e5b6c0b1fe323c233
Author: Anibal Pinto <anibal.pinto@oracle.com>
Date:   Thu Nov 16 09:15:53 2017 +0100

    BUG#27091520: ERROR MSGS ARE NOT SUPPRESSED IN GR_RECOVERY_PURGED_DONOR_FAILOVER
    
    Missing supression to possible messages on recovery failure.

commit 24bf26c92f7ce07bfa990d3a7459e98c72b3a530
Merge: 4eb0ec6 c680548
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Nov 16 09:34:09 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit c68054842be2a2d066a4781a976297dd7ae241f8
Merge: 71263cc 82abf07
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Nov 16 09:32:38 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 82abf07685517ea860c47bd4ec75ee5327c217dc
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Nov 16 09:31:12 2017 +0530

    Bug #26881946: INCORRECT BEHAVIOR WITH "VALUES"
    
    Issue:
    ------
    VALUES doesn't have a type() function and is considered a
    Item_field.
    
    Solution for 5.7:
    -----------------
    Add a new type() function for Item_values_insert.
    
    On 8.0 and trunk it was fixed by Mithun's Bug#19601973.
    
    Solution for 5.6:
    -----------------
    Additionally Bug#17458914 is backported.
    
    This will address the problem of using VALUES() in
    INSERT ... ON DUPLICATE KEY UPDATE. Create a field object
    only if it is in the UPDATE clause, else return a NULL
    item.
    
    This will also address the problems mentioned in
    Bug#14789787 and Bug#16756402.
    
    Solution for 5.5:
    -----------------
    As mentioned above Bug#17458914 is backported.
    
    Additionally Bug#14786324 is also backported.
    
    When VALUES() is detected outside its meaningful place,
    it should be treated as NULL and is thus replaced with a
    Field_null object, with the same name as the original
    field.
    
    Fields with type NULL are generally not handled well inside
    the server (e.g Innodb will not accept them and it is
    impossible to create them in regular tables). So create a
    new const NULL item instead.

commit 4eb0ec65555bd263045ce683e2a6209851787053
Author: Shishir Jaiswal <shishir.j.jaiswal@oracle.com>
Date:   Tue Nov 14 12:25:43 2017 +0530

    Bug#26199978 - WRONG ERROR MESSAGE FOR PARTIAL BACKUPS WITH
                   GTID_MODE = ON
    
    POST-PUSH FIX
    =============
    .test file is not supposed to run for embedded. Including
    the same in header section.

commit 0289e79bbda0b64ae7a06f3afb2b3c2532f5c8af
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Mon Nov 13 09:23:39 2017 +0530

    Bug#27103194	SEMISYNC TESTS ARE NOT RUNNING WHEN GTID IS ENABLED
    
    Remove not_gtid_enabled.inc from install_semisync_slave.inc
    to make semisync tests run when gtid is enabled in the run.

commit e2ac68d793bd482b3f22f8869cb7fd29f63c871b
Merge: 249ce42 71263cc
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 13 20:22:13 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 71263cc0e232c2d2e093d84c5bd57fa7ade882ab
Merge: c81db04 0498f9f
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 13 19:59:52 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 0498f9f7badf8c094f23fd2ef128b54034d70c9f
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Mon Nov 13 19:45:57 2017 +0530

    	Bug#27072155 - DEFAULT PLUGIN_DIR SHOULD BE DIFFERENT FOR DEBUG BUILD
    	- Update the default plugin directory for debug builds

commit 249ce42eb01212e99583b2b641a898483db862f2
Author: Shishir Jaiswal <shishir.j.jaiswal@oracle.com>
Date:   Mon Nov 13 17:08:13 2017 +0530

    Bug#26199978 - WRONG ERROR MESSAGE FOR PARTIAL BACKUPS WITH
                   GTID_MODE = ON
    
    POST-PUSH FIX
    =============
    There is a leak in mysqlpump (Bug#23102944) which can be
    seen after the tests were pushed in patch to this bug. This
    known issue will be worked upon later. Meanwhile to make
    the "LeakSanitizer" silent till this leak is fixed, we're
    moving the pushed tests from "main.mysqlpump_extended.test"
    to a new file "mysqlpump_partial_bkp.test" and making its
    entry in "mysql-test/collections/disabled-asan.list"
    (applicable only in 8.0 and trunk). We've also included
    "not_valgrind.inc" in the header of this new test file for
    the same reason.

commit 1e330e1514f4ab2c9211fa6d135845b123dd15a0
Author: Anibal Pinto <anibal.pinto@oracle.com>
Date:   Mon Nov 13 09:55:22 2017 +0100

    BUG#27091468: CONCURRENCY ISSUE IN GR_FORCE_MEMBER_EXPEL MAKES IT FAIL SPORADICALLY
    
    When there is an error in a server, it is moved to an error state and then
    set to read only mode.
    
    The test case expects that a transaction will reach the server after it
    has been moved to read only mode. However, it reaches the server before
    it is moved to read only mode sometimes thus generating unexpected messages
    in the error log and making the test fail.
    
    The test was change to confirm that super_read_only is set before execute
    transaction.

commit f8298054d8aadde08231f1cba4aa2cfa089aa3cd
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Mon Nov 13 09:06:20 2017 +0530

    Bug#26748533	SEMISYNC MASTER CRASH AFTER RESET MASTER
    
    Post push:
    Disable test script on gtid_enabled server due to
    the bug #27041759 RESET MASTER WHILE A TRX IN BGC(AFTER FLUSH)
    LEAVING SERVER IN BAD GTID STATE

commit bfeae1b57db34cb4f6d879fbea704becbc886f96
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Fri Nov 10 22:38:36 2017 +0530

    	Bug#27079017 - FC27 PKGS FAILURES WHEN MYSQL-CONNECTOR-ODBC INSTALLED ALREADY FROM NATIVE REPO
    	- Due to changes in packages, skip libs-compat and embedded-compat packages

commit 8d2de5f2c3467e4aa90a547c84bd016571a17e15
Author: Jon Olav Hauglid <jon.hauglid@oracle.com>
Date:   Tue Jul 26 13:08:15 2016 +0200

    Bug#24343330: READ OF OUT-OF-SCOPE (TEMPFILE) IN MYSQL_UPDATE()
    
    The problem was that an IO_CACHE variable used during UPDATE,
    was allocated on the stack and later copyied into a heap
    allocated variable. However, the pointers inside this struct
    was not adjusted, so that they still pointed to the stack.
    After the stack frame ended, they became invalid.
    
    This patch fixes the problem by allocating the IO_CACHE on
    the heap instead and copying the pointer to this IO_CACHE
    struct, rather than copying the contents of the struct.
    
    Issue identified by the new ASAN option
    -fsanitize-address-use-after-scope
    
    (cherry picked from commit d3bff0c03637119f960c7d3db67a85912bc37e4a)

commit 013947c2c7336a4699f99da28be9c3d71162bb09
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 09:45:58 2017 +0100

    Bug#27095089 ENABLE -FSANITIZE-ADDRESS-USE-AFTER-SCOPE BY DEFAULT FOR ASAN BUILDS
    
    See bug 24343330, which needs -fsanitize=address
    -fsanitize-address-use-after-scope in order to be detected
    
    Add a compiler feature check for
    -fsanitize=address -fsanitize-address-use-after-scope
    and enable it if supported for 'cmake -DWITH_ASAN=1'
    *and* the extra -DWITH_ASAN_SCOPE=1 is enabled.
    
    Change-Id: I25100a03c47de74df235360d57297e60c2352b88
    (cherry picked from commit e15249418502f61437fa24b9641e9879ba4d3a66)

commit 23b90b3102628b0e080284a34b435825f75bb806
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Nov 10 12:18:02 2017 +0100

    Bug #25643811: MYSQL DOES NOT COMPILE WITH GCC 7
    
    cmd-line-utils/libedit/terminal.c:366:28:
    warning: comparison between pointer and zero character constant [-Wpointer-compare]

commit 6e44c0a015787e19be8157d42d86532daff41391
Author: Jaideep Karande <jaideep.karande@oracle.com>
Date:   Fri Nov 10 08:31:05 2017 +0100

    Bug#27067956: TEST GR_APPLIER_SLAVE_COMMANDS FAILS SPORADICALY ON PB2
    
    STOP START STOP GR Applier is causing additional warnings being logged in error
    file because of previous pending operations.
    Test case has been changed to use wait when required.

commit 2203b2d189d811f5557746f08804696fc4dc7d42
Author: Aditya A <aditya.a@oracle.com>
Date:   Fri Nov 10 11:11:10 2017 +0530

    Bug #22486025	INNODB: FAILING ASSERTION: KEY_LEN != 0 || FIND_FLAG != HA_READ_KEY_EXACT
    
    Post push test case fix

commit 760925e813d33e0b3304324dc2f5590e96d016a7
Merge: bfe6ecb c81db04
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 13:45:42 2017 +0100

    NULL Merge branch 'mysql-5.6' into mysql-5.7

commit c81db04314cd2505203eb563f282c89bd7cb01f5
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 13:31:38 2017 +0100

    Bug#26022865 BUILD FOR WINDOWS-S12-64BIT,ADVANCED IS FAILING ON PB2 MYSQL-5.6
    
    Remove cmake code for signing executables.
    Automatic signing has always failed anyways.
    It should be done manually as part of the release process.

commit bfe6ecb99fffe1a01f68146aa0f61e6ebdf5361e
Merge: 8b011c5 dc75c90
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 13:35:41 2017 +0100

    NULL Merge branch 'mysql-5.6' into mysql-5.7

commit dc75c90a60bd92e9ec007a06892b6ada309a73cd
Merge: 3aed38d b0a936b
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 13:35:09 2017 +0100

    NULL Merge branch 'mysql-5.5' into mysql-5.6

commit 8b011c5238d20e07dedc1df5226a4a5609b3d82f
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Thu Nov 9 10:53:03 2017 +0100

    WL#8838 Compressed and encrypted JSON audit log output
    
    Post-push fix: Code rewritten in a way, which is not a subject of compiler optimization.

commit b0a936b0d933ad56192fd7cc47f4b4f460da4230
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 08:45:45 2017 +0100

    dos2unix cmake/mysql_add_executable.cmake

commit 416d58a9ddb341e7037ee15834fdb739baffc1c4
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Nov 9 08:36:59 2017 +0100

    Bug#26022865 BUILD FOR WINDOWS-S12-64BIT,ADVANCED IS FAILING ON PB2 MYSQL-5.6
    
    Remove cmake code for signing executables.
    Automatic signing has always failed anyways.
    It should be done manually as part of the release process.

commit de2bbe2aa1c8eb7aceeb8c17c45232b2c442bc98
Merge: ddfbfcf 3aed38d
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Nov 9 01:20:43 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 3aed38dd6761468713ec023f2ae411ef43465497
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Nov 9 01:17:02 2017 +0530

    Bug #26492721   MYSQL/INNODB CRASHES DURING ALTER TABLE
    
    Renaming the test file as per the naming convention.

commit ddfbfcfdfcb4f77f72e459a293686a2be27af112
Merge: a27e2ff ca0d885
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Wed Nov 8 17:46:12 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit ca0d8852897f1124e5b63c5fcc588f28f68f5add
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Wed Nov 8 17:42:55 2017 +0530

    Bug #26492721   MYSQL/INNODB CRASHES DURING ALTER TABLE
    
    PROBLEM
    
    While doing an alter table that does multiple change columns , the heap
    assigned for the particular table increases and corresponding increase
    to dict_sys->size isn't done because of which the dict_sys->size keeps
    decreasing with every iteration of set of alter tables provided in the
    bug page hitting the assertion dict_sys->size > 0 .
    
    FIX
    
    Fix is to add a check for any table heap size increase during change
    column and add the increased value of heap size to dict_sys->size to
    avoid it getting diminished on subsequent runs of alter tables.
    
    Reviewed by: Jimmy Yang<Jimmy.Yang@oracle.com>
    RB: 17817

commit a27e2ffe9f4213eca481bb72d08a037d2637362c
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Fri Nov 3 18:05:18 2017 +0100

    BUG#27049034: SOMETIMES MEMBERS ENTER IN ERROR STATE AFTER LONG RECOVERY
    
    In Group Replication, when a member join a group it goes through the
    recovery process in order to have the same data as of the group.
    The recovery process is composed by 3 stages:
      1) Apply existent transactions on group_replication_applier, if
         existent, this happens when this member already was a member of
         the group and left with transactions to apply.
      2) Fetch and apply the data the new member is missing when
         compared with the group. This happens through a asynchronous
         replication channel, named group_replication_recovery, which
         stop condition is apply all data until the moment on which the
         new member joined, marked by View_change_log_event.
         While this is ongoing, the concurrent group workload is being
         queued and will be deal with on the next stage.
      3) Apply the queued transactions during stage 2 and then switch
         the member status to ONLINE.
         The stop condition is:
           5.7: the new member will wait until the queue is empty and
                group_replication_applier applied all transactions.
           8.0: the new member will wait until the number of
                transactions queued during the 2nd stage are applied.
    
    On this bug, at the end of the 3rd stage, the recovery process
    reached its termination condition, that is, all accounted
    transactions are applied.
    On that *exact* moment, a new transaction is being queued. Please
    remember that transactions are materialized as events on binary and
    relay logs.
    When the applier signals that applied all transactions, it is also
    blindly searching for partial transactions, that will remove to
    avoid future applier errors, which would happen if the applier did
    stop at this point.
    Though, this search and remove does only make sense on applier stop
    cases. On execution completeness that must not be done, otherwise it
    can corrupt or purge the applier relay log, which can led to data
    loss.
    
    To solve the above issue, when the applier is waiting for execution
    completeness, it does not search and remove partial transactions.

commit 425b08c716b8adb93ed1c1d22c3e9268025d7ca0
Author: Parveez Baig <parveez.baig@oracle.com>
Date:   Mon Nov 6 10:31:38 2017 +0530

    WL11144: Improve test coverage for create user/alter/drop if exists with replication
    
      This patch adds test coverage for scenarios around
    create/alter/drop user IF[NOT] exists.

commit 5a4742471b22735171226e0d062ada527b864662
Merge: bd92340 e18ac41
Author: Aditya A <aditya.a@oracle.com>
Date:   Mon Nov 6 23:12:55 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit e18ac41fb7481b119988a8a31a30b517971d6a5c
Author: Aditya A <aditya.a@oracle.com>
Date:   Mon Nov 6 23:09:26 2017 +0530

    Bug #26256456	INNODB CRASHED WHEN MASTER THREAD EVICT DICT_TABLE_T OBJECT
    
    PROBLEM
    -------
    
    1) Flush table command fails to drop the aborted index because the drop_aborted condition is
       checked after n_ref_count is decremented.
    
    2) While removing the table from cache in background ,we were first dropping the clustered index
       and then checking for aborted index which is wrong because to drop aborted index we require
       to traverse to the index list.Since the index list is deleted we ended up in an assert
    
    FIX
    ---
    
    1) Check drop_aborted condition before decrementing n_ref_count.
    2) When removing the table from cache in background ,check for aborted condition first,drop the
       aborted indexes and then proceed to drop the rest of indexes.

commit bd923401a0fa31ff06e7af5c11d4c123fdb152c3
Merge: d54337a a526762
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Mon Nov 6 09:48:55 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7

commit a526762625f456e61a0cc89c9cf39887d1b94cf8
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Mon Nov 6 09:48:03 2017 +0100

    Deb packaging: Remove handling of eol'ed Ubuntu 12.04, 15.10 and 16.10

commit d54337a13eada6c9d28d0c3ad97b5d04458727f5
Merge: 077ba45 1be7db9
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Mon Nov 6 09:43:34 2017 +0100

    Null-merge from 5.6

commit 1be7db9219e227862a4eed9b9025574a1befe5ba
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Mon Nov 6 09:39:56 2017 +0100

    Deb packaging: Remove unused packaging files

commit 077ba45a0537fafae58ae7704678d3b60c390c7c
Author: Aditya A <aditya.a@oracle.com>
Date:   Mon Nov 6 11:05:22 2017 +0530

    Bug #22486025	INNODB: FAILING ASSERTION: KEY_LEN != 0 || FIND_FLAG != HA_READ_KEY_EXACT
    
    This assertion basically comes because innodb doesn't support
    index on zero length column.This problem comes only for
    innodb intrinsic temporary table. It was decided that we will
    presently return an error for the queries which build a
    index on a zero length column . Supporting the index on
    zero length column will be taken as a separate bug.

commit cba8a8376783d75a31d47c8104143fdfab7c89d5
Author: Dyre Tjeldvoll <Dyre.Tjeldvoll@oracle.com>
Date:   Sat Nov 4 18:19:10 2017 +0100

    Bug#26739438: DEADLOCK ON GET_LOCK(..., 0)
    
    Problem: Concurrent calls to GET_LOCK could cause deadlock, even with
    a wait time of 0.
    
    Root cause was that MDL_context::acquire_lock() would add the ticket
    as waiter and perform deadlock detection analysis even when the wait
    time was 0.
    
    Solution: Return error immediately if lock cannot be obtained and wait
    time is 0.
    
    (cherry picked from commit c528fee7d9c8186bcc14549f62b1f835ab01c0c5)

commit 38cf041bd3e5cf9ab69b2574c31a2b12ca233f4f
Author: Libing Song <libing.song@oracle.com>
Date:   Fri Nov 3 21:41:47 2017 +0800

    BUG#26474110 RPL_KILLED_DDL USES A DEBUG POINT NOT EXIST
    
    Post fix: included have_debug_sync.inc into the test

commit 26429d55448d54c7e0ecf070956e48fdcfca603a
Merge: 6abbd99 652df2a
Author: Bjorn Munch <bjorn.munch@oracle.com>
Date:   Fri Nov 3 12:25:38 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7

commit 652df2a2d82d9ea029d3df9da371279298983e9c
Merge: 2fbe5e2 f92722b
Author: Bjorn Munch <bjorn.munch@oracle.com>
Date:   Fri Nov 3 12:23:21 2017 +0100

    Merge branch 'mysql-5.5' into mysql-5.6

commit f92722b5d9713947f22018f28eee971c7e547c7e
Author: Bjorn Munch <bjorn.munch@oracle.com>
Date:   Fri Nov 3 12:21:26 2017 +0100

    Bug #27021754 MYSQLTEST MAN PAGES WILL BE REMOVED, PACKAGING MUST BE PREPARED
    
      Removed relevant man pages from file lists for RPM and DEB
    
      RPM: added conditional removal of them, so it works both before and
      after man pages are actually removed
    
      DEB: added to exclude list (5.6+)

commit 6abbd99b6620a2f52d4ecc2f6206530accf7be81
Author: Jon Olav Hauglid <jon.hauglid@oracle.com>
Date:   Fri Nov 3 11:11:27 2017 +0100

    Bug#26931470: PLEASE BACKPORT TO 5.7: DEFAULT LOG-TC-SIZE TOO SMALL ON POWER - 3 * ( 64K PAGE
    
    This is a backport to 5.7 of
    
    Bug#23014086: DEFAULT LOG-TC-SIZE TOO SMALL ON
                  POWER - 3 * ( 64K PAGE SIZE) MINIMIUM NEEDED
    
    The problem was that the memory page size for the memory mapped
    transaction coordinator was hardcoded to 8k. This did not work
    properly on platforms like ARM64 and PowerPC where the page
    size is much larger.
    
    This patch fixes the problem by using my_getpagesize() to get
    the page size of the current platform rather than using a hardcoded
    value.
    
    This has consequences for and changes the behavior of the
    --log-tc-size startup option. The minimum and default value
    of the option is now 6 * pagesize. This means it is still
    24k on Linux (4k pagesize). The value also now has to be
    multiples of pagesize rather than multiples of 8k.
    
    Patch based on contribution from Alexey Kopytov.
    
    (cherry picked from commit e3b09cae22163edfc1951641767b776c8545ad49)
    
    Original backport provided by Daniel Black.

commit 2cd254eb34d1e0bfb22d9db3be8f324ce3003249
Author: Jaideep Karande <jaideep.karande@oracle.com>
Date:   Thu Nov 2 08:43:08 2017 +0100

    Bug#25392468: TESTS WAITING ON ROLLBACK FAILING WITH WAIT_CONDITION
    
    Problem: Test case assumes rollback will broadcast transaction
    
    Description:
    After enforcing the use of wait_condition.inc post bug BUG#25247574 some test
    cases started failing.
    These tests use a debug sync point to block rollback queries.
    That is not true, and they are not blocked as group replication does not
    broadcasts the transaction where the code was being blocked.
    
    Resolution:
    ROLLBACK transactions will not be received by GR for broadcast, so conflict
    testing between ROLLBACK and COMMIT is not needed.
    However to maintain completeness of test case, ROLLBACK part has been retained.
    Debug sync points have been removed now, since they will not block.
    Parallelly running transaction is COMMIT so there will be no conflict.

commit a87ab932915d8929f2f8a1d6f6475d7e93709065
Author: Shishir Jaiswal <shishir.j.jaiswal@oracle.com>
Date:   Wed Nov 1 19:36:06 2017 +0530

    Bug#26199978 - WRONG ERROR MESSAGE FOR PARTIAL BACKUPS WITH
                   GTID_MODE = ON
    
    DESCRIPTION
    ===========
    Attempt to take partial backup through mysqlpump on a GTID
    enabled server fails reporting,
    
     "mysqlpump: [ERROR] (1) A partial dump from a server that
      has GTIDs is not allowed.
      Dump process encountered error and will not continue."
    
    If one trusts this message, he would think that there is no
    way ("at all") mysqlpump can be used to take partial backup
    with GTID enabled server, which is wrong.
    
    ANALYSIS
    ========
    We've two issues here:
    
    1. The error message, as stated above.
    2. One(undocumented) way to still do so is to pass
    --set-gtid-purged=OFF. Ideally both the values [ON|OFF]
    should be allowed even in case of partial backup, depending
    upon the use case (the use cases should be part of error
    message)
    
    FIX
    ===
    Sql_formatter::format_dump_start() checks for the
    gtid-purged mode, so we now error out "only" when this mode
    is set to AUTO. The message is as follows.
    
     "A partial dump from a server that is using GTID-based
     replication requires the --set-gtid-purged=[ON|OFF] option
     to be specified. Use ON if the intention is to deploy a
     new replication slave using only some of the data from the
     dumped server. Use OFF if the intention is to repair a
     table by copying it within a topology, and use OFF if the
     intention is to copy a table between replication topologies
     that are disjoint and will remain so."
    
    The above message is self-explanatory.
    
    NOTE FOR THE DOCUMENTATION TEAM
    ===============================
    Please add the above message for option
    "--set-gtid-purged=value" under "mysqlpump Option
    Descriptions" section in the documentation pages.

commit fa2755d42b4b3facb9979fba8f55b3175b66bfe1
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Wed Sep 13 19:23:14 2017 +0200

    WL#11138: Deprecate group_replication_allow_local_disjoint_gtids_join option
    
    The option group_replication_allow_local_disjoint_gtids_join[1] was
    introduced with the purpose[2]:
      This variable is an override mechanism for a new consistency feature
      in the plugin. When you try to add to the group a server that has
      more data than the existing members, by default the joining member
      will be rejected.
      The purpose is to avoid possible recovery and run time errors in
      the plugin leading to data divergence and other issues. If you are
      sure of what you are doing, and that the extra data is safe, then
      you can use this option.
    
    The scenarios on which this can help users are:
    
     S1) Solve a broken majority asap
         * Group had 3 members in single-primary mode
         * 2 members crashed and end up with different data
           (GTID_EXECUTED) when compared with the group.
         * User wants to add one of the members (S2) to solve the
           majority loss or increase group members number to handle
           possible future member failures.
         * The member that is still on the group is the one that is the
           primary or will be elected as primary when majority is
           re-established, since is the only one ONLINE.
         * The group will be stable if a future failover does not switch
           to the S2 member.
    
    The runtime errors that may happen are that the member which did
    force the join with disjoint GTIDS, if it does a write, the changed
    rows will never be updated by other members. Certification will
    fail.
    The recovery errors that may happen are that if this member is
    chosen as donor, it will distribute the disjoint GTIDS among the new
    members and increase the likelihood of the runtime errors to happen.
    
    It must never be used unless the DBA knows exactly what she/he is
    doing or does need to solve a broken majority, on which crashed
    members suffered corruption and she/he will not perform writes on
    it. Which can already be done by resetting master and setting
    GTID_PURGED to match the GTID executed of the group if they really
    want to add the damaged server to the group.
    
    People use this option to force member join, and assume that since
    member did successfully join everything is OK. Which is not the
    case, data is inconsistent.
    
    The correct procedure to fix a majority loss is described at
    https://dev.mysql.com/doc/refman/5.7/en/group-replication-network-partitioning.html
    
    Since the trade-off between this option benefit vs danger is
    negative, we are deprecating this option.
    It will be removed on a future version.

commit be09bfa4a5df62f64bd37034befcdaa5b12c9bb0
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Tue Oct 24 19:16:49 2017 +0200

    BUG#27008102: CRASH DURING SHUTDOWN WHEN START GR EXECUTED IF MAX CONNECTIONS ALREADY OPENED
    BUG#27016552: MAX_CONNECTIONS ARE ACCOUNTED FOR GR INTERNAL CONNECTIONS
    
    Group Replication does use the SQL API to execute internal
    operations on the server during START and STOP, like enable and
    disable read only mode.
    While opening this internal connection, if the server already
    reached the max_connections value, Group Replication was failing as
    expected but a dangling thread was left behind, which later would
    cause issues.
    
    This patch addresses that issue, by handling completely the open
    connection failure scenario.
    This patch also improves the error messages on this error scenario,
    by including the internal server error and message, and on the
    particular case of max_connections also instructing the user what
    needs to be changed.

commit 60d873d4343a8fe101d35faaa9869e96e853d60c
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Sun Oct 29 07:52:40 2017 +0530

    Bug #26727773: OPTIMIZER CHOSES COMPOSITE INDEX FOR REF
                   OVER RANGE
    
    Issue:
    ------
    While choosing between ref-access and range-access on the
    same index, we prefer range if certain pre-determined
    criteria are fulfilled
    (See can_switch_from_ref_to_range()).
    
    One such criteria is to choose avoid ref-access if it has
    an overly-optimistic / unrealistically low cost. This can
    happen when, as in this case, records_per_key is very low.
    
    For this query, ref-access acquires its estimated number
    of rows value records_per_key (which is 1) and is
    considered to be the cheapest. But in reality the estimate
    of range-access which uses more keyparts is accurate
    (due to index dives).
    
    So, choosing range-access would be ideal. But the optimizer
    choose ref-access.
    
    Solution:
    ---------
    This problem was mostly handled in Bug #23259872.
    
    For 5.7:
    --------
    Range-access estimates the number of rows to be
    1 (correctly) and ref-access arrives at the same number
    from records_per_key (incorrectly). Range access is more
    accurate and the overhead of using range is also limited.
    Hence, choosing range is better than ref, because ref's
    estimate is from the less reliable records_per_key.
    
    It is better to use the "<=" rather than "<", to set the
    "is_dodgy" flag which is one of the criteria in
    can_switch_from_ref_to_range().
    
    For 8.0 and trunk:
    ------------------
    Irrespective of the number of rows estimated for
    ref-access, if range-access uses more keyparts, don't
    consider this index for ref-access.

commit 2c8d9fe218fb4ed9bd1b62ae94143ecda7a20ba4
Author: Libing Song <libing.song@oracle.com>
Date:   Wed Aug 23 22:39:00 2017 +0800

    BUG#26474110 RPL_KILLED_DDL USES A DEBUG POINT NOT EXIST
    
    There where two problems:
    1. debug_lock_before_query_log_event was lost.
    2. ALTER EVENT was not binlogged when it was killed
       just after event table was updated.
    
    Analysis On 2th Problem
    =======================
    After event table is updated successfully, it calls load_named_event().
    If load_named_event() returns true, the ALTER EVENT will not be logged.
    Since event able is myisam table, the update cannot be updated. So
    it cause the problem: the statement updated something but it is not
    binlogged. KILL QUERY causes load_named_event() return true. That caused
    the inconsistency between master and slave.
    
    Fixes
    =====
    1. Added the debug_lock_before_query_log_event
    2. binlog the ALTER EVENT, even load_named_event() return true.

commit c1dbc33d40bf10f35774da582e95513be50bc0a6
Merge: ff81289 2fbe5e2
Author: Daniel Blanchard <daniel.blanchard@oracle.com>
Date:   Fri Oct 27 14:48:13 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7

commit 2fbe5e22983a17b7dfaaf1f6f9ca478b3f25033b
Author: Daniel Blanchard <daniel.blanchard@oracle.com>
Date:   Fri Oct 27 14:44:15 2017 +0100

    BUG#26734457 BACKPORT BUG#22305994 TO 5.6 AND 5.7
    
    Fixing post push pb2 failure

commit ff812892b5523185b3b79386f0df35fca50535c8
Merge: 4f45bbd 8fccdde
Author: Daniel Blanchard <daniel.blanchard@oracle.com>
Date:   Fri Oct 27 13:40:16 2017 +0100

    Merge branch 'mysql-5.6' into mysql-5.7
    
    Change-Id: Ia8f48702408d13a320b565f7600833ef20031b9e

commit 8fccdde4a22ef2b5948b976205465c1e088336b5
Author: Daniel Blanchard <daniel.blanchard@oracle.com>
Date:   Mon Sep 4 10:30:14 2017 +0100

    BUG#26734457 BACKPORT BUG#22305994 TO 5.6 AND 5.7
    
    Use GetSystemTimePreciseAsFileTime in my_micro_time on Windows when it
    is available to achieve higher timer resolution.
    
    Change-Id: I200c54b83fedb22c2e4c45bc151aed44fec0ff6c

commit 4f45bbd52c0d94bdddb7d41733aaa9963b85e181
Merge: 78370cb 83578b0
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Fri Oct 27 16:49:42 2017 +0530

    NULL Merge branch 'mysql-5.6' into mysql-5.7
    
    Change-Id: Ie45c710dad37611a90f9d12e40904f8cd29f432b

commit 83578b0fcaafde79c30f3961d5f44cae87f7fb6b
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Fri Oct 27 16:19:45 2017 +0530

    Post push fix for Bug#25062396.
    Change: Variable initialization.
    
    Change-Id: I2e4afddcfb9651c98a554695b1565fdb1504b69a

commit 78370cb444097199fcc41e12492d72402f2b7b19
Merge: f18713f 6e38ae2
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Fri Oct 27 11:56:57 2017 +0100

    Null merge branch 'mysql-5.6' into mysql-5.7

commit 6e38ae2a23b4ce9ac9742e1556f4ca9561fd5b8b
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Fri Oct 27 11:55:47 2017 +0100

    BUG#26106655: DISCREPANCY BETWEEN IMPLICIT DB OF PARENT
                  TABLE FOR FK AND REFERENCES PRIVILEGE
    
    ANALYSIS:
    =========
    Check for REFERENCES privilege was using incorrect database
    in some cases.
    
    There was discrepancy between database which was used by
    SEs for parent tables and used for check of REFERENCES
    privilege in cases when no explicit database was specified
    for parent table.
    
    FIX:
    ====
    This patch removes the discrepancy by aligning check for
    REFERENCES privilege with SE behavior.

commit f18713fbb71cbe53f10fad7aa00bb6071a0c96e3
Author: Maria Couceiro <maria.couceiro@oracle.com>
Date:   Fri Oct 27 09:19:58 2017 +0100

    BUG#25873029 HEAP-USE-AFTER-FREE IN RPL.RPL_JSON [noclose]
    
    Disabling rpl.rpl_virtual_gcol test for valgrind and ASAN runs.

commit 090bb6ac6e1537f1b10e314f7b554fa791f03890
Merge: a72de07 840a2d7
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Thu Oct 26 18:11:38 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 840a2d7d35dfaa68074d1ae6b52dadd73b8e5462
Merge: f9ea26b 4677865
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Thu Oct 26 18:09:50 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 4677865be92bd6a7f3c0e75611ae128d10fda475
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Thu Oct 26 18:07:36 2017 +0530

    Bug #26880757: MYISAM_USE_MMAP=1 ON WINDOWS FREQUENTLY DOES
                   NOT UPDATE FILE ON DISK
    
    Description:- When the server variable, "myisam_use_mmap" is
    enabled, MyISAM tables on windows are not updating the file
    on disk even when the server variable "flush" is set to 1.
    This is inturn making the table corrupted when encountering
    a power failure.
    
    Analysis:- When the server variable "myisam_use_mmap" is set,
    files of MyISAM tables will be memory mapped using the OS
    APIs mmap()/munmap()/msync() on Unix and CreateFileMapping()
    /UnmapViewOfFile()/FlushViewOfFile() on Windows. msync() and
    FlushViewOfFile() is responsible for flushing the changes
    made to the in-core copy of a file that was mapped into
    memory using mmap()/CreateFileMapping() back to the
    file system.  FLUSH is determined by the OS unless
    explicitly called using msync()/FlushViewOfFile().
    
    When the server variables "myisam_use_mmap" and "flush" are
    enabled, MyISAM is only flushing the files from file system
    cache to disc using "mysql_file_sync()" and not the memory
    mapped file from memory to FS cache using "my_msync()".
    ["my_msync()" inturn calls  msync() on Unix and
    FlushViewOfFile() on Windows.
    
    Fix:- As part of the fix, if server variable
    "myisam_use_mmap" is enabled along with  "flush",
    "my_msync()" is invoked to flush the data in memory to file
    system cache and followed by "mysql_file_sync()" which will
    flush the data from file system cache to disk.

commit a72de071db4f8f559041260cf1236ab874d3b5dd
Merge: d50d332 f9ea26b
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Thu Oct 26 16:41:09 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit f9ea26bb68920e27ad66c87b25e1c3479e7834c4
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Wed Oct 25 21:45:49 2017 +0530

    Bug#26748533 SEMISYNC MASTER CRASH AFTER RESET MASTER
    
    Problem: While some active transaction are waiting for ack from Slave,
             executing 'RESET MASTER' is leaving Master's semisync
             in bad state.
    
    Analysis: In ReplSemiSyncMaster::commitTrx, when transaction is
              waiting for an acknowledgement from the Slave, before
              it goes into the wait state, it increases
              rpl_semi_sync_master_wait_sessions status variable to indicate
              the number of sessions waiting for the acknowledgements. Also
              before it goes into the wait state, it releases LOCK_binlog_ lock
              to avoid any hang issues for the other sessions which are looking
              for LOCK_binlog_. When the thread releases LOCK_binlog_ lock and
              waiting for the acknowledgement, there is a possibility that
              some other thread which is executing 'RESET MASTER' can get the lock
              and reset all the status variables. rpl_semi_sync_master_wait_sessions
              is one of such status variables. After the wait is over in
              ReplSemiSyncMaster::commitTrx (either the timeout or received acknowledgement
              from Slave), the logic is decreasing rpl_semi_sync_master_wait_sessions)
              without checking whether 'RESET MASTER' was executing by any other parallel
              thread. This leads invalid value for rpl_semi_sync_master_wait_sessions
              status variable. Any other logic which is trying to use this status variable
              will lead to unexpected results in the server.
    Fix: Check the value of rpl_semi_sync_master_wait_sessions before decrementing
         it and decrement it only if it is non-zero value.

commit d50d332f81a8aa222700b508fb9d55d97868dfec
Author: Marc Alff <marc.alff@oracle.com>
Date:   Wed Oct 25 14:03:21 2017 +0200

    Bug#26116415 TABLESPACE CLAUSE CONFUSES MYSQLPUMP
    
    Before this fix,
    mysqlpump failed to export tables using a tablespace.
    
    The root cause is that mysqlpump parses the
    result of SHOW CREATE TABLE,
    and is not expecting the TABLESPACE clause.
    
    In the following statement:
    CREATE TABLE `t1` (
      `a` int(11) DEFAULT NULL
    ) /*!50100 TABLESPACE `mytbsp` */ ENGINE=InnoDB DEFAULT CHARSET=latin1
    
    MYSQLPUMP was looking for ") ENGINE=" ...,
    and failed to detect this line.
    
    The fix is to relax parsing of SHOW CREATE TABLE,
    so that the line:
      ) /*!50100 TABLESPACE `mytbsp` */ ENGINE=...
    is also detected as the table options clause.

commit 1eb4374db09f7d24488307bbed4b8100f197240d
Author: Daogang Qu <bill.qu@oracle.com>
Date:   Tue Oct 24 11:21:19 2017 +0800

    Bug #26976071   TYPO, 'THE BINLOG AND LOG_SLAVE UPDATE OPTIONS'
    
    Start mysqld with --skip-log-bin causes the following error message:
    [ERROR] mysqld: slave_preserve_commit_order is not supported unless
    the binlog and log_slave update options are both enabled.
    The error message is misleading, since there is no such option as
    "log_slave update".
    
    To fix the problem, correct the error message to
    "slave_preserve_commit_order is not supported
    unless both log_bin and log_slave_updates are enabled.".

commit e09ef052c2f4145981fc7a51a197b55b16a495c1
Author: Maria Couceiro <maria.couceiro@oracle.com>
Date:   Tue Sep 26 12:15:37 2017 +0100

    BUG#26280724 ASSERT FAILURE WHEN REPLICATING TABLE WITH VIRTUAL JSON COLUMN
    
    Problem and analysis:
    When row based replication is enabled and slave-rows-search-algorithms
    is set to 'INDEX_SCAN,HASH_SCAN', updating a table containing a virtual
    generated field that relies on its string representation to generate
    the hash for the table scan would result in an error when generating
    the said string.
    
    Fix:
    Since virtual generated fields cannot be used to identify a row, do
    not create hashes for virtual generated fields. Also, exclude these
    fields when comparing records field by field.

commit 15a6dbb22394ec5a93d09249fc9f8d0f73e758aa
Merge: b4de634 2f6b4b3
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Mon Oct 23 11:04:18 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 2f6b4b330b9584c8d82b5a3f7939d92d6fd08ea7
Merge: 895873b a24a42e
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Mon Oct 23 11:00:07 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit a24a42e68b43ab3b4ea796abc24bbe1a4577202c
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Mon Oct 23 10:56:20 2017 +0530

    BUG#26529369: CREATE INDEX WITH LONG COMMENT CAUSE
                  UNEXPECTED ERROR
    
    ANALYSIS:
    =========
    Creating many indexes with large amount of index
    information causes a server exit.
    
    FIX:
    ====
    A appropriate error is reported when the cumulative index
    information length exceeds the 2 byte range (i.e 65535).

commit b4de6344d18962a7c63d085c1de009295ed99a86
Merge: d9898b6 895873b
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Fri Oct 20 19:03:55 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit 895873bd10e497999d2438458d67733704865541
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Fri Oct 20 19:00:10 2017 +0200

    Bug#26732229 PERFORMANCE SCHEMA STATEMENT TABLES SHOULD DISPLAY REWRITTEN QUERY TEXT - MTR
    
    Improve timing in the statement rewrite test for better reliability on PB2.

commit d9898b64995e2d78bfd465abb0cb23e187d94423
Merge: a08eb8d 04e66ba
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Fri Oct 20 12:06:44 2017 +0530

    NULL Merge branch 'mysql-5.6' into mysql-5.7
    
    Change-Id: I5223dc640ec53a78f871eeb4e7ace1213f6b6869

commit 04e66ba99d0189f7f8f3f6a766984ae77aa36f09
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Fri Oct 20 12:06:02 2017 +0530

    Bug#25062396 - ASSERTION `CUR_SHAPE != GCALC_FUNCTION::
                            SHAPE_POINT' FAILED.
    
    Post push test case fix.
    
    Change-Id: I67a12c0a398b640f45d371334933a5e6a0a4e486

commit a08eb8d270508f983a283a7621b036427783ff9c
Author: Horst Hunger <horst.hunger@oracle.com>
Date:   Thu Oct 19 16:31:55 2017 +0200

    Bug #26996342: Disabled keyring tests completely under hudson as regularly failing.

commit e3fa8141ef52977e6f3a44b6ff3df4c0b2f1bff0
Author: Anibal Pinto <anibal.pinto@oracle.com>
Date:   Thu Oct 19 09:58:45 2017 +0200

    BUG#26821852: GR TEST FAILURES ON PB2 5.7
    
    Tests gr_server_uuid_matches_group_name_bootstrap and
    gr_server_uuid_matches_group_name_non_bootstrap were executing a assert_grep on
    error log and the error wasn't yet happened.
    
    Put assert_grep on log before cleanup, that guarantee that the error was
    executed.
    
    Test gr_start_replication_auto_with_ssl_recovery had some operations with auto
    increment not necessary for execution of the test that can trigger some errors
    on slower platforms. Code remove from test.

commit 3ee5bfd2ca47e2d7223c30899bd7e7177cde8cbe
Merge: edf85f6 a90693e
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Oct 19 10:23:04 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit a90693ecad98288df4d25934b495b02c72553c36
Merge: 32c80a2 996aa61
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Oct 19 10:21:07 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 996aa611134b975ff62182e65d1cb04d9e8c0427
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Oct 19 10:19:36 2017 +0530

    Bug #26867652: INCORRECT BEHAVIOR WITH PREPARE STATEMENT
                   AND PARAM IN ORDER BY
    
    Issue:
    ------
    This issue can occur when the ORDER BY list refers to a
    column that contains a parameter in the select list.
    
    Solution:
    ---------
    In JOIN::update_depend_map and get_sort_by_table, the
    ORDER BY list's used_tables isn't checked for parameters.
    This can result in incorrect behavior.
    
    This is a partial backport of Roy's
    "Bug#25466100: Refactor const_item processing"

commit edf85f627297c235d1c39f3ec0c799a14187207a
Author: Anibal Pinto <anibal.pinto@oracle.com>
Date:   Tue Oct 17 15:10:58 2017 +0200

    BUG#26787288: CHECK_WARNINGS FOR GROUP_REPLICATION.GR_RELAY_LOG_NAME_CHANGE TIMES OUT ON PB2
    
    The test produces a failure when server is starting and the following steps put
    it on restart. This situation caused a possibility of group replication execute
    an query on the server but don't have any response due server is stopping.
    
    The group replication service sql command wasn't retrieving an error when this
    failure happened that caused the server to crash on the end of the test.
    
    We modified the function to return failure when this occurred.
    
    When accessing to SQL result we confirm that it has values.

commit 9fff258e28ea059178e5aacc04bb9ca2968c8dc5
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Tue Oct 17 12:58:08 2017 +0200

    BUG#26770576: ALL MEMBERS ARE EXITED FROM GR WHEN 1/3 NODE TRIED TO REJOIN AFTER SHUTDOWN
    
    Problem: All members in group goes in ERROR STATE when new member joins and
    certification database is big
    
    Scenario (slow machine with heavy load):
    1. Start 3 server (MEMBER_1, MEMBER_2, MEMBER_3)
    2. Wait for all members to be ONLINE
    3. Start heavy load on MEMBER_1 (wait for 5 to 10 minutes) (MEMBER_2 and MEMBER_3 receives data slowly.)
    4. STOP, START MEMBER_3
    5. MEMBER_1 and MEMBER_2 goes offline
    
    Description: When new member joins server, certification database can be big.
    Certification database is transferred with View_change.
    If packet size(View_change) is greater then 4MB, GR stops and goes in error state.
    
    Resolution:
    Applier thread will be initialized with slave_max_allowed_packet, which default
    size is 1GB.

commit 5c6bf1d418fad44c7ce0e9d628d403619722197d
Merge: 2074b47 32c80a2
Author: Gipson Pulla <gipson.pulla@oracle.com>
Date:   Mon Oct 16 19:42:02 2017 +0200

    Upmerge of the 5.6.38 build

commit 32c80a2bac800f5c5401cc56ab88e43f3313eb62
Merge: e2f92d9 7335776
Author: Gipson Pulla <gipson.pulla@oracle.com>
Date:   Mon Oct 16 19:39:48 2017 +0200

    Merge branch 'mysql-5.6.38-release' into mysql-5.6

commit 2074b47cd3200875bf637a650b951fb15b0dc05b
Merge: ff81eb4 e2f92d9
Author: Sergey Glukhov <sergey.glukhov@oracle.com>
Date:   Mon Oct 16 18:48:19 2017 +0300

    Merge branch 'mysql-5.6' into mysql-5.7

commit e2f92d9c43fe1147b3dd99401a6e2b86a03e87a2
Author: Sergey Glukhov <sergey.glukhov@oracle.com>
Date:   Mon Oct 16 17:55:01 2017 +0300

    Bug#26877788 SELECT FROM INFORMATION_SCHEMA.FILES RETURNS NO RECORDS WHEN ORDER BY IS USED
    
    test case fix.

commit ff81eb474b4bcdec1384d6bb69c14b09e2d49d3c
Merge: 6e0d7a9 2a7dded
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Mon Oct 16 20:10:23 2017 +0530

    NULL Merge branch 'mysql-5.6' into mysql-5.7
    
    Change-Id: I022d8bd3738a640938fbaca968ea70e47d672d42

commit 2a7ddedb91bdc6b68093db2f07818130f6683714
Author: Ajo Robert <ajo.robert@oracle.com>
Date:   Mon Oct 16 20:08:13 2017 +0530

    Bug#25062396 - ASSERTION `CUR_SHAPE != GCALC_FUNCTION:: SHAPE_POINT' FAILED.
    
    Invalid input parameters could lead to wrong result buffer.
    Which can cause an assert due to traversing to uninitialized
    pointers and abrupt exit or cyclic processing of the result
    buffer.
    
    Fix included handling of below scenarios.
    1. Uninitialized structure elements.
    2. Handling of NULL pointers.
    3. Breakout from cyclic loops.
    4. Wrong result object (Point with more than one coordinates).
    
    Change-Id: I9badfa248889bc4e2f460b77d6a4be5dd72a962a

commit 6e0d7a9c96598fb86fd0566d081ed0c53ac22d21
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Mon Oct 16 18:04:45 2017 +0530

    Bug#26899370 BINLOG_MIXED_ROW_VERBOSE IS FAILING IN HUDSON RUNS
    
    Post push fix: Fixing pb2 failure
    
    1) Hardcoded master-bin.000001 in the test.
       In some pb2 runs, the default binlog name is binlog.000001.
       So test script is failing at remove_file. Changed now.
    
    2) remove_file should be done before 'RESET MASTER' not after
       RESET MASTER in order to do the real cleanup.
       Otherwise it will again create some mess at the end of the test script.

commit 014f4b89637c735b71b1f1b7dae7185f61348d79
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Mon Oct 16 15:35:37 2017 +0530

    Bug#26152751: INNODB LEAKS MEMORY, PERFORMANCE_SCHEMA
                  FILE_INSTANCES #SQL-IB3129987-252773.IBD
    
    Description:- When a Innodb table is altered numerous times
    memory growth is observed for PFS file instances.
    
    Analysis:- The temporary IBD file instance created during
    ALTER table (using copy algorithm) is not deleted from PFS.
    For every ALTER TABLE operation, a residue IBD file instance
    is created which causes memory growth.
    This problem is not restricted to Innodb tables alone but
    also other SE which uses copy algorithm for ALTER TABLE
    operation. Following is the order of file creation during
    the ALTER operation which uses copy algorithm :-
    
    a) A temporary FRM file (example: temp1.frm) is created and
       the corresponding file instance entry is made.
    b) File t1.frm  is renamed to temp2.frm and the file
       instance entry in PFS is not updated.
    c) File temp1.frm is renamed to t1.frm and the file instance
       entry in PFS is not updated.
    d) File temp2.frm is deleted and the file instance entry is
       not updated since no corresponding entry is found in PFS.
    
    Similar sequence is observed for MYI/MYD/IBD/.. files. PFS
    file instances are not updated during the file rename
    operation which in turn triggers memory growth. A RENAME
    operation performed on a table will also trigger similar
    issue. Even after the rename, FRM/IBD/MYI/MYD... files
    instance names are not updated in the PFS.
    
    Fix:- A new performance schema API "rename_file_close_wait"
    is introduced to handle the rename of a file, which will
    take care of adjusting the hash by name. The new API does
    the following operations:
    - lf_hash_search to find the old instrumented file.
    - lf_hash_delete to remove the old name.
    - fix the file name in PSI_file.
    - lf_hash_insert to add the new name.

commit c089e5b4a7d9b9340a43a96ca59ce68dea6e1c15
Merge: 55690db b956662
Author: Nawaz Nazeer Ahamed <nawaz.nazeer.ahamed@oracle.com>
Date:   Mon Oct 16 15:39:48 2017 +0530

    Upmerge of the 5.5.58 build

commit b956662b3bbbe7fe1bbe782445f21163101e59f3
Merge: 37c9e1c 0bceaef
Author: Nawaz Nazeer Ahamed <nawaz.nazeer.ahamed@oracle.com>
Date:   Mon Oct 16 15:39:01 2017 +0530

    Upmerge of the 5.5.58 build

commit 0bceaef5d9b6fd3e34f862901174d01e35fe7b1a
Merge: 4ac23b2 be111ff
Author: Nawaz Nazeer Ahamed <nawaz.nazeer.ahamed@oracle.com>
Date:   Mon Oct 16 15:21:04 2017 +0530

    Merge branch 'mysql-5.5.58-release' into mysql-5.5

commit 55690db80a3753fccc01d2e7e8edc64a6e1d417b
Merge: 0367562 0441472
Author: Hery Ramilison <hery.ramilison@oracle.com>
Date:   Sun Oct 15 20:32:19 2017 +0200

    Merge branch 'mysql-5.7.20-release' into mysql-5.7

commit 0367562113a876f4d7659ed8d1f691a0361a228f
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Sat Oct 14 00:36:30 2017 +0200

    WL#8838 Compressed and encrypted JSON audit log output
    
    Post-push fix: Audit Log test fixes.

commit 72b7c678ae7deb40e5a085f2a22f2493c393ddfe
Author: Aditya A <aditya.a@oracle.com>
Date:   Fri Oct 13 21:33:43 2017 +0530

    Bug #26191879	FOREIGN KEY CASCADES USE EXCESSIVE MEMORY
    
    PROBLEM
    
    The iterative approach used in the fix of Bug 16244691 was causing
    excessive memory usage when doing a cascade operation owing to the
    fact that for each row being updated we were allocating a update
    node from heap and this memory was not getting released to OS
    even after completion of delete.
    
    FIX
    
    We went back to recursive approach of cascading operation
    instead of iterative approach .

commit 031173d624c2f30c16a1b8542a38c9772e31acf2
Merge: dc1c1e7 37c9e1c
Author: Sergey Glukhov <sergey.glukhov@oracle.com>
Date:   Fri Oct 13 12:45:08 2017 +0300

    Merge branch 'mysql-5.6' into mysql-5.7

commit 37c9e1c3e10e3153114c291ffde0314fb8aa1fb0
Author: Sergey Glukhov <sergey.glukhov@oracle.com>
Date:   Fri Oct 13 10:31:32 2017 +0300

    Bug#26877788 SELECT FROM INFORMATION_SCHEMA.FILES RETURNS NO RECORDS WHEN ORDER BY IS USED
    
    During subquery materialization table list is modified
    so that empty JOIN_TAB table is inserted in the middle of
    table list. It leads to interruption of the loop in
    get_schema_tables_result() function and tables which are
    after empty JOIN_TAB are not processed.
    
    The fix:
    Do not interrupt the loop on empty JOIN_TAB.

commit dc1c1e783274afe8fba35c96a761c23a76b83ac2
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Fri Oct 13 12:52:55 2017 +0530

    Bug#26963839 - SERVER FAILING TO INSTALL ON FEDORA 27 OVER NATIVE MARIADB-CONNECTOR-C-DEVEL.X8
      - Due to changes in packages, add more obsoletes to -devel package.

commit 24b6750b6d3699d454bee000ec9d63ea85a0ed95
Merge: ea5ca94 ab52e8d
Author: Marc Alff <marc.alff@oracle.com>
Date:   Thu Oct 12 21:35:39 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit ab52e8d6b60ed6ac7fbff9338efe09fef18485a6
Author: Marc Alff <marc.alff@oracle.com>
Date:   Thu Oct 12 21:25:17 2017 +0200

    Bug#26021187 OVERFLOW IN DIGEST_ADD_TOKEN
    
    Post push fix,
    test case does not support embedded.

commit ea5ca9432069b20594922f6a2936a98affe6d32d
Merge: cd2b383 ad9492e
Author: Marc Alff <marc.alff@oracle.com>
Date:   Thu Oct 12 17:27:50 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit ad9492e6012d7c2bcc1ce70f10cb3df2112e23f8
Author: Marc Alff <marc.alff@oracle.com>
Date:   Thu Oct 12 11:47:17 2017 +0200

    Bug#26021187 OVERFLOW IN DIGEST_ADD_TOKEN
    MySQL Bug 86209 Overflow in digest_add_token
    
    Before this fix, some queries could cause
    an overflow in the digest code,
    in function digest_add_token().
    
    External contribution from:
    - Laurynas Biveinis
    - Roel van de Paar
    
    Please see the original contribution
    attached to the bug report for:
    - the root cause analysis
    - the test cases
    - the rationale for the fix
    - the full change set comments.

commit cd2b383f14ef061ecfee57a6b31de9eb1177378e
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Thu Oct 12 13:09:15 2017 +0200

    WL#8838 Compressed and encrypted JSON audit log output
    
    Post-push fix: Audit Log plugin is not compiled when OpenSSL is missing.

commit 2b6a57494bd270f04caf9d1df50350761415f4b2
Author: Harin Vadodaria <harin.vadodaria@oracle.com>
Date:   Thu Oct 12 07:39:16 2017 +0200

    WL#8838 Compressed and encrypted JSON audit log output
    
    Post-push fix : Fixed build issue.

commit 2a302f2079364e09c91cc1685545a5f0513b616f
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Oct 12 10:17:35 2017 +0530

    Bug #26881855: GCOL: INCORRECT BEHAVIOR WITH CONSTANT ITEM
    
    Issue:
    ------
    Virtual generated column expression that contain a
    comparision operators between certain datatypes can cause
    problems.
    
    When a table is opened, the expression in the generated
    column is created on the table's memroot. As subsequent
    statements access the same table, convert_constant_item()
    checks the types and under certain conditions chooses to
    re-create one of the objects with the correct type. The new
    object will be created on the statement's memroot and will
    be freed at the end of the statement. This can cause
    problem when subsequent statements access the same table.
    
    Root cause:
    -----------
    Currently Item_int_with_ref class has no field_type and
    defaults to an integer. convert_constant_item() decides to
    re-create the objects based on the field_type even when a
    re-create will only result in a new Item_int_with_ref
    object.
    
    Solution:
    ---------
    Add a field_type to Item_int_with_ref. This will make sure
    that convert_constant_item() can distinguish if a new
    object is actually neccessary.
    
    This fix also addresses Bug #26881924 and Bug #26881874.
    
    This problem was fixed in trunk by Roy's Bug#25221172.

commit 3e535f2d02e161a37603083a243784166ded86db
Author: Marek Szymczak <marek.szymczak@oracle.com>
Date:   Wed Oct 11 17:29:27 2017 +0200

    WL#8838 Compressed and encrypted JSON audit log output
    
    Audit log extension that allows logging into JSON file format. Files of all
    logging formats can be compressed and encrypted. Content of JSON files can be
    accessed using SQL interface.
    
    Reviewed-by:
    ============
    Georgi Kodinov <georgi.kodinov@oracle.com>
    Ramil Kalimullin <ramil.kalimullin@oracle.com>

commit 6f91ffc35430b4f66c1367e362eac951358ad21e
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Wed Oct 11 15:57:15 2017 +0530

    Bug#26899370	BINLOG_MIXED_ROW_VERBOSE IS FAILING IN HUDSON RUNS
    
    Problem: binlog_mixed_row_verbose is failing in hudson runs.
    
    Analysis & Fix:
    Test script binlog_mixed_row_verbose assumes that after executing
    'RESET MASTER', binlog number will start from 1. But it is not happening
    because of the improper cleanup from the previous test
    binlog_mix_gtid_errors.test.  binlog_mix_gtid_errors.test is not doing
    a proper cleanup after it injected error during 'PURGE BINARY LOGS' command.
    
    Fix: Because of the inject error, binlog file is not purged but
    entry is removed from the index file. So delete the file
    manually during the cleanup of test binlog_mix_gtid_errors.test.

commit e13ae14057d029b8da188bb9fe6a0230a06ff204
Author: Joao Gramacho <joao.gramacho@oracle.com>
Date:   Thu Sep 21 12:14:53 2017 +0100

    BUG#25585436 ASSERT `!RLI_DESCRIPTION_EVENT || IS_PARALLEL_EXEC()' AT
                 RPL_RLI.CC:2393
    
    Problem and Analysis
    --------------------
    
    The issues happen when the MTS coordinator is trying to determine which
    worker should handle a new transaction being scheduled that depends on
    a transaction still in progress in a worker because of MTS logical
    clock.
    
    If the worker fails to apply the transaction, instead of being
    notified that there was an error and the logical clock the coordinator
    was waiting will never be reached, the coordinator is assigning the
    transaction to itself before seen that an error happened.
    
    When the MTS coordinator becomes aware of the error, it has already
    scheduled (and applied) some events of the new transaction, messing with
    some of the cleanup logics.
    
    Requesting the MTS coordinator (STOP SLAVE) while it is applying a
    transaction that should be handled by workers are making debug binaries
    to hit the assert.
    
    Fix
    ---
    
    Make schedule_next_event return an error when a dependent transaction
    is aware of the failure of a transaction it was waiting on.

commit 730baca1c0b6ea63fd79aec0536e9e1937837926
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Oct 6 10:02:40 2017 +0200

    Backport libutils.cmake parts of 26562464: ONE DEFINITION RULE VIOLATIONS
    
    This ensures that all externally visible symbols in libmysqlclient.so
    are exported with correct type, rather than as an array of (void*)
    functions.
    
    Also:
     - fix a typo in libmysql/CMakeLists.txt libmysql_link_flag/libmysql_link_flags
     - similar typo in libmysqld/CMakeLists.txt
     - add libmysql_api_test POST_BUILD target, to verify that all symbols are exported.
    
    Change-Id: If92e6a7102004fc929f065e78fd35117ed56ceb0

commit 396f7fbde5ad83f082f9bc888c28263f3636c364
Merge: 14eecf2 5a0a832
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Tue Oct 10 10:46:26 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit 5a0a83243a6aecbdc694fb63b1c0b3832c0111ee
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Wed Sep 13 08:13:49 2017 +0200

    Deb packaging: Add support for Ubuntu 17.10 (Artful)

commit 14eecf28669ca6945522d77c4045856c9d29fd74
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Tue Oct 10 12:14:50 2017 +0530

    Bug #26251621: INCORRECT BEHAVIOR WITH TRIGGER AND GCOL
    
    Post-push fix.
    
    Embedded doesn't have sha2.

commit e30b5a54149933eca6fce1e3ba597a729160471f
Merge: e77b4fc ab8a32b
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Oct 10 07:34:01 2017 +0200

    NULL Merge branch 'mysql-5.6' into mysql-5.7

commit ab8a32bf0659e51e847109d26b90b00b5c14f32b
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Mon Oct 9 16:15:29 2017 +0200

    Backport patch for Bug#16877045 5.6-CLUSTER-7.3 WIN32 SQL_YACC.CC BUILD PROBLEM
    
    Building with ninja shows the problem:
    cmake .. -G Ninja
    ninja
    ninja: error: dependency cycle: sql/GenServerSource -> sql/CMakeFiles/GenServerSource -> sql/sql_builtin.cc -> cmake_order_depends_target_sql -> sql/GenServerSource
    
    Bug#16877045 5.6-CLUSTER-7.3 WIN32 SQL_YACC.CC BUILD PROBLEM
     - Somewhat circular dependency caused by the configured files sql_builtin.cc  being included as
        part of the files to generate in sql/
     - Move sql_builtin.cc out of GEN_SOURCES variable.
     - Create new variable CONF_SOURCES to be used for configured files.
     - Fix minor out of source build problem where the generated  libmysql.ver wasn't found
    
    Also:
    zero-initialize a couple of stack variables, to avoid 'may be uninitialized' warnings

commit e77b4fc263845dbff100b13616124ebe1e599e87
Merge: f8bddba f0c4b9c
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Oct 10 07:21:22 2017 +0200

    NULL Merge branch 'mysql-5.6' into mysql-5.7

commit f0c4b9cbc52b8165382069a701973895d5f90e62
Merge: 9236f35 4ac23b2
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Oct 10 07:20:42 2017 +0200

    NULL Merge branch 'mysql-5.5' into mysql-5.6

commit f8bddba56012094341be27590b27277427ecfa10
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Tue Oct 10 10:33:06 2017 +0530

    Bug #26390658   RENAMING A PARTITIONED TABLE DOES NOT UPDATE
    		MYSQL.INNODB_TABLE_STATS.
    
    PROBLEM
    
    While renaming table that has partitions , table stats don't get updated
    with renamed parition names.
    Renaming of a partitioned table in 5.7 is done as part of normal
    ha_innobase::rename_table and hence after the partitioned tables are
    renamed they are not correctly updated to the stats table since table
    name fed to the rename stats table function is only the original table
    and not the new names of the partition.
    
    FIX
    
    Have made a call to update the table statistics after each rename of
    partitioned table happens.
    
    Reviewed by: bin su<bin.x.su@oracle.com>
    RB: 17444

commit 4ac23b28408209c149a673e6b0c3e264c4da8faa
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Mon Oct 9 16:24:11 2017 +0200

    Backport patch for Bug#16877045 5.6-CLUSTER-7.3 WIN32 SQL_YACC.CC BUILD PROBLEM
    
    Building with ninja shows the problem:
    cmake .. -G Ninja
    ninja
    ninja: error: dependency cycle: sql/GenServerSource -> sql/CMakeFiles/GenServerSource -> sql/sql_builtin.cc -> cmake_order_depends_target_sq
     sql/GenServerSource
    
    Bug#16877045 5.6-CLUSTER-7.3 WIN32 SQL_YACC.CC BUILD PROBLEM
     - Somewhat circular dependency caused by the configured files sql_builtin.cc  being included as
        part of the files to generate in sql/
     - Move sql_builtin.cc out of GEN_SOURCES variable.
     - Create new variable CONF_SOURCES to be used for configured files.

commit 3b5243e4586baeb395d696360aaad4437912152a
Author: Arun Kuruvila <arun.kuruvila@oracle.com>
Date:   Mon Oct 9 15:57:22 2017 +0530

    Bug#26529942: NON-DEFAULT UMASK AND UMASK_DIR HAS NO EFFECT
                  IN MYSQL 5.7
    
    Description: Mysql server is not respecting the values of
    the environment variables, UMASK and UMASK_DIR.
    
    Analysis: As per the mysql documentation, if UMASK is set,
    mysqld uses ($UMASK | 0600) as the mode for file creation.
    Similarly if UMASK_DIR is set, mysqld uses ($UMASK_DIR |
    0700) as the base mode for directory creation. But the
    function "my_init()" is not setting the variables 'my_umask'
    and 'my_umask_dir' correctly if the environment variables,
    UMASK and UMASK_DIR is set.
    
    Fix: Variables, 'my_umask and 'my_umask_dir' are correctly
    set as per the mysql documentation.

commit 58c0edbc70b081c383dd75da6a5f603f794b790d
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Sat Oct 7 07:27:35 2017 +0530

    Bug #26251621: INCORRECT BEHAVIOR WITH TRIGGER AND GCOL
    
    Issue:
    ------
    This problem occurs under the following conditions:
    1) Table t2 has a virtual generated column with a certain
       string function.
    2) Table t1 has an AFTER INSERT trigger on table t2. It
       contains multiple statements, some unrelated to t2.
    3) While inserting into t1, the trigger fails (due to a
       legitimate error).
    4) Try to insert into table t2 and this can result in
       incorrect behavior.
    
    Root cause
    ----------
    Step 3 performs open_table for both tables t1 and t2 (since
    t2 is part of the trigger). Due to an error, this step is
    interrupted and the relevant tables are closed.
    
        if (thd->locked_tables_mode <= LTM_LOCK_TABLES ||
            table->query_id == thd->query_id)
        {
          DBUG_ASSERT(table->file);
          if (table->db_stat)
            table->file->extra(HA_EXTRA_DETACH_CHILDREN);
          table->cleanup_gc_items();
          ....
        }
    
    Here cleanup_gc_items() is called for table t1 because
    query_id is matching. But cleanup_gc_items() is never
    called for t2, since the query_id doesn't match and
    the table is in LTM_PRELOCKED mode.
    
    While closing the tables it is necessary to specifically
    call cleanup_gc_items(). Failure to call this function will
    leave the generated column's expression marked as fixed,
    while the related table object has been closed.
    
    In Step 4 the generated column's expression is considered
    as fixed (even when it isn't) and can result in incorrect
    behavior.
    
    Solution:
    ---------
    Stored Functions (SF) and triggers open all the tables
    involved at the beginning. If refix_gc_items is allowed for
    all the tables at the beginning of an SF and it exits due
    to an error during execution, cleanup_gc_items() for all
    the tables in the subsequent statements will not be called.
    
    refix_gc_items should be called only when table is directly
    used by the statement or substatement (i.e. right before
    the relevant substatement is going to be executed).

commit 573928259c8b181558e4d0d97f8e1837a00a0d2b
Author: Kevin Lewis <kevin.lewis@oracle.com>
Date:   Wed Aug 16 17:05:50 2017 -0700

    WL#10473: InnoDB: Deprecate innodb_undo_tablespaces in 5.7
    
    This setting is a global read-only variable, command line only,
    so it does not have any user interface other than its description.
    It must be mostly deprecated in the documentation.

commit da9eeea6dfe8bd95aec036232b898314ca2dcc97
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Fri Oct 6 19:32:29 2017 +0530

    Bug#25656123	MEMORY LEAK IN MASTER-MASTER GTID REPLICATION
    WITH SYNC_RELAY_LOG_INFO
    
    Post push fix:
    Fixing valgrind pb2 failure issue by
    1) Adjusting the data load
    2) Adding syncs before the asserts checks.

commit c306034e790ca25f4eb3f6ac3e38b97c10d38f6f
Author: Knut Anders Hatlen <knut.hatlen@oracle.com>
Date:   Tue Sep 12 08:57:14 2017 +0200

    Bug#26780307: INCONSISTENT JSON ESCAPING WHEN USING JSON TYPE
    
    The JSON specification says that all control characters from U+0000 to
    U+001F need to be escaped, but when MySQL shows JSON data as text, it
    does not escape the character U+001F.
    
    The fix is to escape all characters less than or equal to 0x1f.
    Previously it only escaped those less than 0x1f.
    
    This is a partial backport of bug#26388690.
    
    Change-Id: Ia9b4e6653057ac817ab0ca2e0f9c1895ad0f637e

commit 345db19f256a5a425db018408b2cc828835c9b92
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Oct 5 14:03:43 2017 +0200

    two trivial zero-initializations, to avoid "may be used unitialized" warnings
    
    Change-Id: I04de95d07e08d7949dcb6e8c347b2f79f780b6c3

commit 6c4e79664ca69c0d5149b6d2ded8f52ce3a55622
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Oct 5 13:25:20 2017 +0200

    Bug#26918439 ROW0SEL.CC:5178:32 ERROR: ISO C++ FORBIDS COMPARISON BETWEEN POINTER AND INTEGE
    
    prebuilt->idx_cond is a pointer, so compare it to NULL rather than false.
    
    Change-Id: Id01bda87fc921d0d595e07f9a1d11151e723618e

commit 3e5dde741a678675c7fdc2edb2e47628c163f02c
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Sep 28 09:57:54 2017 +0200

    Bug#26665217 BUILD WITH WITHOUT_SERVER MAY TRY LINK PLUGIN WITH LIBMYSQLD
    
    The authentication_ldap_sasl_client plugin is a client-side plugin,
    and should not be linked with server-side utilities.
    Add a new argument CLIENT_ONLY to MYSQL_ADD_PLUGIN
    
    Details:
    client/mysql.cc
    Fix some 'may be used uninitialized' warnings.
    
    mysql-test/lib/My/SafeProcess/CMakeLists.txt
    Remove obsolete handling of stlport, this can no longer be used for
    building the server.
    
    mysys/my_conio.c
    mysys/my_windac.c
    mysys/my_winfile.c
    Explicitly #include "my_sys.h" which is needed in order to build.
    my_sys.h is implicitly included by "mysys_priv.h" in a default build,
    but not in a client-build, which does not have HAVE_PSI_INTERFACE defined.
    
    storage/ndb/mcc/CMakeLists.txt
    Skip building for client-only build, as this is part of NDB server.
    
    storage/ndb/src/CMakeLists.txt
    NDBCLIENT_SYSTEM_LIBS can be empty on some platforms, so check
    contents before doing LIST(REMOVE_DUPLICATES)
    
    storage/ndb/src/mgmsrv/ConfigInfo.cpp
    Insert whitespace between text literals and preprocessor tokens.
    Modern compilers will otherwise reject to do the token concatenation.
    
    Change-Id: I0d993b131afe2f4ccbc5b1bedfa3da071d99f6a8

commit 91c5e4343dcee58731ff349a29a30e755ed8f0be
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Oct 3 11:01:46 2017 +0200

    Bug#26612465 BUILDING WITH CMAKE 3.9.0 OR NEWER GIVES DEPRECATION WARNINGS [noclose]
    
    Patch 3 for 5.7
    Backport WiX/MSI fixes to avoid LOCATION property.
    
    Change-Id: Idd7a7fd94d403b4da54e93248f8436c78cb86b36

commit 175c71b9ada003e0a04b8d12dd030c5ab3c58c4b
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Oct 5 08:46:09 2017 +0530

    Bug #26838771: GCOL: INCORRECT BEHAVIOR WITH UPDATE ON FLY
    
    Issue:
    ------
    When an UPDATE statement is using update on the fly
    optimization, generated column related checks are skipped.
    
    Solution:
    ---------
    
    On 5.7:
    Call validate_gc_assignment at an earlier place in
    Query_result_update::initialize_tables.
    
    On 8.0 and trunk:
    Move the call to validate_gc_assignment
    Sql_cmd_update::prepare_inner(). This way no separate
    handling is required for single and multi-table UPDATE.

commit 681a493b546f4f78e3bd7f8f5299ef5812f3df2c
Merge: 6fd2a24 9236f35
Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
Date:   Wed Oct 4 18:29:59 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 9236f352b78365390e720729dfebabdcf9ad0fcc
Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
Date:   Wed Oct 4 10:56:20 2017 +0530

    BUG#21625016: INNODB FULL TEXT CASE SENSITIVE NOT WORKING.
    
    Analysis:
    ========
    
    Full text search on InnoDB tables using binary collation
    for indexed columns does not return case sensitive matches.
    
    For case sensitive matches, it is recommended to use binary
    collation for the indexed columns. During the processing
    of the FTS query, the query string is always converted to
    lower case regardless of the collation type. Hence, case
    insensitive matches were returned during the FTS search.
    
    Fix:
    ===
    Don't convert the query string to lower case during FTS
    search if the collation of the indexed column is of
    binary type.

commit 6fd2a247475cbfa3a1236f3aed7ee6e4e96bfb61
Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
Date:   Tue Oct 3 21:03:51 2017 +0530

    BUG#26626277: BUG IN "INSERT... ON DUPLICATE KEY UPDATE" QUERY
    
    Analysis:
    =========
    The AFTER UPDATE trigger is not invoked for 'INSERT..ON DUPLICATE
    KEY UPDATE', when the value to be updated and the new value
    provided are the same.
    
    The AFTER UPDATE TRIGGER was triggered only if the new and old
    record values were different for 'INSERT..ON DUPLICATE KEY UPDATE'
    handling. Since the values specified in the UPDATE clause
    and the old value were the same, the trigger was never invoked.
    
    Fix:
    ====
    The AFTER UPDATE trigger is invoked even if the values specified
    in the UPDATE clause and the old value are the same.

commit a2559d5becdf71474f72a9ae0bb71f886060b477
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Fri Sep 29 19:23:49 2017 +0530

    Bug #24918678 GCS: IMPROVE ERROR MESSAGE "ERROR ON OPENING ...ERROR= 0000000000000000" ON WINT
    
    Problem: There are two problems reported in the bug.
             a) ERROR= 00000000 in the error message always does not make sense.
             b) In windows platform, error message contains error number instead of detailed error message like in the unix platform.
                Eg: Connection to socket 2032 failed with error 10061
    
    Fix: For a) ERROR=0 is removed from the error message
         For b) In windows, code will use strerror_s now to get the detailed error message and will
                append that to error message.

commit 89a91e70c1077130ba2bf4b674febda8edaeec9f
Author: Knut Anders Hatlen <knut.hatlen@oracle.com>
Date:   Tue Sep 26 12:19:51 2017 +0200

    Bug#26867509: JSON_OBJECT CREATES INVALID JSON CODE
    
    When inserting JSON values from a grouped query into a string column,
    the inserted values could sometimes include the concatenation of all
    the values previously inserted into that column.
    
    The fix is to make Item_copy_json::save_in_field_inner() reset the
    buffer before converting the JSON value to text.
    
    (cherry picked from commit 0178fbc193bfaa0af49136e444ad5b73586d6f83)

commit 9c356e55acc22d02a57e03bd49aa2c8d34fb3ccc
Author: Piotr Obrzut <piotr.obrzut@oracle.com>
Date:   Fri Sep 29 14:35:37 2017 +0200

    Bug #26835724 SERVER 5.7 REDIST CHECK IS FAILING DURING INSTALLATION
    
    Updated registry keys for the redist check.

commit 619fc2f9a610f618e734d9057037915ab9745996
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Thu Sep 7 18:38:03 2017 +0530

    Bug#26618925 XA ROLLBACK WITH WRONG XID WILL BE RECORDED INTO THE BINLOG
    
    Problem: XA ROLLBACK is getting binlogged even when it is failed.
    
    Fix: Error case is checked when XA ROLLBACK is getting binlogged.
    Change-Id: Id45e29090b482546920471186ee93400810208ec

commit 3e30d2616574d69bd2e09a8beac3adf728f5f7ec
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Thu Sep 28 14:22:10 2017 +0200

    Bug#26647168	PostPostpushfixfix
    
    The line excluding README also matched README-test, which
    still needs to be excluded, or the packaging will fail (5.7+)

commit 6f35076f4d2fa1b9a890228ccaf5d8a89b48a14d
Author: Joao Gramacho <joao.gramacho@oracle.com>
Date:   Thu Sep 28 10:07:57 2017 +0100

    BUG#26878022 MYSQLBINLOG: ASSERTION `(OLD_MH->M_KEY == KEY) ||
                 (OLD_MH->M_KEY == 0)' FAILED
    
    Post push fix to ASAN issues.

commit d51f5667e090b87fc5b0817886eac1fd419c9df1
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Thu Sep 28 16:24:05 2017 +0530

    Bug#25656123 MEMORY LEAK IN MASTER-MASTER GTID REPLICATION WITH SYNC_RELAY_LOG_INFO
    
    Problem:  Applier thread is leaking memory when it is updating
    repository tables for skipped events.
    
    Analysis:
    Applier thread does free_root(thd->mem_root,...) after every
    event group execution (in Query_log_event::do_apply_event and
    Row_log_event do_apply_event execution).
    But when Applier thread is skipping/igonring some events,
    free_root is not getting executed.
    
    Rotate_log_events are generated on Slaves with server_id=0
    for all the ignored events, so that the positions in the repository
    is updated properly even for ignored events.
     This kind of Rotate_log_event is generated when
           1) the event is generated on the same host and reached due
           to circular replication (server_id == ::server_id)
          2) the event is from the host which is listed in ignore_server_ids
          3) IO thread is receiving HEARTBEAT event from the master
          4) IO thread is receiving PREVIOUS_GTID_LOG_EVENT from the master.
    
    Slave skips an event if the slave_skip_counter is greater than zero.
    
    Even in case of events are skipped/ignored,  applier thread needs to update
    repository table. While updating repository table, applier thread uses thread's
    memory root .  We have to free thd's mem_root after we update the positions
    in the repository table if the event is a skipped/ignored event.
    Otherwise, imagine a situation where slave_skip_counter is big number
    or Slave is getting only ignored events, slave is updating the repository
    for these events.  All the memory used while these operations are going
    on is never freed unless slave starts executing the events
    (after slave_skip_counter becomes zero or slave gets non-ignorable events).
    
    Fix: After skipped/ignored event updates the repository table,  memory used
    by mem_root is not required any more and can be freed.

commit df3d4a2d1701331c235106d29762947daf794b51
Merge: 260d2e0 c0a5e58
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Thu Sep 28 10:11:29 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit c0a5e58d28ecc768b05e291ca94744bfbfefe424
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Thu Sep 28 10:01:21 2017 +0200

    Bug#26647168	Postpush fix
    
    The debian/rules file listed the default-location license files as skipped.
    This silently overrides their entries in the .install files so no packages
    contains the files, but without the packaging failing.

commit 260d2e08497c9156c044cd0dc44913ac2ed6831a
Author: Daogang Qu <bill.qu@oracle.com>
Date:   Thu Sep 28 10:59:19 2017 +0800

    Bug #26865538 	THE ACK RECEIVER DOES NOT WORK WELL WITH YASSL IN SEMISYNC
    
    YaSSL will read more than one acknowledgement packets together if
    there are more than one acknowledgement packets are ready in the
    system net buffer, but ack_receiver thread just handles the first
    acknowledgement after each poll(). So the following acknowledgement
    may never be handled if there is no new acknowledgement coming.
    Which causes that rpl_semi_sync_group_commit_deadlock.test timeout.
    
    To fix the problem, the ack_receiver thread handles all the
    acknowledgements in the system net buffer after each poll().

commit 60da0231694e5a63e30fb6581047896213de4927
Author: Joao Gramacho <joao.gramacho@oracle.com>
Date:   Wed Sep 27 10:23:39 2017 +0100

    BUG#26878022 MYSQLBINLOG: ASSERTION `(OLD_MH->M_KEY == KEY) || (OLD_MH->M_KEY == 0)' FAILED
    
    Problem and Analysis
    --------------------
    
    The mysqlbinlog client program is trying to reallocate a buffer passing
    a pointer to an advanced position of the buffer instead of the base
    address of the buffer.
    
    This is making P_S and realloc function to not detect correct PSI memory
    key for the buffer.
    
    Fix

commit 31666fc8fee413337a7d37c96d1e7bd2e8592213
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 22 15:22:12 2017 +0200

    Bug#26612465 BUILDING WITH CMAKE 3.9.0 OR NEWER GIVES DEPRECATION WARNINGS [noclose]
    
    Patch 2 for 5.7
    - Increase CMAKE_MINIMUM_REQUIRED VERSION from 2.8.2 to 2.8.9
    - Keep a global list of KNOWN_CONVENIENCE_LIBRARIES
    - Add an ADD_IMPORTED_LIBRARY macro for merging of imported static libraries
      with "convenience" libraries.
    - Remove usage of LOCATION property in DTRACE_INSTRUMENT
    - Remove usage of LOCATION property in GET_DEPENDEND_OS_LIBS
    - Remove usage of LOCATION property when determining what to link into
      the embedded server.
    - Use $<TARGET_FILE:${LIB}> rather than LOCATION for the mysqld
      PRE_LINK command on windows.
    - Remove usage of LOCATION when creating ndbclient_so (shared client
      library for NDBCLUSTER)
    
    DTRACE and EMBEDDED have new code, everything else is backported from 8.0
    
    Change-Id: I5c6b5c722c8cedb0a521f3a47b6fa676efa938a2

commit 1ab422baafdf4741d5899e6a99b91be96c916638
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Wed Sep 27 12:50:09 2017 +0200

    Problem: some gis tests may fail in optimized mode with embedded server.
    
    Fix: Backport from patch for:
        Bug#25148549 REVISIT COMPILER FLAGS FOR ORACLE DEVELOPER STUDIO
    
    This reduces optimization level from -xO3 to -xO2 for one source file.
    
    Change-Id: I93a440764d422651ff85a69c87c168300c7ff051

commit 45122ba31d21da79c42718e9e3e9d1830d9d0485
Merge: 10e8972 36d6261
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Wed Sep 27 10:20:07 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit 10e8972daac6c58e4c3143d34cf7728e26ed4e93
Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
Date:   Wed Sep 27 12:50:59 2017 +0530

    Bug#24812958: REPLICATION ERROR OCCURS, USE XA
    TRANSACTION(ONE PHASE)
    
    Problem:
    =======
    Use XA transaction and execute DELETE or UPDATE statement.
    If `0 rows affected`, replication error occurs. But if more
    than 1 rows affected, replication error does not occur. And
    if use `XA PREPARE` (not use `ONE PHASE`), replication error
    doesn't occur.
    
    Analysis:
    =========
    The reported issue is reproducible in 'STATEMENT' based
    replication format.  In case of 'ROW' based replication if
    the DML operation results in '0 rows affected' then the
    query is not written to the binary log. Hence the scope of
    the issue is limited to 'STATEMENT' mode.
    
    Behavior of existing code:-
    =========================
    Transactional DML operations make use of two phase commit
    protocol. First phase is 'prepare' phase and the second
    phase is 'commit'.
    
    tc_log->prepare() - Prepare phase
    tc_log->commit() - Commit phase
    
    During 'Prepare Phase', if there is an XA transaction, which
    is in 'IDLE' state, then the transaction is written to the
    binary log. 'XA END' operation will set the XA_STATE to
    'IDLE'. 'XA PREPARE' and 'XA COMMIT ONE PHASE' commands will
    have their prior XA state as 'IDLE'.
    
    Sample binlog content for XA PREPARE:-
    
    XA END X'786174657374',X'',1
    XA PREPARE X'786174657374',X'',1
    
    Sample binlog context for XA COMMIT ONE PHASE:-
    
    XA END X'786174657374',X'',1
    #170904 server id 1 ...  XA PREPARE X'786174657374',X'',1
    XA COMMIT X'786174657374',X''
    
    In order to make 'XA COMMIT ONE PHASE' to follow the 'two
    phase commit' protocol the current XA_STATE of 'XA COMMIT
    ONE PHASE' is changed from 'IDLE' to 'PREPARED' as
    intermediate, right after the prepare phase is done.
    
    All these are required to enforce that no storage engine
    commit operation is done during prepare phase.
    
    During commit phase i.e during tc_log->commit() execution,
    storage engine specific commit operation is performed.
    
    Bug Scenario:-
    ============
    There are no rows that are affected, hence two phase commit
    operation will not be carried out. Prepare phase gets
    skipped for 'XA COMMIT ONE PHASE' operation.
    tc_log->prepare() is not executed.
    
    As per the above 'XA COMMIT ONE PHASE' rule XA_STATE is set
    to intermediate 'PREPARED' state. tc_log->commit() is
    invoked.
    
    During commit operation the code finds that the XA_STATE is
    'PREPARED' and doesn't log anything. A plain 'COMMIT'
    operation is written to the binary log.
    
    Binlog output in Bug scenario:
    ==============================
    SET TIMESTAMP=1504515863/*!*/;
    XA START X'786174657374',X'',1
    /*!*/;
    # at 943
    #170904 14:34:23 server id 1  end_log_pos 1050 CRC32
    0xf66ec1b4   Query thread_id=8 exec_time=0 error_code=0 SET
    TIMESTAMP=1504515863/*!*/;
    DELETE FROM xatest where id=1
    /*!*/;
    # at 1050
    #170904 14:34:23 server id 1  end_log_pos 1125 CRC32
    0xd1c7b760   Query thread_id=8 exec_time=0 error_code=0
    SET TIMESTAMP=1504515863/*!*/;
    COMMIT
    
    i.e 'XA START' is followed by plain 'COMMIT' in binary log.
    
    Ideally the binlog should be like this:
    =======================================
    SET TIMESTAMP=1504515056/*!*/;
    DELETE FROM xatest where id=1
    /*!*/;
    # at 1336
    #170904 14:20:56 server id 1  end_log_pos 1433 CRC32
    0x058559ec   Query thread_id=8 exec_time=0 error_code=0
    SET TIMESTAMP=1504515056/*!*/;
    XA END X'786174657374',X'',1
    /*!*/;
    # at 1433
    #170904 server id 1 ... XA PREPARE X'786174657374',X'',1
    XA COMMIT X'786174657374',X'',1 ONE PHASE
    
    When the slave server finds plain 'COMMIT' operation for an
    on going 'ACTIVE' XA transaction it throws the above error.
    
    Fix:
    ===
    Make use of the 'PREPARE' state of 'XA COMMIT ONE PHASE'
    operation to identify that the current phase of 'two phase
    commit protocol' as 'commit' phase and check if the XA
    COMMIT ONE PHASE' operation has already written its contents
    to binlog or not. If it has not written anything during
    'prepare phase' write the appropriate END statements in the
    binary log.

commit ef9d0d52890be4b3758af95aee859257838a9bda
Author: Jaideep Karande <jaideep.karande@oracle.com>
Date:   Tue Sep 26 06:42:53 2017 +0200

    BUG#25404162: GR CHECKS WRONG FOREIGN TABLES CASCADES
    
    Description:
    When group_replication_enforce_update_everywhere_checks=ON the Group
    Replication plugin checks if there are foreign keys cascades and disallows
    updates to such tables.
    However SET NULL operations are not checked, which can cause data
    in-consistency.
    
    Resolution:
    Block operations on child table if it has SET NULL.

commit 5bd7ad008480667dfb5cae6de7efc6b40473e829
Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com>
Date:   Mon Sep 25 18:56:33 2017 +0530

    Revert "Bug #25076416   VIRTUAL COLUMN IS NOT CONSIDERED WHILE"
    
    This reverts commit f5f08d016519dfaf9f7e56eb9243be4e00462cd1.

commit f5f08d016519dfaf9f7e56eb9243be4e00462cd1
Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com>
Date:   Mon Sep 25 17:04:25 2017 +0530

    Bug #25076416   VIRTUAL COLUMN IS NOT CONSIDERED WHILE
                    FETCHING THE AUTOINC COLUMN
    
    Analysis:
    
    While fetching the auto-increment value from the table, InnoDB
    tries to find the index which has the first column as autoincrement column.
    While searching the index, InnoDB uses column offset of the table
    to fetch the auto_increment column but virtual column is not considered
    while searching the column and it leads to wrong column.
    
    Fix:
    
    Consider the virtual column of the table while fetching the
    auto_increment column from the table using column offset.
    
    Reviewed-by: Jimmy Yang<Jimmy.yang@oracle.com>
    RB: 16281

commit b35166a83661227ed237bb70c31354d2f1cd4e43
Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
Date:   Mon Sep 25 12:56:19 2017 +0530

    Bug#26324852: THERE IS NO LOCAL IP ADDRESS MATCHING THE ONE
    CONFIGURED FOR THE LOCAL NODE
    
    Problem:
    ========
    We bind many virtual IPs in one machine, it seems that group
    replication can not recognize all of the virtual IPs that we
    bind.
    
    Execution of "start group_replication" will fail and error
    log shows :
    
    '[GCS] There is no local IP address matching the one
    configured for the local node (10.202.44.222:24901).
    
    Analysis:
    =========
    No matter how many virtual IPs that users configure, MySQL
    group replication will be able to fetch only the first 12
    IPs among them. The reason for that is, within the code an
    initial buffer of size 512 bytes is allocated to hold list
    of network interfaces. Each interface is represented by
    'struct ifreq'. The size of 'struct ifreq'= 40 bytes.
    
    Hence the buffer that was provided by the group replication
    layer can hold a maximum of 12 interfaces.
    
    i.e (40 *12)=480 < 512.
    
    Documented behavior of 'ioctnl':
    ================================
    'ioctnl' function is used to retrieve the list of interface
    addresses. The user will be passing a buffer and the kernel
    fills the ifreqs with all current L3 interface addresses
    that are running. Along with this the kernel also returns
    actual length in ifc_len. If ifc_len is equal to the
    original length the buffer probably has overflowed and user
    should retry with a bigger buffer to get all addresses.
    
    In order to do an appropriate overflow check, the ifc_len
    should be a multiple of struct ifreq size. Since the
    initialized value '512' is not a multiple the code will
    return earlier after reading the first 12 IP addresses.
    
    Fix:
    ===
    Changed the initial buffer size to be a multiple of struct
    ifreq size.

commit 2811fd3ee6c3d1d8855c19324ab1ca2aacd619c8
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Sep 19 18:43:11 2017 +0200

    Bug#26612465 BUILDING WITH CMAKE 3.9.0 OR NEWER GIVES DEPRECATION WARNINGS [noclose]
    
    Patch 1 for 5.7
    Configure plugins and storage engines after convenience libraries.
    
    This is a prerequisite for merging "convenience libraries" properly
    for NDBCLUSTER. Prior to this, mysys_ssl was treated as an "unknown
    system library". With this patch it is treated as a known "convenience
    library".
    
    Change-Id: I6f0d88275b41bddb3839bce58179a553cc29e430

commit d6d46a76f58229efd7dea7633068c67b148b89ed
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Sep 19 18:30:45 2017 +0200

    Bug#26825211 BACKPORT FIX FOR #25643811 TO 5.7
    
    Backport relevant parts of patch for:
        Bug #25643811: MYSQL DOES NOT COMPILE WITH GCC 7
    
    Change-Id: Iafc7bc70b3621e12b484694ff927fb15e21ac5d2

commit 5bc2cf2976ad62f069582aaaa3044f1c872e5eae
Author: Bharathy Satish <Bharathy.x.Satish@oracle.com>
Date:   Fri Sep 22 15:22:28 2017 +0530

    Bug #26694675: MYSQLPUMP SPAMS WITH SQL_NO_CACHE DEPRECATION WARNINGS
    
    Problem: mysqlpump reports deprecated warnings when dumping table data.
    This is because mysqlpump executes SHOW WARNINGS; after running every
    sql query.
    
    Fix: Just by encapsulating SQL_NO_CACHE inside version comment will not
    solve this issue. ex: SELECT /*!50708 SQL_NO_CACHE */ ...
    Even with version comments server reports a warning. mysqlpump executes
    SHOW WARNINGS and reports the same warning message.
    Fix is to remove SQL_NO_CACHE from the underlying SELECT query.

commit 2769d3ded8f5a4cd59ad7d30abc950d7681898df
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Fri Sep 22 12:10:12 2017 +0530

    Bug#25813089 - CREATE USER IF NOT EXISTS SHOULD ALWAYS BE
                   WRITTEN TO THE BINLOGS
    
    Post push fix to address the test script failure.

commit d0901127f0fc7d92c1c1d81b05bdd1f91952bddf
Author: Ramil Kalimullin <ramil.kalimullin@oracle.com>
Date:   Thu Sep 21 12:37:03 2017 +0400

    Bug #25077223: LIBMYSQLCLIENT CRASH CALLING MYSQL_PING() AFTER CONNECTION CLOSED
    
    Wrong cli_safe_read_with_ok()'s result check fixed for CLIENT_PROTOCOL_TRACING.

commit 6ff0ab686e90af5446789d017890dda79f355db7
Author: Lukasz Kotula <lukasz.kotula@oracle.com>
Date:   Tue Sep 5 17:04:15 2017 +0200

    Bug#26695342 - CONNECTOR/J 8.0 PACKAGE CHANGED NAME FROM "MYSQLX" TO "X"
    
    Description
    ===========
    J/Connector requires that X messages are generated by protobuf
    to package: "com.mysql.cj.x.protobuf".
    
    Change-Id: I8930f4db5a0fedd2c8e41f23c179577907aacc05

commit 8ef18d942ce57600e714d58fb757e325738baaa1
Author: Lukasz Kotula <lukasz.kotula@oracle.com>
Date:   Tue Sep 5 17:20:22 2017 +0200

    Bug#26695360 - X PROTOCOL DOCUMENTATION REFERES TO MYSQL SERVERS DOCUMENTATION 5.0 OR 5.5
    
    Description
    ===========
    "proto" files point to documentation of MySQL Server 5.0 and 5.5.
    
    Fix
    ===
    Links were corrected to point to MySQL Servers 5.7 documentation.
    
    Change-Id: I205f551814d557ac19fd14aac38553a616033259

commit d43745ca1fbb68992df7043e1615697121e75b0a
Author: Steinar H. Gunderson <steinar.gunderson@oracle.com>
Date:   Wed Sep 20 11:04:03 2017 +0200

    Add a .gitreview file to the 5.7 branch.
    
    Change-Id: I2bebd00952f9ec9c61f83aae013e74b487ee513c

commit 40a65567a0b1b42ed334c9b79a1ed687021f1cfc
Author: Lukasz Kotula <lukasz.kotula@oracle.com>
Date:   Tue Sep 5 16:23:16 2017 +0200

    Bug#26695316 - MYSQLXTEST-HELP, WRONG TEXT ALIGNMENT (mysql-5.7)
    
    Description
    ===========
    "--help" and "--help-commands" arguments doesn't print the
    user informations correctly.
    
    Fix
    ===
    Added line breaks to correct the information layout. Added
    a MTR test to confirm any change of the output.
    
    Change-Id: Ieac8eb857ad02e80bdb0e73abf66f6bc44829705
    RB: 17297
    Reviewed-by: Grzegorz Szwarc <grzegorz.szwarc@oracle.com>

commit 0a1147e2e65b4b8a8d7949fa9b4588588d3e251b
Author: Jimmy Yang <jimmy.yang@oracle.com>
Date:   Wed Sep 20 01:38:26 2017 +0200

    Bug #25729649 LOCK0LOCK.CC:NNN:ADD_POSITION != __NULL
    
    Reviewed-by: Sunny Bains <sunny.bains@oracle.com>

commit 90b07e538f8e6c95305250b6c5c56295751a717a
Author: Nuno Carvalho <nuno.carvalho@oracle.com>
Date:   Thu Sep 14 18:51:48 2017 +0200

    BUG#26802395: ASSERT `SERVER_ENGINE_INITIALIZED()' AT DELAYED_PLUGIN_INITIALIZATION.CC:167
    
    During server initialization, with --initialize or
    --initialize-insecure, replication applier infrastructure is not
    initialized, as such Group Replication cannot be started on server
    boot.
    
    The above condition was not being properly considered, which led to
    a assertion failed.
    To avoid that issue, now the condition is properly considered and
    Group Replication is not started, which is intended since the server
    is being initialized.

commit 36d6261f3cfd2541880dfd33e2386126c621e2fc
Author: Lars Tangvald <lars.tangvald@oracle.com>
Date:   Thu Aug 17 12:37:31 2017 +0200

    Bug#26647168	DEB PACKAGING: COPY LICENSE/README IN D/INSTALL INSTEAD OF D/RULES
    
    To include the license and readme files in all packages, they must be in
    separate locations for each package, since apt does not allow multiple
    packages to share the same file. We've used the rules file to make
    copies of the files for each package, but it's cleaner to do it in
    the install file for each package

commit 27bc5ed76cc7dfa91c3e55dd37cda868f623e8a8
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Mon Sep 18 16:29:06 2017 +0200

    Bug#26022865 BUILD FOR WINDOWS-S12-64BIT,ADVANCED IS FAILING ON PB2 MYSQL-5.6
    
    Remove cmake code for signing executables.
    Automatic signing has always failed anyways.
    It should be done manually as part of the release process.
    
    Also: remove unuse cmake code:
    INSTALL_MANPAGE INSTALL_SYMLINK GET_TARGET_NAME

commit 065ed113dfa3a9fda2bfb0338d1731a8b20a86fa
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Mon Sep 18 18:23:52 2017 +0530

    Bug #26731025	INNODB PARTITION TABLE WILL LOCK INTO THE NEAR RECORD
    		AS A CONDITION IN THE USE
    
    PROBLEM
    =======
    During a multiple client scenario:
    Multiple updates from diffrent sessions end up in lock wait timeout
    issue.
    The lock wait timeout is occuring because when session 1 tries to update
    a record and takes a record lock on it and other session tries doing
    another update on another record, it starts to wait for lock to be
    released by session 1 when it tries reading the next record in range.
    Session 2 while fetching the next record calls on index_next that sets
    the match mode to be 0 instead of ROW_SEL_EXACT or 1 which would
    correctly set the lock type to be GAP LOCK and avoid the uneccessary
    wait it would have to do otherwise in the case when it can't have
    explict lock on record.
    
    FIX
    ====
    Its a regression from 5.7 onwards, in 5.6 the issue doesn't exist.
    Have made the call to index_next_same instead of index_next only in the
    case when scan type is PARTITION READ RANGE and the bool value of
    is_next_same is set to true, so that match mode is correctly set and
    LOCK_GAP gets set avoiding the uneccessary wait.
    
    Reviewed by: Debarun Banerjee <debarun.banerjee@oracle.com>
    RB: 17380

commit e95573e6552d5996a2defb9cd946c118023f2899
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Fri Sep 8 20:29:22 2017 +0530

    Bug#26027024	SLAVE_COMPRESSED_PROTOCOL DOESN'T WORK WITH
    SEMI-SYNC REPLICATION IN MYSQL-5.7
    
    Analysis: In mysql-5.6, dump thread (the thread that is created
    on Master after Slave requested for a binlog dump) is also used
    to receive acknowledgements from the Slave and act on them accordingly.
    For performance reasons, a special thread called Ack Receiver thread
    is added in mysql-5.7 Semi synchronous replication plugin.
    This thread does not have special handling to receive acknowledgements
    if Slave has enabled compression in the protocol. Hence Master is
    unable to handle any slave if Slave_compressed_protocol is enabled
    on it.
    
    Fix: Enable compress flag on the communication channels if the Slave
    has Slave_compressed_protocol ON.

commit 9e404a1c7ac9606fc3c103d9eea480508a5db72a
Author: Shivashankar Nagaraj <shiva.y.shankar@oracle.com>
Date:   Mon Sep 18 12:21:25 2017 +0530

    BUG#26495791: CONTRIBUTION: EXPAND TEST SUITE TO INCLUDE CRC32 TESTS
    
    Post-push fix for a pushbuild failure.

commit 077b326b6409f315eecbb2ead8ad510cb99e95f9
Merge: 5bf8eee f65d90d
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Mon Sep 18 09:04:40 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit f65d90d1faaef82218fe00a41a068236854eb015
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Mon Sep 18 09:04:05 2017 +0530

    Bug #25989915: LOOSE INDEX SCANS RETURNING WRONG RESULT
    
    Post-push fix for embedded test in 5.6.
    
    Explicitly mention Innodb in DDL. Embedded test picks
    MYISAM.

commit 5bf8eee17bcc0d727f2b13e098b2d80cf4e2d568
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Mon Sep 18 08:48:31 2017 +0530

    Bug #26627181: WRONG RESULT WITH LEFT JOIN + DERIVED TABLES
    
    Issue:
    ------
    This bug can occur when:
    - there is an outer join.
    - an Item_direct_view_ref object references a const value
      from an inner table.
    
    The problem occurs on latest 5.7.20 but not on 8.0. The
    reason is that the fix for Bug#26432173 was only a
    partial fix in 5.7 (i.e. fixed only for temp table cases)
    but a more general one in 8.0.
    
    Solution:
    ---------
    A new Item_direct_view_ref::used_tables() function is
    created to take into account whether an Item in a
    derived table / view is part of an inner table of an outer
    join.
    
    The new tests have been added to 8.0 and trunk.

commit 823c1601c3216d58930b12bada82371ffb31968b
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Sep 14 12:35:34 2017 +0200

    dos2unix cmake/mysql_add_executable.cmake

commit 32a8550fc7eb079fbdbae58666fe311a10935f00
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Sep 14 12:34:55 2017 +0200

    Log cmake message if we have found openssl .dll libraries on windows.

commit 9100c61e7c1c9ecd549057df4394660bd4e4c634
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Sep 14 12:33:25 2017 +0200

    Backport some additional GenError dependencies

commit fde1dd03c1b9fc9c008b8eedce0cb8544977457e
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Fri Sep 15 00:35:40 2017 +0200

    Bug#26732229 PERFORMANCE SCHEMA STATEMENT TABLES SHOULD DISPLAY REWRITTEN QUERY TEXT
    
    Use rewritten query text when available.
    
    Updates:
    - Fix 5.7 build break Windows + MacOS
    - Re-record query_rewrite_plugins.performance_schema

commit 3545adceee85445e6d2ca7c803463cbfbafadb73
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Thu Sep 14 14:41:25 2017 -0500

    Bug#26732229 PERFORMANCE SCHEMA STATEMENT TABLES SHOULD DISPLAY REWRITTEN QUERY TEXT
    
    Use rewritten query text when available.

commit 83ec5808e7e535a5c7e8b7dedfab97a502491b67
Merge: 2d617a1 f2e681c
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Thu Sep 14 22:54:24 2017 +0200

    Null-merge from 5.6

commit f2e681cc8ead137f0b4c6ed3a75899387d210643
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Thu Sep 14 22:44:20 2017 +0200

    Bug#26732229 PERFORMANCE SCHEMA STATEMENT TABLES SHOULD DISPLAY REWRITTEN QUERY TEXT
    
    Use rewritten query text when available -- updated MTR, no embedded

commit 2d617a1cbfd492f9ebb5446d77423c23d9b6ac2d
Merge: 63dfebd 22113d1
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Thu Sep 14 19:48:37 2017 +0200

    Null-merge from 5.6

commit 22113d130f7f3192254cb3f2cfb83a857c795e65
Author: Christopher Powers <chris.powers@oracle.com>
Date:   Wed Sep 13 18:27:09 2017 -0500

    Bug#26732229 PERFORMANCE SCHEMA STATEMENT TABLES SHOULD DISPLAY REWRITTEN QUERY TEXT
    
    Use rewritten query text when available.

commit 63dfebd2a3d64d6c5280b4495f612cb3556ac6d2
Author: Shivashankar Nagaraj <shiva.y.shankar@oracle.com>
Date:   Thu Sep 14 16:19:57 2017 +0530

    BUG#26495791: CONTRIBUTION: EXPAND TEST SUITE TO INCLUDE CRC32 TESTS
    
    Description:
    This bug tracks a contribution by Daniel Black (Github user: grooverdan) as
    described in http://github.com/mysql/mysql-server/pull/157
    
    Apart from external contribution I have added few more additional testcases
    for CRC32() function, which are given below.
    
    New Testcases added:
      ->Verify the crc value of various numeric and string data types(int,
          double, blob, text, json, enum, set)
      ->Verify the crc value when expressions having comparison_operators
          and logical_operators
      ->Verify the crc value for the expression having string_functions,
          arithmetic_functions, json_functions
      ->Verify the crc value for the expression having Geometry functions
          like POINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON
      ->Verify the crc value generated from stored procedures, functions,
          triggers, prepare statement, views.
    
    Fix:
    Patch based on contribution by Daniel Black (Github user: grooverdan)
    
    Reviewed-by: Anitha Gopi anitha.gopi@oracle.com
    Reviewed-by: Srikanth B R srikanth.b.r@oracle.com
    
    RB: 17294

commit 7373d20d8a45abd20b0c1252cde2dbb978338da5
Merge: 7b433c5 039ee8f
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Sep 14 12:26:26 2017 +0200

    NULL Merge branch 'mysql-5.6' into mysql-5.7

commit 733577633b7eec78a51b70636568d735c187e96c
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Wed Sep 13 12:17:36 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6
    
    (cherry picked from commit 148b35d25800dfac8855262967eb76408126649b)

commit 3fa3a31fc8fdbee002f32991f16ac6768c70c9c0
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Fri Sep 8 18:30:57 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6
    
    (cherry picked from commit c25e5c808ba2957db29a319acd4751bf74864584)

commit be111ffd32b6aa1042a236e34f6775d6f9854b7a
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Wed Sep 13 12:14:06 2017 +0530

    Bug#26372491 - RCE THROUGH THE MISHANDLE OF BACKSLASH
    
    Post push fix to address test script failure.
    
    (cherry picked from commit 461eef45301fe6c725b0add5a6f28057a3d67e21)

commit 97fd754a7c46e74abd2d19c7f71c6419381989e9
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Fri Sep 8 18:29:07 2017 +0530

    Bug#26372491 - RCE THROUGH THE MISHANDLE OF BACKSLASH
    
    DESCRIPTION:
    ===========
    The bug is related to incorrect parsing of SQL queries
    when typed in on the CLI. The incorrect parsing can
    result in unexpected results.
    
    ANALYSIS:
    ========
    The scenarios mainly happens for identifier names
    with a typical combination of backslashes and backticks.
    The incorrect parsing can either result in executing
    additional queries or can result in query truncation.
    This can impact mysqldump as well.
    
    FIX:
    ===
    The fix makes sure that such identifier names are
    correctly parsed and a proper query is sent to the
    server for execution.
    
    (cherry picked from commit 31a372aa1c2b93dc75267d1f05a7f7fca6080dc0)

commit 039ee8f6660142dff62f5341ca0a83ad36b6315f
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Wed Sep 13 09:52:48 2017 +0200

    dos2unix cmake/mysql_add_executable.cmake

commit 51ee85ffbd79d96bb36ac4278f73566a5ef88477
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Tue Sep 12 12:28:35 2017 +0200

    Log cmake message if we have found openssl .dll libraries on windows.

commit cd6eb65dbc7432c2e7c33a28120a42360e0fa252
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 8 17:44:34 2017 +0200

    Backport some additional GenError dependencies

commit 7b433c573694dbde070359db7d26cb17749cbea1
Merge: 07a82d0 148b35d
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Wed Sep 13 12:20:39 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 148b35d25800dfac8855262967eb76408126649b
Merge: 3844dea 461eef4
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Wed Sep 13 12:17:36 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 461eef45301fe6c725b0add5a6f28057a3d67e21
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Wed Sep 13 12:14:06 2017 +0530

    Bug#26372491 - RCE THROUGH THE MISHANDLE OF BACKSLASH
    
    Post push fix to address test script failure.

commit 07a82d02461a8104ea409d0c72ab0f6ec04081eb
Merge: 1d6eb4e 3844dea
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Mon Sep 11 10:01:29 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 3844dea192d33ddb5a99e96fd202b942141cf8d1
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Mon Sep 11 10:00:04 2017 +0530

    Bug #25989915: LOOSE INDEX SCANS RETURNING WRONG RESULT
    
    Problem:
    --------
    This problem occurs under the following conditions:
    1) Table has a unique index.
    2) Query checks whether a loose index scan is applicable to
    this query. And mistakenly chooses it despite unique
    indexes having no index extensions.
    
    This is can give wrong results. A similar problem also
    exists in Bug #26532061.
    
    Solution:
    ---------
    Index extensions are not applicable to UNIQUE indexes for
    loose index scans.
    
    So Field::is_part_of_actual_key should also consider the
    HA_NOSAME flag.

commit 1d6eb4e6838554d284febb8410c75839c6bd9db9
Merge: 49e9ed3 7fb48ac
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 8 17:08:09 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit 7fb48acd68ce7d39b33745f35e46e35bce03b641
Merge: 3e3b658 31c2744
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 8 17:07:36 2017 +0200

    NULL merge from 5.5

commit 31c2744d300e3935821adbc58667f323067b71c9
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 8 16:47:44 2017 +0200

    Bug#23072792 MYSQL_GROUP_SUFFIX DOES NOT WORK
    
    Reintroduce environment variable MYSQL_GROUP_SUFFIX to be used as
    --default-group-suffix value if not already set.
    
    The environment variable was accidentally renamed to DEFAULT_GROUP_SUFFIX_ENV
    in MySQL server 5.5.

commit 49e9ed31e58e368f60c76ad982fff9e321dc5ef8
Merge: 06db648 3e3b658
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 8 16:16:06 2017 +0200

    Merge branch 'mysql-5.6' into mysql-5.7

commit 3e3b658595377e7b610725da2b0a2564a47c5df1
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Fri Sep 8 14:58:17 2017 +0200

    Bug#23072792 MYSQL_GROUP_SUFFIX DOES NOT WORK
    
    Reintroduce environment variable MYSQL_GROUP_SUFFIX to be used as
    --default-group-suffix value if not already set.
    
    The environment variable was accidentally renamed to DEFAULT_GROUP_SUFFIX_ENV
    in MySQL server 5.5.

commit 06db648de3b080bae518a083dd122ea10b058c04
Merge: 3b9a2e3 c25e5c8
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Fri Sep 8 18:32:58 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit c25e5c808ba2957db29a319acd4751bf74864584
Merge: a41e199 31a372a
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Fri Sep 8 18:30:57 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 31a372aa1c2b93dc75267d1f05a7f7fca6080dc0
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Fri Sep 8 18:29:07 2017 +0530

    Bug#26372491 - RCE THROUGH THE MISHANDLE OF BACKSLASH
    
    DESCRIPTION:
    ===========
    The bug is related to incorrect parsing of SQL queries
    when typed in on the CLI. The incorrect parsing can
    result in unexpected results.
    
    ANALYSIS:
    ========
    The scenarios mainly happens for identifier names
    with a typical combination of backslashes and backticks.
    The incorrect parsing can either result in executing
    additional queries or can result in query truncation.
    This can impact mysqldump as well.
    
    FIX:
    ===
    The fix makes sure that such identifier names are
    correctly parsed and a proper query is sent to the
    server for execution.

commit 3b9a2e3a62fa70db704e88428a04428184ccba5b
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Fri Sep 8 06:02:22 2017 +0530

    Bug #26734162: INCORRECT BEHAVIOR WITH INSERT OF BLOB +
                   ON DUPLICATE KEY UPDATE
    
    Issue:
    ------
    This problem can occur when :
    1) A blob value is updated in
       INSERT ON DUPLICATE KEY UPDATE statement. This statement
       fails because of a constraint violation.
    2) A statement similar to the one above, but for which the
       execution is successful.
    
    This can result in unexpected behavior.
    
    Root cause:
    -----------
    The fix for Bug #25361251 moved clear_values_map() out of
    lex_end() which is called at the end of every statement and
    into write_record(). Since the first statement doesn't
    reach as far as write_record() due to an error, the
    structures created to hold blob values aren't cleared.
    
    Solution:
    ---------
    Add a call to clear_values_map() at the end
    Sql_cmd_insert::mysql_insert().

commit 59c158713596ffa9a796c6462e9951dd05282246
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date:   Thu Sep 7 17:45:57 2017 +0530

    Revert "Bug#26589008 SYNC_BINLOG=0 SHOULD IGNORE BINLOG_GROUP_COMMIT_SYNC_DELAY"
    
    This reverts commit 5654f5ec294f3d8ea087029ba9b47ad3eb2835b3.

commit 1d4a320a8635848b30b5d5d68fa9a3e630f7f326
Merge: ab8314c a41e199
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Thu Sep 7 16:24:52 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit a41e199a28d01f720ea3049bf0246fde1ad95230
Merge: 54bf407 4fcf080
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Thu Sep 7 16:15:30 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 4fcf0801332bdd5eec441790d46ab6136e1e0326
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Thu Sep 7 16:11:15 2017 +0530

    Bug#26742748 - 8.0 DOCKER IMAGE RPM GENERATES 5.7 DOC URL IN /ETC/MY.CNF

commit ab8314cdf9412af410c2dcd5769f0220ecde2093
Author: Marc Alff <marc.alff@oracle.com>
Date:   Thu Sep 7 10:50:56 2017 +0200

    WL#10985 DEPRECATE PERFORMANCE_SCHEMA.SETUP_TIMERS IN 5.7

commit fa21a1a71f3477e2d8544ae2bf9032e926f46de6
Merge: f5dc49f 54bf407
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Wed Sep 6 22:45:39 2017 +0530

    Null-merge from mysql-5.6

commit 54bf407b1b3e7ebbb34f7ed3af2639227bf46e3f
Merge: 582e84f 63e2b43
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Wed Sep 6 22:44:04 2017 +0530

    Null-merge from mysql-5.5

commit 63e2b430844662c4860c40a40aff811672f5333a
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Wed Sep 6 17:48:42 2017 +0530

    Bug#26747305 - HOSTNAME: COMMAND NOT FOUND WHILE STARTING CONTAINER WITH 5.5 DOCKER IMAGE
       - Add hostname package for docker rpm builds.

commit f5dc49f722fbfa7e4113685b7fa98e6eb3c395fc
Merge: 24eae6b 582e84f
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Wed Sep 6 06:47:34 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 582e84f98704c179a26254146a7c2053397cc827
Merge: 3483011 15b72c6
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Wed Sep 6 06:46:28 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 15b72c667722932310cf9b08ceff4440143ea8b0
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Wed Sep 6 06:45:50 2017 +0530

    Bug #26704451: INCORRECT BEHAVIOR WITH USE OF CERTAIN
                   CHARSETS AND SHA2
    
    Missed pushing to 5.5.

commit 24eae6b306ad9cca1af51b92e2095f306c2b9c82
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Fri Sep 1 15:24:08 2017 +0530

    Bug #25153670: INCORRECT BEHAVIOR WITH MULTI-TABLE UPDATE
                   USING TEMPORARY TABLE
    
    Issue:
    ------
    This problem occurs under the following conditions:
    1) When an UPDATE requires a temporary table.
    2) This temporary table is then created on INNODB.
    3) The size of the target table's primary key is greater
       than 1024.
    
    Root cause:
    -----------
    The temp table is used to hold the rows that qualify and
    need to be updated. This is done by storing the target
    table's primary key (PK) in the temp table to identify the
    row. All the rows are identified and stored in temp table.
    Then PK values in the temp table are used to identify the
    rows in t1 (target table) and are then updated.
    
    While creating a temp table,
    Query_result_update::optimize() creates a single
    field (Field_string) to squeeze all the columns of the
    target table's PK. This works fine if the size of
    PK < 1024.
    
    INNODB's fixed length column size is restricted to 1024
    (See "struct dict_field_t"). Exceeding this can result in
    incorrect behavior.
    
    Solution:
    ---------
    Since we have been unable to identify a good fix for
    this issue, an error will be returned for this DML
    statement.
    
    A different bug will be opened to track and fix this error.
    
    
    Changes specific to trunk:
    --------------------------
    sql_update.cc:
    While creating temp table, the big_tables option is unset.
    This code has been removed. This means that optimizer never
    chooses INNODB for temp table for UPDATE statements. The
    only way INNODB temp tables come into the picture is when
    there is an overflow from the temp table on HEAP.
    
    with_non_recursive.result:
    After the above change, some UPDATE statements with
    big_tables option will use INNODB temp tables.

commit 11a7dca8a885decd2a6eea439c9a3508af7ec0a5
Merge: 6de9538 3483011
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Fri Sep 1 08:49:14 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 348301128842bd5df6f2412e66247d342d794f25
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Fri Sep 1 08:48:40 2017 +0530

    Bug #26704451: INCORRECT BEHAVIOR WITH USE OF CERTAIN
                   CHARSETS AND SHA2
    
    Post-push fix
    
    Embedded server doesn't have sha2.

commit 6de9538a470a0b4d0eb46d2ef6619aae873890b3
Merge: aa10e0c 707a0db
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Aug 31 18:29:59 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit 707a0db699394b7ce928513d06f2ffbdc6ed932b
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Thu Aug 31 18:28:29 2017 +0530

    Bug #26704451: INCORRECT BEHAVIOR WITH USE OF CERTAIN
                   CHARSETS AND SHA2
    
    Issue:
    ------
    Item_func_sha2::val_str_ascii is supposed return an ascii
    value, but it returns a utf16le when a user variable is set
    to a value of that charset and passed as parameter.
    
    Solution:
    ---------
    set_charset on the string value should be called after
    val_str has been calculated. This is already done in
    val_str_ascii functions for MD5 and SHA functions.

commit aa10e0c603bc8501279b22005085f1741de4e47d
Merge: ca04e7f f2219d2
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Aug 31 15:49:13 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit f2219d2430652b8aae97eeef51debb371c6bab06
Merge: d411a71 0ab7417
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Aug 31 15:46:52 2017 +0530

    Merge branch 'mysql-5.5' into mysql-5.6

commit 0ab741787f84ebaf5bb096b2add73ce735cf1d25
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Aug 31 15:44:42 2017 +0530

    Bug #20748521	ASSERTION `I == UINT2KORR(PART_REC_BUF_PTR)' FAILED. |
    		HANDLE_ORDERED_INDEX_SCAN
    
    PROBLEM
    =======
    
    Heap record fetch overwrites the space for next partition in
    m_ordered_rec_buffer.The 2 byte partition ID gets overwritten
    to zero and the assert fails .
    
    FIX
    ===
    Setting the m_rec_length to aligned size of share->reclength only incase
    of Heap engine.
    
    Reviewed by: Debarun Banerjee<debarun.banerjee@oracle.com>
    RB: 17255

commit ca04e7f7573caa4e3660c4463e484c8a921bde70
Merge: 4c41932 d411a71
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Aug 31 14:08:43 2017 +0530

    Null Merge branch 'mysql-5.6' into mysql-5.7

commit d411a712c96c15311db6cc917d89afb9babe3f07
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Thu Aug 31 14:06:07 2017 +0530

    Post push fix for bug#26034430 ASSERTION `PART_REC_BUF_PTR' FAILED.
    
    Issue is committed by the patch under BUG#20748521
    ASSERTION `I ==UINT2KORR(PART_REC_BUF_PTR)' FAILED. | HANDLE_ORDERED_INDEX_SCAN
    originally
    Patch for which test was failing is at rb:17252
    
    Fixing the test case failure for test main.partition_innodb on
    5.6-debug.

commit 3b1b08679365116dc0a3cd7451559736203580ac
Author: Piotr Obrzut <piotr.obrzut@oracle.com>
Date:   Mon Aug 28 12:30:21 2017 +0200

    Bug #26501092 mysql server installer cannot detect that visual c++ 2010 is installed.
    
    (cherry picked from commit 816d1307409636655afee3424aa96451a4e22be2)

commit 4c4193280943c6e100d432f25afeecdb82d84fcb
Merge: 339c506 c0b22c8
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Wed Aug 30 18:49:39 2017 +0530

    Merge branch 'mysql-5.6' into mysql-5.7

commit c0b22c8cdb3831e127ce623937606a4b57aa0b49
Author: Karthik Kamath <karthik.kamath@oracle.com>
Date:   Wed Aug 30 18:45:03 2017 +0530

    Bug#18432770: SYS_VARS.LOG_SLOW_ADMIN_STATEMENTS_FUNC TEST
                  IS FAILING ON 5.6+ WINDOWS PLATFORM
    
    post push fix for improving the reliability of the test

commit 339c5066702eee666bfa0676a18a40bfad35bf57
Author: Georgi Kodinov <georgi.kodinov@oracle.com>
Date:   Wed Aug 30 16:01:53 2017 +0300

    WL#8891: addendum 2: removed an incorrect test that was
    assuming that AUDIT_GENERAL_ERROR is called in a loop until the stack is
    depleted. We're not allowing one to abort it now, so the test is irrelevant.

commit 9bae62418dcddd5c9860313acfddd15a14c5ec22
Merge: 20cb6bc 816d130
Author: Piotr Obrzut <piotr.obrzut@oracle.com>
Date:   Wed Aug 30 14:51:39 2017 +0200

    Null Merge branch 'mysql-5.6' into mysql-5.7

commit 816d1307409636655afee3424aa96451a4e22be2
Author: Piotr Obrzut <piotr.obrzut@oracle.com>
Date:   Mon Aug 28 12:30:21 2017 +0200

    Bug #26501092 mysql server installer cannot detect that visual c++ 2010 is installed.

commit 20cb6bc68ebb094935c480a42ce1ade4be7ca220
Merge: c78733b 0084796
Author: Piotr Obrzut <piotr.obrzut@oracle.com>
Date:   Wed Aug 30 14:31:35 2017 +0200

    Null Merge branch 'mysql-5.6' into mysql-5.7

commit 0084796c17efeeab98eaa72c9062bec088ac1097
Author: Piotr Obrzut <piotr.obrzut@oracle.com>
Date:   Mon Aug 28 12:30:21 2017 +0200

    Bug #26501092 mysql server installer cannot detect that visual c++ 2010 is installed.

commit c78733b3d46985f1bc9908a7c3e927675b465311
Merge: d82b83b 857658e
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Wed Aug 30 17:53:52 2017 +0530

    Null Merge branch 'mysql-5.6' into mysql-5.7

commit 857658e00506a2b71b7c0cc8510c96a01c62c3a4
Author: Aakanksha Verma <aakanksha.verma@oracle.com>
Date:   Wed Aug 30 17:51:30 2017 +0530

    Bug #20748521	ASSERTION `I == UINT2KORR(PART_REC_BUF_PTR)' FAILED. |HANDLE_ORDERED_INDEX_SCAN
    
    Patch for mysql-5.6 version since the above bug also seen in 5.6 debug
    build.
    
    Reviewed by: Debarun Banerjee<debarun.banerjee@oracle.com>
    RB:17252

commit d82b83b08545c1a29aed7df99b4b8a506349ab91
Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
Date:   Wed Aug 30 15:20:44 2017 +0530

    Bug#25940184: P_S TRANSACTION INSTRUMENTATION DOES NOT WORK
    PROPERLY FOR XA ON SLAVE
    
    Problem:
    =======
    When transaction instrumentation and consumers are enabled,
    the events_transaction_% tables can be used to find the XA
    xid components in a much cleaner way than using XA RECOVER.
    However this does not work correctly on the replication
    slave as the XA STATE is COMMITTED even if it should only
    be PREPARED.
    
    Analysis:
    =========
    On master an XA transaction is written to the binary log in
    two parts. When XA PREPARE is issued, the first part of the
    transaction up to XA PREPARE is written.  When XA COMMIT or
    XA ROLLBACK is issued, a second part of the transaction is
    written to the binlog. Hence in binary log few more
    transactions can be present in between XA PREPARE and XA
    COMMIT.
    
    On slave server applier thread will be applying all these
    transactions. Each active transaction will register itself
    with performance schema so that its progress status can be
    tracked in performance schema table. For each transaction
    'begin' and 'commit', there is an internal
    'start_transaction' and 'end_transaction' that will happen
    within performance schema.
    
    When applier thread starts executing 'XA PREPARE' it
    registers itself with performance schema and the transaction
    state will be 'XA_PREPARE'. At the end of the transaction
    applier invokes 'applier_reset_xa_trans' to do the cleanup
    for active XA transaction. Which intern invokes
    'MYSQL_COMMIT_TRANSACTION' which will set the XA_STATE to
    'COMMITTED' in performance schema.
    
    At this point if users execute XA RECOVER on slave the
    XA_STATE will be shown as 'PREPARED' but performance schema
    table will show it as 'COMMITTED'.
    
    Fix:
    ===
    During the execution of 'XA PREPARE' don't commit the
    transaction in PSI context. Leave the PFS state as it is.
    Clear the current thread transaction PSI specific pointer as
    NULL. With this current transaction will exit cleanly
    without altering the XA_STATE.
    
    'XA COMMIT' is not a regular transaction. But it has all the
    required XA transaction specific information to start a
    transaction in PSI context alone. Hence start a new
    transaction in PSI context by executing
    MYSQL_START_TRANSACTION. Initialize the new PSI transaction
    with XA details.  This process will also ensure that current
    GTID is updated in PSI transaction.  Then call
    'MYSQL_COMMIT_TRANSACTION'. This will provide appropriate XA
    status for 'XA COMMIT' statement.

commit cc5d63560e85b459acd5a748a8ead7106d93253d
Author: Shishir Jaiswal <shishir.j.jaiswal@oracle.com>
Date:   Wed Aug 30 12:38:04 2017 +0530

    Bug#25996291 - NEED MORE INFORMATION THAN: PERFORMANCE
                   SCHEMA DISABLED (REASON: INIT FAILED)
    
    DESCRIPTION
    ===========
    If Performance schema initialization fails, the server log
    just reads,
    "[Warning] Performance schema disabled (reason: init
    failed)."
    
    It doesn't tell the exact reason what caused this failure
    making it difficult to overcome the failure.
    
    ANALYSIS
    ========
    initialize_performance_schema() executes several sub-init
    functions which are primarily involved in allocating the
    memory [with the help of pfs_malloc_array()] for various
    buffers. This function just return the status of the inits,
    however it would be helpful if something as below is
    printed.
    "Failed to allocate <x bytes> for buffer <name>"
    
    FIX
    ===
    We can either do this change in all the sub-init functions
    or we can do it in the callee function pfs_malloc_array().
    Following the 2nd approach and printing the warning now.

commit 817776b878397b612b4de5673075a84bdc27305c
Author: Kailasnath Nagarkar <kailasnath.nagarkar@oracle.com>
Date:   Tue Aug 29 23:05:59 2017 +0530

    Bug #25737271 : MYSQL SERVER CRASHED WITH SIG 11 ON
                    MERGE_BUFFERSP10SORT_PARAMP11ST_IO_CACHE
    
    ISSUE: The merge_buffers() function had incorrect way
           of handling buffers resulting in server exiting
           abnormally.
    
    SOLUTION:
    Corrected buffer handling in merge_buffers()

commit 2cf4ba8277d0ca804eb4f9f9e5879eba7159fcee
Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com>
Date:   Tue Aug 29 20:13:34 2017 +0530

    Bug #18898433: EXTREMELY SLOW PERFORMANCE WITH OUTER JOINS
                   AND JOIN BUFFER
    
    Issue:
    ------
    The algorithm for join_records is :
    
    1. Generate fully matching records by calling
       join_matching_records(). That is, extensions for which
       the ON condition is true.
    2. Call to join_records() recursively to extend these
       matching records for remaining tables.
    3. Generate null complemented extensions for those rows in
       the join buffer that do not have matches.
       (Call to join_null_complements())
    4. Recursively extend null complemented rows for remaining
       tables. (second call to join_records()).
    
    For joins of the form t1 LEFT JOIN (t2 INNER JOIN t3), that
    is the first_inner and last_inner aren't the same, it is
    necessary to call join_records() twice to null complement
    all the tables.
    
    But for queries of the form t1 LEFT JOIN t2 LEFT JOIN t3,
    is the first_inner and last_inner same, the first call to
    join_records (Step 2) isn't necessary. Since null
    complementing will happen anyway towards the end.
    
    This is problematic because the extra (and recursive) call
    to join_records will result in extra reads from the relevant
    tables.
    
    Solution:
    ---------
    When there is a single inner table for outer join, skip the
    Step 2 (linked join_cache's call to join_records()).
    
    This will avoid both extra processing and I/O.

commit 95ebe28d1b38b7281b2d06431dc41f36103fd300
Author: Anushree Prakash B <anushree.prakash.b@oracle.com>
Date:   Tue Aug 29 17:36:16 2017 +0530

    Bug#25813089 - CREATE USER IF NOT EXISTS SHOULD ALWAYS BE
                   WRITTEN TO THE BINLOGS
    
    DESCRIPTION
    ===========
    MySQL 5.7 introduced a new command CREATE USER IF NOT
    EXISTS ... The idea of this command is that it can be run
    safely on a master and would not break things irrespective
    of whether the user exists on the master or on the slave.
    However, the implementation does not write this statement
    to the binlog when the user exists on the master which
    results in an inconsistency.
    
    ANALYSIS
    ========
    Presently, if the statements CREATE USER IF NOT EXISTS are
    a no-op on the master, they are not written to the the
    binlog. This results in an inconsistent behavior if a
    particular user is present on the slave but not on the
    master. Similar issue arises for ALTER USER IF EXISTS
    statements.
    
    FIX
    ===
    The fix ensures that the statements having queries like
    1. CREATE USER IF NOT EXISTS .. and
    2. ALTER USER IF EXISTS ..
    are binlogged making sure that replication does not
    break and the consistency is maintained across all masters
    and slaves.

commit a8a9c81abe714b08409190bfd3c751d42d3d6c60
Merge: 480caa0 f93e52b
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Tue Aug 29 15:52:14 2017 +0530

    Raise version number after cloning 5.7.20

commit f93e52bf19a70817dd7e4adcb01aae179878e0c6
Merge: bdc4aa6 03c1692
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Tue Aug 29 15:46:26 2017 +0530

    Raise version number after cloning 5.6.38

commit 03c1692d777b7d2e3d8f77ff6ed6b5d1a6ea4089
Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
Date:   Tue Aug 29 15:42:38 2017 +0530

    Raise version number after cloning 5.5.58
