1. 27 Jul, 2018 1 commit
  2. 26 Jul, 2018 1 commit
  3. 25 Jul, 2018 3 commits
    • Oleksandr Byelkin's avatar
      cb5952b5
    • Igor Babaev's avatar
      MDEV-16820 Lost 'Impossible where' from query with inexpensive subquery · 1fde449f
      Igor Babaev authored
      This patch fixes another problem introduced by the patch for mdev-4817.
      The latter changed Item_cond::fix_fields() in such a way that it could
      call the virtual method is_expensive(). With the first its call
      the method saves the result in Item::is_expensive_cache. For all next
      calls the method returns the result from this cache. So if the item
      once was determined as expensive the method always returns true.
      For subqueries it's not good, because non-optimized subqueries always
      is considered as expensive.
      It means that the cache should be invalidated after the call of
      optimize_constant_subqueries().
      1fde449f
    • Jan Lindström's avatar
      MDEV-15822: WSREP: BF lock wait long for trx · 57cde8cc
      Jan Lindström authored
      In Galera BF (brute force) transactions may not wait for lock requests
      and normally BF-transaction would select transaction holding conflicting
      locks as a victim for rollback. However, background statistic calculation
      transaction is InnoDB internal transaction and it has no thd i.e. it can't be
      selected as a victim. If background statistics calculation transaction holds
      conflicting locks to statistics tables it will cause BF lock wait long
      error message. Correct way to handle background statistics calculation is to
      acquire thd for transaction but that change is too big for GA-releases and
      there are other reported problems on background statistics calculation.
      
      This fix avoids adding a table to background statistics calculation if
      57cde8cc
  4. 24 Jul, 2018 3 commits
  5. 23 Jul, 2018 1 commit
  6. 20 Jul, 2018 1 commit
  7. 19 Jul, 2018 13 commits
    • Igor Babaev's avatar
      MDEV-16726 Assertion `tab->type == JT_REF || tab->type == JT_EQ_REF' failed · 9cea4ccf
      Igor Babaev authored
      Due to a legacy bug in the code of make_join_statistics() detecting
      so-called constant tables could miss some of them in rare queries
      that used RIGHT JOIN. As a result these queries had execution plans
      different from the execution plans of the equivalent queries with
      LEFT JOIN.
      Besides starting from 10.2 this could trigger an assertion failure.
      9cea4ccf
    • Jan Lindström's avatar
      MDEV-10564: Galera `wsrep_debug` patch logs MySQL user credentials · 323f269d
      Jan Lindström authored
      Restricted output for CREATE USER, GRANT, REVOKE and SET PASSWORD
      so that it shows only above keywords but not rest of query i.e.
      not user or password.
      323f269d
    • Oleksandr Byelkin's avatar
      fb4b3472
    • Oleksandr Byelkin's avatar
      Merge branch '10.0' into bb-10.1-merge · 0896d7eb
      Oleksandr Byelkin authored
      0896d7eb
    • Sergei Golubchik's avatar
      MDEV-15551 Server hangs or assertion `strcmp(share->unique_file_name,filename)... · d57ddaa1
      Sergei Golubchik authored
      MDEV-15551 Server hangs or assertion `strcmp(share->unique_file_name,filename) || share->last_version' fails in test_if_reopen or unexpected ER_LOCK_DEADLOCK
      
      only use HA_EXTRA_PREPARE_FOR_DROP when the table is going to be dropped
      d57ddaa1
    • Sergei Golubchik's avatar
      MDEV-14882 mysql_upgrade performs unnecessary conversions back and forth · 5c744bb5
      Sergei Golubchik authored
      avoid round-robin conversions, if the column is MODIFY-ed,
      it should always be modified to its final definition, not to some
      intermediate state.
      
      also avoid other unconditional changes, like
        ALTER TABLE event DROP PRIMARY KEY;
        ALTER TABLE event ADD PRIMARY KEY(db, name);
      5c744bb5
    • Sergei Golubchik's avatar
      MDEV-13397 MariaDB upgrade fail when using default_time_zone · 40f29ecb
      Sergei Golubchik authored
      don't try to set default time zone in --bootstrap,
      this generally cannot be done, as timezone tables aren't loaded.
      and bootstrap scripts don't need it anyway.
      40f29ecb
    • Sergei Golubchik's avatar
      MDEV-11790 WITHOUT_SERVER installs mysqld_safe_helper · 33eccb57
      Sergei Golubchik authored
      Don't install server files if WITHOUT_SERVER is specified.
      "Server files" are defined as files going into the MariaDB-Server RPM,
      that is files in the components Server, ManPagesServer, Server_Scripts,
      IniFiles, SuportFiles, and Readme.
      33eccb57
    • Sergei Golubchik's avatar
      MDEV-11741 handler::ha_reset(): Assertion... · bd5cf02b
      Sergei Golubchik authored
      MDEV-11741 handler::ha_reset(): Assertion `bitmap_is_set_all(&table->s->all_set)' failed or server crash in mi_reset or buffer overrun or unexpected ER_CANT_REMOVE_ALL_FIELDS
      
      MEMORY table could be renamed into a non-extistent database.
      
      rename() is documented to return ENOENT when the source file does not
      exist OR when the target directory not exist. Nonexistent source .frm
      file is ok (table can still exist in the engine), nonexistent target
      directory is not.
      
      Make my_rename to use ENOTDIR for the latter case. Make RENAME TABLE
      issue an appropriate error ("unknown database" instead of "unknown table")
      bd5cf02b
    • Sergei Golubchik's avatar
      MDEV-8941 Compile on Solaris (SPARC) fails with errors in filamvct.cpp · 0b3e28a4
      Sergei Golubchik authored
      remove unnecessary declaration
      0b3e28a4
    • Sergei Petrunia's avatar
      MDEV-16777: galera.galera_gra_log fails with File ...GRA_*.log not found error · 09f14765
      Sergei Petrunia authored
      snprintf returns the number of bytes it wrote (or would have written) NOT
      counting the \0 terminal character.
      The buffer size it accepts as argument DOES COUNT the \0 character.
      Pass the right parameter value.
      09f14765
    • Alexander Barkov's avatar
      Simplify caseup() and casedn() in charsets · e2ac4098
      Alexander Barkov authored
      After the MDEV-13118 fix there's no code in the server that
      wants caseup/casedn to change the argument in place for simple
      charsets.  Let's remove this logic and always return the result in a
      new string for all charsets, both simple and complex.
      
      1. Removing the optimization that *some* character sets used in casedn()
        and caseup(), which allowed (and required) to change the case in-place,
        overwriting the string passed as the "src" argument.
        Now all CHARSET_INFO's work in the same way:
        non of them change the source string in-place, all of them now convert
        case from the source string to the destination string, leaving
        the source string untouched.
      
      2. Adding "const" qualifier to the "char *src" parameter
         to caseup() and casedn().
      
      3. Removing duplicate implementations in ctype-mb.c.
        Now both caseup() and casedn() implementations for all CJK character sets
        use internally the same function my_casefold_mb()
        (the former my_casefold_mb_varlen()).
      
      4. Removing the "unused" attribute from parameters of some my_case{up|dn}_xxx()
         implementations, as the affected parameters are now *used* in the code.
         Previously these parameters were used only in DBUG_ASSERT().
      e2ac4098
    • Alexander Barkov's avatar
      MDEV-13118 Wrong results with LOWER and UPPER and subquery · ab58493d
      Alexander Barkov authored
      This problem is similar to MDEV-10306.
      
      1. Fixing Item_str_conv::val_str(String *str) to return the result in "str",
         and to use tmp_value only as a temporary buffer for args[0]->val_str().
         The new code version now guarantees that the result is always returned in
         "str". The trick with copy_if_not_alloced() is not used any more.
      
      2. The change #1 revealed the same problem in SUBSTRING_INDEX(),
         so some tests with combinations of UPPER()/LOWER() and SUBSTRING_INDEX()
         started to fail. Fixing Item_func_substr_index::val_str() the same way,
         to return the result in "str" and use tmp_value as a temporary buffer
         for args[0]->val_str().
      ab58493d
  8. 18 Jul, 2018 3 commits
  9. 17 Jul, 2018 1 commit
  10. 16 Jul, 2018 4 commits
  11. 15 Jul, 2018 2 commits
    • Igor Babaev's avatar
      MDEV-16760 CREATE OR REPLACE TABLE never updates statistical tables · ae0eb507
      Igor Babaev authored
      If the command CREATE OR REPLACE TABLE really replaces a table then
      it should remove all data on this table from all statistical tables.
      ae0eb507
    • Igor Babaev's avatar
      MDEV-16757 Memory leak after adding manually min/max statistical data · 095dc811
      Igor Babaev authored
                 for blob column
      
      ANALYZE TABLE <table> does not collect statistical data on min/max values
      for BLOB columns of <table>. However these values can be added into
      mysql.column_stats manually by executing proper statements.
      Unfortunately this led to a memory leak because the memory allocated
      for these values was never freed.
      This patch provides the server with a function to free memory allocated
      for min/max statistical values of BLOB types.
      
      Temporarily changed the test case until MDEV-16711 is fixed as without
      this fix the test case for MDEV-16757 did not fail only for 10.0.
      095dc811
  12. 14 Jul, 2018 2 commits
    • Igor Babaev's avatar
      MDEV-16760 CREATE OR REPLACE TABLE never updates statistical tables · 1fd84f91
      Igor Babaev authored
      If the command CREATE OR REPLACE TABLE really replaces a table then
      it should remove all data on this table from all statistical tables.
      1fd84f91
    • Igor Babaev's avatar
      MDEV-16757 Memory leak after adding manually min/max statistical data · c89bb15c
      Igor Babaev authored
                 for blob column
      
      ANALYZE TABLE <table> does not collect statistical data on min/max values
      for BLOB columns of <table>. However these values can be added into
      mysql.column_stats manually by executing proper statements.
      Unfortunately this led to a memory leak because the memory allocated
      for these values was never freed.
      This patch provides the server with a function to free memory allocated
      for min/max statistical values of BLOB types.
      c89bb15c
  13. 11 Jul, 2018 2 commits
  14. 10 Jul, 2018 1 commit
  15. 02 Jul, 2018 2 commits