1. 28 Jan, 2014 7 commits
  2. 27 Jan, 2014 5 commits
  3. 26 Jan, 2014 9 commits
  4. 25 Jan, 2014 1 commit
    • Michael Widenius's avatar
      Fixed MDEV-4970: Wrong result with Aria table populated with disabled keys · dfafcaf8
      Michael Widenius authored
      Problem was that ALTER TABLE DISABLE KEYS incremented create_trid for the table,
      which made the new index entries invisible until the global trid catched up.
      
      Fixed by only updating create_trid if we are rewriting all rows and indexes.
      
      
      mysql-test/suite/maria/alter.result:
        Added test case
      mysql-test/suite/maria/alter.test:
        Added test case
      storage/maria/ha_maria.cc:
        Only updating create_trid if we are doing a full repair (and thus rewriting all rows and indexes).
      storage/maria/trnman.c:
        More DBUG_PRINT
      dfafcaf8
  5. 27 Jan, 2014 2 commits
  6. 26 Jan, 2014 1 commit
  7. 24 Jan, 2014 8 commits
    • Sergey Petrunya's avatar
      [Backport to 5.3] · 7f4ed12b
      Sergey Petrunya authored
      MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when 
      index_condition_pushdown=on
      - in test_if_skip_sort_order(), correct the condition under which
        we have the code that restores the previously pushed index condition.
      7f4ed12b
    • Sergey Petrunya's avatar
      Merge · 863de376
      Sergey Petrunya authored
      863de376
    • Sergey Petrunya's avatar
      MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when index_condition_pushdown=on · 2b31461d
      Sergey Petrunya authored
      - in test_if_skip_sort_order(), correct the condition under which
        we have the code that restores the previously pushed index condition.
      2b31461d
    • Michael Widenius's avatar
      Fixed Mageia Bug 12355: mariadb produces warning messages while loading timezone information · 166bf646
      Michael Widenius authored
      - Warnings about wrong symlink messages or non-timezone files with '.tab' are now only given if run with --verbose
      - Added long option handling
      - Added --help, --verbose and --version options
      
      
      sql/tztime.cc:
        Add usage of my_getopt, to get long options
      166bf646
    • Alexander Barkov's avatar
      MDEV-5504 Server crashes in String::length on SELECT with MONTHNAME, GROUP BY, ROLLUP · 42ac8a42
      Alexander Barkov authored
      The crash happened because Item_func_monthname was derived from
      Item_func_month, so Item_func_monthname::is_null() did not work fine.
      Backporting a change from 5.5: Item_func_monthname is now derived from
      Item_str_func.
      42ac8a42
    • Michael Widenius's avatar
      Fix for MDEV-5531: double call procedure in one session - hard shutdown the server · 05bafc87
      Michael Widenius authored
      Main fix was to not cache derivied tables as they may be temporary tables that are deleted before the next query.
      This was a bit tricky as Item_field::fix_fields depended on cached_tables to be set to resolve some columns.
      
      
      
      mysql-test/r/sp-bugs.result:
        Added test case
      mysql-test/t/sp-bugs.test:
        Added test case
      sql/item.cc:
        Fixed fix_outer_field to handle case where found field did not have in cached_table
        Idea is that if cached_table is not avaliable, use from_field->table->pos_in_table_list instead
      sql/records.cc:
        Also accept INTERNAL_TMP_TABLE for memmap
      sql/sql_base.cc:
        More DBUG_PRINT
        Fixed that setup_natural_join_row_types() is not run twice.
        Original code modified context->first_name_resolution_table also for second executions.
        This was wrong as this could give wrong results if some joins had been optimized away between calls.
      sql/sql_derived.cc:
        Mark derived tables as internal temporary tables (INTERNAL_TMP_TABLE), not as NON_TRANSACTIONAL_TMP_TABLE.
        This is more correct as the tables are not visible by the end user.
      sql/sql_insert.cc:
        Reset pos_in_table_list before calling fix_fields.
        One of the consequences of the change of not caching all generated tables in Item_ident is that
        pos_in_table_list needs to be correct in calls to fix_fields.
      sql/sql_lex.cc:
        More DBUG_PRINT
      sql/sql_parse.cc:
        Don't cache derivied tables as they may be temporary tables that are deleted before the next query
      sql/sql_select.cc:
        Reset table_vector. This was required as some code checked the vector to see if temporary tables had already been created.
      sql/table.cc:
        Mark tables with field translations as cacheable (as these will not disapper between stmt executions.
      05bafc87
    • Michael Widenius's avatar
      Fixed failures in tokudb test cases · a12ef808
      Michael Widenius authored
      storage/tokudb/mysql-test/tokudb_bugs/r/5733_innodb.result:
        Speed up test
      storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result:
        Speed up test
        Fix results
      storage/tokudb/mysql-test/tokudb_bugs/r/xa-6.result:
        Ensure that mysql.proc is properly closed
      storage/tokudb/mysql-test/tokudb_bugs/t/5733_innodb.test:
        Speed up test
      storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test:
        Speed up test
        Accept both index and range scan for one query
      storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test:
        Ensure that mysql.proc is properly closed
      a12ef808
    • Alexey Botchkov's avatar
      MDEV-5419 no audit events for warnings converted to errors in the strict mode. · 816a0a4f
      Alexey Botchkov authored
              small fix in the --replace_regex template.
      816a0a4f
  8. 23 Jan, 2014 7 commits
    • Alexey Botchkov's avatar
      MDEV-5419 no audit events for warnings converted to errors in the strict mode. · 95824b7f
      Alexey Botchkov authored
              Plugins get error notifications only when my_message_sql() is called.
              But errors are launched with THD::raise_condition() calls in other
              places. These are push_warning(), implementations of SIGNAL and
              RESIGNAL commands.
              So it makes sence to notify plugins there in THD::raise_condition().
      95824b7f
    • Sergey Petrunya's avatar
      MDEV-5368: Server crashes in Item_in_subselect::optimize on ... · b0942f92
      Sergey Petrunya authored
      - convert_subq_to_sj() must connect child select's tables into 
        parent select's TABLE_LIST::next_local chain.  
      - The problem was that it took child's leaf_tables.head() which
        is different. This could cause certain tables (in this bug's case,
        child select's non-merged semi-join) not to be present in 
        TABLE_LIST::next_local chain.  Which would cause non-merged semi-join
        not to be initialized in setup_tables(), which would lead to 
        NULL pointer dereference.
      b0942f92
    • Sergey Petrunya's avatar
      Merge · 383a7878
      Sergey Petrunya authored
      383a7878
    • Sergey Petrunya's avatar
      MDEV-5368: Server crashes in Item_in_subselect::optimize on ... · 49c3dfc3
      Sergey Petrunya authored
      - convert_subq_to_sj() must connect child select's tables into 
        parent select's TABLE_LIST::next_local chain.  
      - The problem was that it took child's leaf_tables.head() which
        is different. This could cause certain tables (in this bug's case,
        child select's non-merged semi-join) not to be present in 
        TABLE_LIST::next_local chain.  Which would cause non-merged semi-join
        not to be initialized in setup_tables(), which would lead to 
        NULL pointer dereference.
      49c3dfc3
    • unknown's avatar
      merge of MDEV-5356 5.1->5.3 (with more fixes and test suite). · 718fa5e4
      unknown authored
      THD::thd->activate_stmt_arena_if_needed() should be used to temporary activating statement arena instead of direct usage of THD::set_n_backup_active_arena() because possible such scenario:
        1) func1 saves current arena and activates copy1 of statement arena
        2) func2 saves copy1 of statement arena setup by func1 and activates copy2
        3) some changes made for copy 2
        4) func2 stores changed copy2 back to statenet arena and activates copy1
        5) func1 store unchanged copy1 back to statemnt arena (rewrite changed copy 2 so changes become lost) and activates arena which was before.
      718fa5e4
    • Sergei Golubchik's avatar
      MDEV-5406 add index to an innodb table with a uniqueness violation crashes mysqld · 29ef2429
      Sergei Golubchik authored
      After table->file->add_index() in mysql_alter_table() the table in the engine
      has the intermediate temporary structure, it's neither the original nor the
      final table structure (it'll be final after successful table->file->drop_index()
      call). So, when add_index() fails with a unique key violation, we cannot simply
      get the failed key number and easily map it to the key name and key structure via
      table->key_info[key_no].
      
      For now we'll create this "intermediate temporary structure", emulating InnoDB
      internal rules.
      
      This bug and the fix will go away in 10.0 that uses completely different online
      alter table code.
      
      mysql-test/t/alter_table_trans.test:
        mdev:5406
      29ef2429
    • unknown's avatar
      MDEV-5356: Server crashes in Item_equal::contains on 2nd execution of a PS · d809b4b8
      unknown authored
      THD::thd->activate_stmt_arena_if_needed() should be used to temporary activating statement arena instead of direct usage of THD::set_n_backup_active_arena() because possible such scenario:
        1) func1 saves current arena and activates copy1 of statement arena
        2) func2 saves copy1 of statement arena setup by func1 and activates copy2
        3) some changes made for copy 2
        4) func2 stores changed copy2 back to statenet arena and activates copy1
        5) func1 store unchanged copy1 back to statemnt arena (rewrite changed copy 2 so changes become lost) and activates arena which was before.
      d809b4b8