1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-02 14:22:51 +03:00
Commit Graph

34399 Commits

Author SHA1 Message Date
e1c76b80d9 Fixes for innodb suite, merging tests from 5.6.
Includes 5.6 changesets for:
*****
Fix for BUG#13489996 valgrind:conditional jump or move depends on uninitialised values-field_blob.
blob_ptr_size was not initialized properly: remove this variable.
*****
Bug#14021323 CRASH IN FIELD::SET_NULL WHEN INSERTING ROWS TO NEW TABLE
*****
2013-07-15 18:01:22 +02:00
b427da7651 Fix main test suite on Windows 2013-07-15 13:43:15 +02:00
2336558423 many simple fixes for innodb suite,
merging tests from 5.6
2013-07-14 23:20:25 +02:00
ff82741d0a fix pfs_digest* tests.
a different fix for
    Bug#14069132 : STATEMENT DIGESTS DUPLICATE CALL STATEMENTS OF THE SAME NORMALIZED FORM
2013-07-14 19:44:37 +02:00
48c54cd355 parts suite merged 2013-07-14 13:48:06 +02:00
9fea6e7b7b update results 2013-07-13 22:29:30 +02:00
f5cb6895cb fix for maria.maria test 2013-07-13 22:29:17 +02:00
be631f9099 update plugin API versions in tests 2013-07-13 22:28:53 +02:00
243371f475 sys_var suite passes 2013-07-13 09:22:00 +02:00
7da16844ea fix the maria suite
sql/handler.h:
  not "unused"
sql/sql_table.cc:
  move this check where it is in 10.0
2013-07-12 23:07:32 +02:00
8367241d5a update handler.* tests 2013-07-12 21:41:20 +02:00
224238a073 update test results 2013-07-12 20:48:28 +02:00
3069530ffd archive.test and others 2013-07-12 16:24:20 +02:00
beb36f6c70 now results is correct 2013-07-12 16:31:01 +03:00
ee8195a731 fix lost vcol checks in sql_table.cc,
remove unused FIELD_IS_xxx flags
change vcol tests to use innodb, not xtradb.
2013-07-12 13:32:37 +02:00
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
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
3039a7c213 fix upgrade.test - update from 5.6 2013-07-12 10:21:14 +02:00
3cd1861a81 merge bugfuxes for sp-error.test 2013-07-12 10:17:52 +02:00
f0502cf87c changes corresponts to changes in 5.6 2013-07-12 09:37:07 +03:00
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
82403c0bb1 fix truncate_coverage.test: update from 5.6 2013-07-11 21:56:58 +02:00
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
e8b0b51966 MDEV-4042: Assertion `table->key_read == 0' fails in close_thread_table on EXPLAIN
MDEV-4536: ...sql/sql_base.cc:1598: bool close_thread_table(THD*, TABLE**): Assertion
- Make JOIN::cleanup(full=true) always free join optimization tabs.
2013-07-11 19:27:39 +04:00
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
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
a0de3e0485 MDEV-4556 Server crashes in SEL_ARG::rb_insert with index_merge+index_merge_sort_union, FORCE INDEX
- merge_same_index_scans() may put the same SEL_ARG tree in multiple result plans.
  make it call incr_refs() on the SEL_ARG trees that it does key_or() on, because 
  key_or(sel_arg_tree_1, sel_arg_tree_2) call may invalidate SEL_ARG trees pointed 
  by sel_arg_tree_1 and sel_arg_tree_2.
2013-07-11 15:12:50 +04:00
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
3ab7052d79 fix cast.test, select.test, select_jcl6.test: update results after strict_date_checking=1 2013-07-10 21:19:11 +02:00
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
b29bffff6e fix select_pkeycache: update results after strict_date_checking=1 2013-07-10 19:09:26 +02:00
2492d007d5 fix innodb_mysql_sync test - update from 5.6 2013-07-10 17:10:22 +02:00
a057b50490 Merging temporal literals
added:
  mysql-test/r/temporal_literal.result
  mysql-test/t/temporal_literal.test
modified:
  client/mysqlbinlog.cc
  include/my_time.h
  mysql-test/r/cast.result
  mysql-test/r/partition_innodb.result
  mysql-test/t/cast.test
  mysql-test/t/partition_innodb.test
  sql-common/my_time.c
  sql/field.cc
  sql/item.cc
  sql/item.h
  sql/item_cmpfunc.cc
  sql/item_create.cc
  sql/item_create.h
  sql/item_strfunc.cc
  sql/item_timefunc.cc
  sql/item_timefunc.h
  sql/sql_select.cc
  sql/sql_time.cc
  sql/sql_time.h
  sql/sql_yacc.yy
  storage/spider/spd_db_mysql.cc
pending merges:
  Alexander Barkov 2013-07-10 Adding support for the SQL-standard temporal...
2013-07-10 18:46:33 +04:00
cf039ec153 fix flush_read_lock - update the test and results form 5.6 2013-07-10 15:23:46 +02:00
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
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
2f6a2494a5 MDEV-4708: GTID strict mode doesn't work on a database with purged binlogs
When a new master is provisioned that does not have any old binlogs,
the @@gtid_slave_pos is used to know where in the GTID history the
provisioning happened. A slave is allowed to connect at the point of
this value of @@gtid_slave_pos, even if that GTID is not in the
binlogs on the new master.

The code to handle this case when the binlog on the newly provisioned
master is completely empty was just wrong (couple of typos). Clearly it
had never been tested ... :-/
2013-07-10 12:01:52 +02:00
1e43277838 MDEV-4708: GTID strict mode doesn't work on a database with purged binlogs
When a new master is provisioned that does not have any old binlogs,
the @@gtid_slave_pos is used to know where in the GTID history the
provisioning happened. A slave is allowed to connect at the point of
this value of @@gtid_slave_pos, even if that GTID is not in the
binlogs on the new master.

But --gtid-strict-mode did not correctly handle this case. When strict
mode was enabled, an attempt to connect at the position would cause an
error about holes in the binlog, which is not correct.

This patch adds a hash of GTIDs that need to be treated specially by
GTID strict mode to deal correctly with this case.
2013-07-10 11:45:15 +02:00
d98584f56a Adding support for the SQL-standard temporal literals.
added:
  mysql-test/r/temporal_literal.result
  mysql-test/t/temporal_literal.test
modified:
  client/mysqlbinlog.cc
  include/my_time.h
  mysql-test/r/cast.result
  mysql-test/r/partition_innodb.result
  mysql-test/t/cast.test
  mysql-test/t/partition_innodb.test
  sql-common/my_time.c
  sql/field.cc
  sql/item.cc
  sql/item.h
  sql/item_cmpfunc.cc
  sql/item_create.cc
  sql/item_create.h
  sql/item_strfunc.cc
  sql/item_timefunc.cc
  sql/item_timefunc.h
  sql/sql_select.cc
  sql/sql_time.cc
  sql/sql_time.h
  sql/sql_yacc.yy
  storage/spider/spd_db_mysql.cc
2013-07-10 12:12:27 +04:00
5b0774ee1c Adding support for MySQL-5.6 temporal column types:
TIME, DATETIME, TIMESTAMP


added:
  mysql-test/r/type_temporal_mysql56.result
  mysql-test/std_data/mysql56datetime.MYD
  mysql-test/std_data/mysql56datetime.MYI
  mysql-test/std_data/mysql56datetime.frm
  mysql-test/std_data/mysql56time.MYD
  mysql-test/std_data/mysql56time.MYI
  mysql-test/std_data/mysql56time.frm
  mysql-test/std_data/mysql56timestamp.MYD
  mysql-test/std_data/mysql56timestamp.MYI
  mysql-test/std_data/mysql56timestamp.frm
  mysql-test/suite/rpl/r/rpl_temporal_mysql56.result
  mysql-test/suite/rpl/t/rpl_temporal_mysql56.test
  mysql-test/t/type_temporal_mysql56.test
  sql/compat56.cc
  sql/compat56.h
modified:
  client/mysqlbinlog.cc
  include/my_time.h
  include/mysql.h.pp
  include/mysql_com.h
  mysql-test/r/statistics.result
  mysql-test/r/strict.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
  mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
  sql-common/my_time.c
  sql/CMakeLists.txt
  sql/field.cc
  sql/field.h
  sql/item.cc
  sql/item_strfunc.cc
  sql/item_sum.cc
  sql/item_timefunc.cc
  sql/log_event.cc
  sql/opt_range.cc
  sql/opt_table_elimination.cc
  sql/protocol.cc
  sql/rpl_utility.cc
  sql/rpl_utility.h
  sql/sql_partition.cc
  sql/sql_prepare.cc
  sql/sql_select.cc
  sql/sql_table.cc
  sql/table.cc
  storage/perfschema/pfs_engine_table.cc
2013-07-10 11:49:17 +04:00
c51ed128b0 Merge from 5.3 2013-07-10 02:05:06 +04:00
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
f171d3ff79 commit_1innodb.test: update results from 5.6 2013-07-09 18:43:12 +02:00
8f56dc7203 Cought errors are not shown 2013-07-09 21:15:01 +03:00
3e740c259d 10.0-monty: trivial test result updates 2013-07-09 15:39:57 +04:00
6d5f237e09 MDEV-4506: Parallel replication: Intermediate commit.
Fix a number of failures in the test suite.
2013-07-09 13:15:53 +02:00
7a9eae5803 Trivial test result updates. 2013-07-09 13:40:26 +04:00
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
8a732d5a5e Merge from 5.2
modified:
  mysql-test/suite/plugins/r/fulltext_plugin.result
  mysql-test/suite/plugins/t/fulltext_plugin.test
  plugin/fulltext/plugin_example.c
  sql/sql_show.cc
pending merges:
  Alexander Barkov 2013-07-09 [merge] Merge from 5.1
    Sergei Golubchik 2013-07-06 Bug #69682 - mysqld crashes after uninst...
    Sergei Golubchik 2013-05-24 MDEV-4575 MySQL client doesn't strip off...
2013-07-09 11:02:56 +04:00
762d3cb8ed Merge from 5.1
modified:
  mysql-test/suite/plugins/r/fulltext_plugin.result
  mysql-test/suite/plugins/t/fulltext_plugin.test
  plugin/fulltext/plugin_example.c
  sql/sql_show.cc
pending merges:
  Sergei Golubchik 2013-07-06 Bug #69682 - mysqld crashes after uninstall ...
    Sergei Golubchik 2013-05-24 MDEV-4575 MySQL client doesn't strip off...
2013-07-09 10:54:47 +04:00