1. 27 Jul, 2018 1 commit
    • Galina Shalygina's avatar
      MDEV-16721: Assertion `ctx.compare_type_handler()->cmp_type() != STRING_RESULT' · 2a3d3e05
      Galina Shalygina authored
      failed
      
      The bug appeared as in MDEV-12387 setup_jtbm_semi_joins() procedure had been
      devided into two functions, one called before optimization of WHERE clause
      and another after this optimization. When the second function was called for
      a degenerated jtbm semi join equalities connecting the subselect and
      the parent select were created but invocation of fix_fields() for these
      equalities was missing.
      2a3d3e05
  2. 25 Jul, 2018 2 commits
  3. 24 Jul, 2018 5 commits
  4. 23 Jul, 2018 10 commits
    • Jacob Mathew's avatar
      MDEV-15786: ERROR 1062 (23000) at line 365: Duplicate entry 'spider' for key 'PRIMARY' · 45ab00f0
      Jacob Mathew authored
      The problem occurs on Ubuntu where a Spider package is installed on the system
      separately from the MariaDB package.  MariaDB and Spider upgrades leave the
      Spider plugin improperly installed.  Spider is present in the mysql.plugin
      table but is not present in information_schema.
      
      The problem has been corrected in Spider's installation script.  Logic has
      been added to check for Spider entries in both information_schema and
      mysql.plugin.  If Spider is present in mysql.plugin but is not present in
      information_schema, then Spider is first removed from mysql.plugin.  The
      subsequent plugin install of Spider will insert entries in both mysql.plugin
      and information_schema.
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      
      Cherry-Picked:
        Commit 0897d81 on branch bb-10.3-MDEV-15786
      45ab00f0
    • Jacob Mathew's avatar
      MDEV-15786: ERROR 1062 (23000) at line 365: Duplicate entry 'spider' for key 'PRIMARY' · a86a02a8
      Jacob Mathew authored
      The problem occurs on Ubuntu where a Spider package is installed on the system
      separately from the MariaDB package.  MariaDB and Spider upgrades leave the
      Spider plugin improperly installed.  Spider is present in the mysql.plugin
      table but is not present in information_schema.
      
      The problem has been corrected in Spider's installation script.  Logic has
      been added to check for Spider entries in both information_schema and
      mysql.plugin.  If Spider is present in mysql.plugin but is not present in
      information_schema, then Spider is first removed from mysql.plugin.  The
      subsequent plugin install of Spider will insert entries in both mysql.plugin
      and information_schema.
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      
      Cherry-Picked:
        Commit 0897d81 on branch bb-10.3-MDEV-15786
      a86a02a8
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · f418661e
      Marko Mäkelä authored
      f418661e
    • Marko Mäkelä's avatar
      row_purge_poss_sec(): Add debug instrumentation · 9d1f3bf2
      Marko Mäkelä authored
      This helped fix MDEV-16779.
      9d1f3bf2
    • Marko Mäkelä's avatar
      MDEV-15855 cleanup: Privatize purge_vcol_info_t · c5ba13dd
      Marko Mäkelä authored
      Declare all fields of purge_vcol_info_t private, and add
      accessor functions.
      c5ba13dd
    • Marko Mäkelä's avatar
      Follow-up to MDEV-15855: Remove bogus debug assertions · a7a0c533
      Marko Mäkelä authored
      During a table-rebuilding operation, the function table_name_parse()
      can encounter a table name that starts with #sql. Here is an example
      of a failure:
      
      CURRENT_TEST: gcol.innodb_virtual_basic
      mysqltest: At line 1204: query 'alter table t drop column d ' failed:
      2013: Lost connection to MySQL server during query
      
      Let us just remove these bogus debug assertions.
      
      If the final renaming phase during ALTER TABLE never fails, it
      should not do any harm to skip the purge. If it does fail, then
      we might end up 'leaking' some delete-marked records in the
      indexes on virtual columns of the original table, and these
      garbage records would keep consuming space until the indexes are
      dropped or the table is successfully rebuilt.
      a7a0c533
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-16779 Assertion !rw_lock_own failed upon purge · 730f6c91
      Thirunarayanan Balathandayuthapani authored
      This is a regression caused by the fix of MDEV-15855.
      
      purge_vcol_info_t::set_used(): Add a missing condition.
      
      row_purge_poss_sec(): Invoke set_used() in order to
      have !is_first_fetch() when retrying.
      730f6c91
    • Marko Mäkelä's avatar
      ut_print_buf_hex(): Correctly dump the hex · b660261b
      Marko Mäkelä authored
      This should affect at least rec_printer() output.
      b660261b
    • Marko Mäkelä's avatar
      Reduce the number of rw_lock_own() calls · 73af0753
      Marko Mäkelä authored
      Replace pairs of rw_lock_own() calls with
      calls to rw_lock_own_flagged().
      
      These calls are only present in debug builds.
      73af0753
    • Marko Mäkelä's avatar
      Follow-up to MDEV-12266: Remove latch_t::m_temp_fsp · b9865b28
      Marko Mäkelä authored
      There is only one temporary tablespace. Reserving a data member in
      each read-write lock object for a Boolean flag seems like a huge waste,
      especially because this field was only actually used in debug builds.
      
      LatchDebug::check_order(): Compare to fil_system.temp_space->latch.
      b9865b28
  5. 21 Jul, 2018 1 commit
  6. 20 Jul, 2018 1 commit
  7. 19 Jul, 2018 1 commit
  8. 18 Jul, 2018 1 commit
    • Sachin's avatar
      MDEV-16192 Table 't' is specified twice, both as a target for 'CREATE' and... · 9827c5e1
      Sachin authored
      as a separate source for data
      
      Actually MDEV-15867 and MDEV-16192 are same, Slave adds "or replace" to create
      table stmt. So create table t1 is create or replace on slave. So this bug
      is not because of replication, We can get this bug on general server if we
      manually add or replace to create query.
      
      Problem:- So if we try to create table t1 (same name as of temp table t1 ) via
         CREATE or replace TABLE t AS SELECT * FROM t;
      Since in this query we are creating table from select * from t1 , we call
      unique_table function to see whether if source and destination table are same.
      But there is one issue unique_table does not account if source table is tmp table
      in this case source and destination table can be same.
      
      Solution:- We will change find_dup_table to not to look for temp table if
      CHECK_DUP_SKIP_TEMP_TABLE flag is on.
      9827c5e1
  9. 14 Jul, 2018 3 commits
  10. 13 Jul, 2018 1 commit
    • Monty's avatar
      Call alloc() instead of realloc() · a9ca8198
      Monty authored
      Use alloc() if we don't need original string (avoid copy)
      Removed not needed test of str_length in sql_string.cc
      a9ca8198
  11. 10 Jul, 2018 1 commit
  12. 09 Jul, 2018 2 commits
    • Jacob Mathew's avatar
      MDEV-16246: insert timestamp into spider table from mysqldump gets wrong time zone. · 813b7398
      Jacob Mathew authored
      The problem occurred because the Spider node was incorrectly handling
      timestamp values sent to and received from the data nodes.
      
      The problem has been corrected as follows:
      - Added logic to set and maintain the UTC time zone on the data nodes.
        To prevent timestamp ambiguity, it is necessary for the data nodes to use
        a time zone such as UTC which does not have daylight savings time.
      - Removed the spider_sync_time_zone configuration variable, which did not
        solve the problem and which interfered with the solution.
      - Added logic to convert to the UTC time zone all timestamp values sent to
        and received from the data nodes.  This is done for both unique and
        non-unique timestamp columns.  It is done for WHERE clauses, applying to
        SELECT, UPDATE and DELETE statements, and for UPDATE columns.
      - Disabled Spider's use of direct update when any of the columns to update is
        a timestamp column.  This is necessary to prevent false duplicate key value
        errors.
      - Added a new test spider.timestamp to thoroughly test Spider's handling of
        timestamp values.
      
      Author:
        Jacob Mathew.
      
      Reviewer:
        Kentoku Shiba.
      
      Cherry-Picked:
        Commit 97cc9d34 on branch bb-10.3-MDEV-16246
      813b7398
    • Alexander Barkov's avatar
  13. 07 Jul, 2018 2 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · bbf780ef
      Marko Mäkelä authored
      bbf780ef
    • Marko Mäkelä's avatar
      MDEV-16664: Change the default to innodb_lock_schedule_algorithm=fcfs · 1cc1d042
      Marko Mäkelä authored
      The parameter innodb_lock_schedule_algorithm was introduced in
      MariaDB Server 10.1.19, 10.2.13, 10.3.4 as part of MDEV-11039.
      In MariaDB 10.1, the default value of the parameter is 'fcfs',
      that is, the existing algorithm is used by default. But in
      later versions of MariaDB Server, the parameter was 'vats',
      enabling the new algorithm.
      
      Because the new algorithm is triggering a debug assertion failure
      that suggests corruption of the transactional lock data structures,
      we will revert to the old algorithm by default until we have
      resolved the problem.
      1cc1d042
  14. 06 Jul, 2018 7 commits
  15. 05 Jul, 2018 2 commits