Commit graph

76968 commits

Author SHA1 Message Date
Sergei Golubchik
f672d6b7d8 restore ha_example::check_if_incompatible_data(), create_info->fields_option_struct,
create_info->indexes_option_struct lost in the merge.
add test cases.
2013-07-12 11:36:54 +02:00
unknown
f4d5dacf43 Merge the following patch from MySQL 5.6.10, in order to make perfschema.binlog_* tests work.
revno: 4559
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-bug14741537-v4
timestamp: Thu 2012-11-08 22:40:31 +0100
message:
  Bug#14741537 - MYSQL 5.6, GTID AND PERFORMANCE_SCHEMA
  
  Before this fix, statements using performance_schema tables:
  - were marked as unsafe for replication,
  - did cause warnings during execution,
  - were written to the binlog, either in STATEMENT or ROW format.
  
  When using replication with the new GTID feature,
  unsafe warnings are elevated to errors,
  which prevents to use both the performance_schema and GTID together.
  
  The root cause of the problem is not related to raising warnings/errors
  in some special cases, but deeper: statements involving the performance
  schema should not even be written to the binary log in the first place,
  because the content of the performance schema tables is 'local' to a server
  instance, and may differ greatly between nodes in a replication
  topology.
  
  In particular, the DBA should be able to configure (INSERT, UPDATE, DELETE)
  or flush (TRUNCATE) performance schema tables on one node,
  without affecting other nodes.
  
  This fix introduces the concept of a 'non-replicated' or 'local' table,
  and adjusts the replication logic to ignore tables that are not replicated
  when deciding if or how to log a statement to the binlog.
  
  Note that while this issue was detected using the performance_schema,
  other tables are also affected by the same problem.
  
  This fix define as 'local' the following tables, which are then never
  replicated:
  - performance_schema.*
  - mysql.general_log
  - mysql.slow_log
  - mysql.slave_relay_log_info
  - mysql.slave_master_info
  - mysql.slave_worker_info
  
  Existing behavior for information_schema.* is unchanged by this fix,
  to limit the scope of changes.
  
  Coding wise, this fix implements the following changes:
  
  1)
  
  Performance schema tables are not using any replication flags,
  since performance schema tables are not replicated.
  
  2)
  
  In open_table_from_share(),
  tables with no replication capabilities (performance_schema.*),
  tables with TABLE_CATEGORY_LOG (logs)
  and tables with TABLE_CATEGORY_RPL_INFO (replication)
  are marked as non replicated, with TABLE::no_replicate
  
  3)
  
  A new THD member, THD::m_binlog_filter_state,
  indicate if the current statement is written to the binlog
  (normal cases for most statements), or is to be discarded
  (because the statements affects non replicated tables).
  
  4)
  
  In THD::decide_logging_format(), the replication logic
  is changed to take into account non replicated tables.
  
  Statements that affect only non replicated tables are
  executed normally (no warning or errors), but not written
  to the binlog.
  
  Statements that affect (i.e., write to) a replicated table
  while also using (i.e., reading from or writing to) a non replicated table
  are executed normally in MIXED and ROW binlog format,
  and cause a new error in STATEMENT binlog format.
  
  THD::decide_logging_format() uses THD::m_binlog_filter_state
  to indicate if a statement is to be ignored, when writing to
  the binlog.
  
  5)
  
  In THD::binlog_query(), statements marked as ignored
  are not written to the binary log.
  
  6)
  
  For row based replication, the existing test for 'table->no_replicate',
  has been moved from binlog_log_row() to check_table_binlog_row_based().
2013-07-11 21:23:55 +03:00
Sergei Golubchik
3039a7c213 fix upgrade.test - update from 5.6 2013-07-12 10:21:14 +02:00
Sergei Golubchik
3cd1861a81 merge bugfuxes for sp-error.test 2013-07-12 10:17:52 +02:00
unknown
f0502cf87c changes corresponts to changes in 5.6 2013-07-12 09:37:07 +03:00
Sergei Golubchik
4d57bfdd48 temporal-related changes. don't apply sql_mode flags on the lower level (str_to_datetime),
do it on the upper level, in items that return temporal values.

update tests results to match 5.6 better and to fix old bugs.
2013-07-11 23:16:33 +02:00
Sergei Golubchik
82403c0bb1 fix truncate_coverage.test: update from 5.6 2013-07-11 21:56:58 +02:00
Sergei Golubchik
bcbdf5d68a fix signal_demo3.test: fix a typo in the merge, and update results to match 5.6 2013-07-11 21:40:30 +02:00
Sergei Golubchik
7f5d138afd fix merge.test: online alter table support for MERGE tables, really 2013-07-11 18:57:11 +02:00
Sergei Golubchik
b7e77be544 fix create.test: update the results, don't restore the incorrectly merged feature.
it'll go away in the next 10.0 merge
2013-07-11 16:54:03 +02:00
Sergei Golubchik
bb672474cc remove unused function 2013-07-11 14:10:44 +02:00
Sergei Golubchik
2f14d5747e fix alter_table.test: remove old assert as it was removed from 5.6,
add extra_func code from 5.5, that was lost in a merge
2013-07-11 14:08:51 +02:00
unknown
b8d9889e80 added lost part about preopened temporary tables 2013-07-11 16:27:57 +03:00
unknown
11c737f76e MDEV-4710 Merge Performance Schema test cases from MySQL 5.6.10
mysql 5.6.10 's part_table_io.result passes the test.
2013-07-11 12:25:08 +03:00
Sergei Golubchik
3ab7052d79 fix cast.test, select.test, select_jcl6.test: update results after strict_date_checking=1 2013-07-10 21:19:11 +02:00
Sergei Golubchik
b9b41a5fb0 fix plugin.test - bad merge in TABLE_SHARE::destroy, ha_share must be deleted before the plugin 2013-07-10 20:11:01 +02:00
Sergei Golubchik
d641028ff5 fix func_time.test - WEEK(), WEEKDAY(), WEEKOFYEAR() must require TIME_NO_ZERO_IN_DATE 2013-07-10 19:22:19 +02:00
Sergei Golubchik
b29bffff6e fix select_pkeycache: update results after strict_date_checking=1 2013-07-10 19:09:26 +02:00
Sergei Golubchik
899d0ad421 fix status.test - don't use lock_tables_precheck() for SHOW PROC STATUS,
it shouldn't require LOCK_TABLE_ACL
2013-07-10 18:58:34 +02:00
Sergei Golubchik
2492d007d5 fix innodb_mysql_sync test - update from 5.6 2013-07-10 17:10:22 +02:00
Sergei Golubchik
cf039ec153 fix flush_read_lock - update the test and results form 5.6 2013-07-10 15:23:46 +02:00
Sergei Golubchik
4620c7af60 clearly mark unused error messages as such 2013-07-10 13:34:07 +02:00
Sergei Golubchik
0ce9391008 fix for alter_table_online test.
Map ALTER ONLINE TABLE to ALTER TABLE ... ALGORITHM=INPLACE.
Make MERGE engine to announce its support of inplace operations.
2013-07-10 12:48:56 +02:00
unknown
7ac5a1d362 MDEV-4710 Merge Performance Schema test cases from MySQL 5.6.10
Merged all perfschema tests, except for the following:
perfschema.part_table_io
perfschema.binlog_mix perfschema.binlog_row perfschema.binlog_stmt
perfschema.statement_digest_consumers perfschema.statement_digest
privilege.inc privilege.result
2013-07-10 15:30:17 +03:00
Sergei Golubchik
e06cc1adce MDEV-4758 10.0-monty tree: ALTER TABLE CHANGE COLUMN doesn't drop EITS stats
add missing rename_column_in_stat_tables(), delete_statistics_for_column(),
delete_statistics_for_index(), rename_table_in_stat_tables() calls.
2013-07-09 22:36:53 +02:00
Sergei Golubchik
c3e3c78048 cmake: don't check for the compiler on every invocation of RESTRICT_SYMBOL_EXPORTS(),
do it only once
2013-07-09 22:30:04 +02:00
Sergei Golubchik
f171d3ff79 commit_1innodb.test: update results from 5.6 2013-07-09 18:43:12 +02:00
Sergei Golubchik
67002a58ce fix mysql_client_test failure, sometimes we do warnings differently 2013-07-09 18:09:22 +02:00
unknown
8f56dc7203 Cought errors are not shown 2013-07-09 21:15:01 +03:00
Sergey Petrunya
3e740c259d 10.0-monty: trivial test result updates 2013-07-09 15:39:57 +04:00
Sergey Petrunya
7a9eae5803 Trivial test result updates. 2013-07-09 13:40:26 +04:00
Sergey Petrunya
56a6e71f9c Fix merge.test failure
- Problem: mysql_admin_table() calls open_temporary_tables(). This 
  causes assertion failure, because mysql_execute_command() has 
  already called open_temporary_tables()
- Solution: call close_thread_tables() at the start of 
  mysql_admin_table(), like mysql-5.6 does
2013-07-09 15:42:36 +04:00
Igor Babaev
c9ad326065 Merge 2013-07-08 22:06:04 -07:00
Igor Babaev
0977734cee Fixed all remaining failures in partition tests.
Commented out the test case for bug 50036 as it was done in mysql-5.6.10.
2013-07-08 18:35:44 -07:00
Igor Babaev
24b9c17506 Merge 2013-07-08 12:59:18 -07:00
Igor Babaev
f1848be746 Fixed a failure in partition_truncate.test. 2013-07-08 12:55:11 -07:00
Sergey Petrunya
eb288af54d Automatic merge 2013-07-08 20:45:02 +04:00
Sergey Petrunya
c3e70a0104 Fix assert failures in main.merge test (line 234) and main.merge_mmap (line 44)
- After the merge from mysql-5.6, open_tables() did not call
  open_and_process_table() for temporary table. The logic was that temporary
  tables were already opened when mysql_execute_command() has called 
  open_temporary_tables().
  This worked for the most part, except for temporary tables of type MERGE. for
  which open_and_process_table() must call 
    table->file->extra(HA_EXTRA_ADD_CHILDREN_LIST).
  Failure to make this call resulted in crash further in execution.

  tables->table->file->extra(HA_EXTRA_ADD_CHILDREN_LIST)
2013-07-08 20:21:27 +04:00
Sergey Petrunya
09e2501f0d More trivial test result updates 2013-07-08 18:29:52 +04:00
Sergey Petrunya
66f1a848f4 Automatic merge 2013-07-08 18:15:50 +04:00
unknown
d82b512535 fixed result. 2013-07-08 19:11:57 +03:00
Sergey Petrunya
964d42631c Fix test failure in myisam.test:
- Put back the code tht produces the warning about 
  "Table storage engine %s does not support the create option 'TRANSACTIONAL=1'"
2013-07-08 18:14:24 +04:00
Sergey Petrunya
97d125084d Automatic merge 2013-07-08 12:59:50 +04:00
unknown
54999b2863 Merge performance schema test cases from MySQL 5.6.10
Merged the majority of the PFS test cases.
There are still 19 failing test cases that need more attention.
2013-07-08 15:19:50 +03:00
Sergey Petrunya
50dda403b7 Fix test errors like:
-Note 1031 Table storage engine for 't1' doesn't have this option
+Note 1031 Table storage engine for 'InnoDB' doesn't have this option

They were caused by a change in MariaDB which changed ER_ILLEGAL_HA message 
text to be like:
"Storage engine InnoDB of the table `test`.`t1` doesn't have this option"

Some the error calls were changed to pass new parameters, but some were left
to be old. Also the error text in errmsg-ut8.txt was not changed.
2013-07-08 12:57:58 +04:00
Sergey Petrunya
30e34252f4 More test result updates:
- Update test results for tests using SPs: SPs no longer
  emit warnings/errors that were caught and handled inside SP
2013-07-08 11:16:11 +04:00
Sergey Petrunya
4f22919f5c More trivial test results updates 2013-07-08 13:42:38 +04:00
unknown
928b21a93c The compiler warning about ';' fix. 2013-07-08 09:50:18 +03:00
Sergey Petrunya
72c33d24d0 Update test results to fix trivial test failures in parts testsuite
- New error message text
- PARTITION is now a reserved word in SQL, so it should be quoted
2013-07-07 14:09:52 +04:00
Sergey Petrunya
9f14736a40 More buildbot test result updates 2013-07-05 21:42:06 +04:00