1. 14 Feb, 2017 6 commits
    • Vicențiu Ciorbaru's avatar
      Define a helper class to allow for saving sql_mode using RAII · dc90e249
      Vicențiu Ciorbaru authored
      On construction the Sql_mode_save class stores the current THD's
      sql_mode. On destruction, the THD's mode is restored.
      dc90e249
    • Vicențiu Ciorbaru's avatar
    • Vicențiu Ciorbaru's avatar
      MDEV-11746: Wrong result upon using FIRST_VALUE with a window frame · 5bf33843
      Vicențiu Ciorbaru authored
      The same approach is needed for LAST_VALUE, otherwise the LAST_VALUE sum
      functions are not cleared correctly. Now LAST_VALUE behaves as NTH_VALUE
      with 0 offset, only that the frame that it is examining is the bottom bound,
      not the top bound.
      5bf33843
    • Vicențiu Ciorbaru's avatar
      MDEV-11746: Wrong result upon using FIRST_VALUE with a window frame · 57341852
      Vicențiu Ciorbaru authored
      Reimplement FIRST_VALUE to act as NTH_VALUE with 0 offset. The previous
      implementation was flawed when the window frame would remove values.
      57341852
    • Vicențiu Ciorbaru's avatar
      MDEV-10122: MariaDB does not support group functions in some contexts where MySQL does · f675eab7
      Vicențiu Ciorbaru authored
      The problematic queries involve unions. For unions we have an
      optimization where we skip the ORDER BY clause in a query from one side
      of the union if it will be performed later due to UNION.
      EX:
      (SELECT a from t1 ORDER BY a) ORDER BY b;
      The first ordering by a is not necessary and it gets removed.
      
      The problem is that we still need to resolve the Items before removing the
      ORDER BY list from the
      SELECT_LEX structure. During this final resolve step however, we forgot to
      allow SET functions within the ORDER BY clause. This caused us to return
      an "Invalid use of group function" error during the checking performed
      by fix_fields in Item_sum::init_sum_func_check.
      f675eab7
    • Vicențiu Ciorbaru's avatar
      MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir: · fdfdea40
      Vicențiu Ciorbaru authored
      Fatal error: mysql.user table is damaged or in unsupported 3.20 format
      
      The problem stems from MySQL 5.7.6. According to MySQL documentation:
      In MySQL 5.7.6, the Password column was removed and all credentials are
      stored in the authentication_string column.
      
      If opening a MySQL 5.7.6 (and up) datadir with MariaDB 10.2, the user table
      appears corrupted. In order to fix this, the server must be started with
      --skip-grant-tables and then a subsequent mysql_upgrade command must be
      issued.
      
      This patch updates the mysql_upgrade command to also add the removed
      Password column. The password column is necessary, otherwise
      the mysql_upgrade script fails due to the Event_scheduler not being able
      to start, as it can't find Event_priv in the table where it ought to be.
      MySQL's version has column position 28 (0 index) vs our datadir version
      expects position 29.
      fdfdea40
  2. 13 Feb, 2017 34 commits