1. 26 Jan, 2014 5 commits
  2. 25 Jan, 2014 1 commit
    • Michael Widenius's avatar
      Fixed MDEV-4970: Wrong result with Aria table populated with disabled keys · 3d67c68a
      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
      3d67c68a
  3. 27 Jan, 2014 3 commits
  4. 26 Jan, 2014 1 commit
  5. 24 Jan, 2014 8 commits
    • Sergey Petrunya's avatar
      [Backport to 5.3] · 669c6620
      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.
      669c6620
    • Sergey Petrunya's avatar
      Merge · c6de4558
      Sergey Petrunya authored
      c6de4558
    • Sergey Petrunya's avatar
      MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when index_condition_pushdown=on · e1f94a69
      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.
      e1f94a69
    • Michael Widenius's avatar
      Fixed Mageia Bug 12355: mariadb produces warning messages while loading timezone information · 4d83f579
      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
      4d83f579
    • Alexander Barkov's avatar
      MDEV-5504 Server crashes in String::length on SELECT with MONTHNAME, GROUP BY, ROLLUP · d106dc05
      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.
      d106dc05
    • Michael Widenius's avatar
      Fix for MDEV-5531: double call procedure in one session - hard shutdown the server · d15b3386
      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.
      d15b3386
    • Michael Widenius's avatar
      Fixed failures in tokudb test cases · 7335c6f2
      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
      7335c6f2
    • Alexey Botchkov's avatar
      MDEV-5419 no audit events for warnings converted to errors in the strict mode. · 5a7ae593
      Alexey Botchkov authored
              small fix in the --replace_regex template.
      5a7ae593
  6. 23 Jan, 2014 7 commits
    • Alexey Botchkov's avatar
      MDEV-5419 no audit events for warnings converted to errors in the strict mode. · 8f3e1bfc
      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().
      8f3e1bfc
    • Sergey Petrunya's avatar
      MDEV-5368: Server crashes in Item_in_subselect::optimize on ... · 519c7305
      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.
      519c7305
    • Sergey Petrunya's avatar
      Merge · eb88c905
      Sergey Petrunya authored
      eb88c905
    • Sergey Petrunya's avatar
      MDEV-5368: Server crashes in Item_in_subselect::optimize on ... · f0fa66a2
      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.
      f0fa66a2
    • unknown's avatar
      merge of MDEV-5356 5.1->5.3 (with more fixes and test suite). · d9cb1352
      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.
      d9cb1352
    • Sergei Golubchik's avatar
      MDEV-5406 add index to an innodb table with a uniqueness violation crashes mysqld · 2ff76f67
      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
      2ff76f67
    • unknown's avatar
      MDEV-5356: Server crashes in Item_equal::contains on 2nd execution of a PS · 5f5f7bef
      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.
      5f5f7bef
  7. 22 Jan, 2014 9 commits
  8. 21 Jan, 2014 2 commits
  9. 22 Jan, 2014 1 commit
    • Michael Widenius's avatar
      Fix for MDEV-5547: Bad error message when moving very old .frm files to MariaDB 5.5. · 04bee0af
      Michael Widenius authored
      mysql_upgrade --help now also prints out --default options and variable values.
      mysql_upgrade now prints permission errors.
      mysql_upgrade doesn't print some non essential info if --silent is used.
      Added handler error message about incompatible versions
      Fixed that mysqlbug and mysql_install_db have the executable flag set.
      Removed executable flag for some non executable files.
      Changed in mysql_install_db askmonty.org to mariadb.com.
      Ensured that all client executables prints --default options the same way.
      Allow REPAIR ... USE_FRM for old .frm files if the are still compatible.
      Extended shown error for storage engine messages.
      
      
      client/mysql.cc:
        print_defaults() should be first (as in all other programs)
      client/mysql_upgrade.c:
        --help now also prints out --default options and variable values
        Print out error if wrong permissions
        Don't print info if --silent
      client/mysqladmin.cc:
        print_defaults() should be first (as in all other programs)
      client/mysqlbinlog.cc:
        Added print_defaults() to --help
      client/mysqlcheck.c:
        Added empty line in --help
      client/mysqlimport.c:
        Added empty line in --help
      client/mysqlshow.c:
        Made --help compatible
      client/mysqlslap.c:
        Made --help compatible
      client/mysqltest.cc:
        Added print_defaults() to --help
      include/handler_ername.h:
        Added handler error message
      include/my_base.h:
        Added handler error message
      mysql-test/r/mysql_upgrade.result:
        Updated results
      mysql-test/r/repair.result:
        Added test case for better error messages
      mysql-test/std_data/host_old.MYD:
        Added test case for better error messages
      mysql-test/std_data/host_old.MYI:
        Added test case for better error messages
      mysql-test/std_data/host_old.frm:
        Added test case for better error messages
      mysql-test/t/repair.test:
        Added test case for better error messages
      mysys/my_handler_errors.h:
        Added handler error message
      scripts/CMakeLists.txt:
        Fixed that mysqlbug and mysql_install_db have the executable flag set
      scripts/mysql_install_db.sh:
        askmonty.org -> mariadb.com
      sql/ha_partition.cc:
        Sometimes table_type() can be called for errors even if partition didn't manage to open any files
      sql/handler.cc:
        Write clear text for not handled, but defined error messages.
      sql/share/errmsg-utf8.txt:
        Extended shown error for storage engine messages
      sql/sql_admin.cc:
        Allow REPAIR ... USE_FRM for old .frm files if the are still compatible
      storage/myisam/ha_myisam.cc:
        Use new error message
      04bee0af
  10. 21 Jan, 2014 3 commits